Nginx安装日志分析工具GoAccess
先来一张效果图:
- 安装载体:树莓派4B
- Nginx版本:nginx/1.19.4
- PHP版本:php/7.3.15
安装步骤:
wget https://tar.goaccess.io/goaccess-1.4.5.tar.gz #下载goaccess安装包,目前下载的是最新的1.4.5的版本GoAccess官网地址:https://goaccess.io/ tar -zxvf goaccess-1.4.5.tar.gz #解压该文件 cd goaccess-1.4.5/ #进入该目录,准备编译 ./configure --prefix=/usr/local/goaccess --enable-utf8 --enable-geoip=legacy --with-openssl #设置编译参数 该参数可能会报错,请确认geoip与openssl依赖是否安装 make&&make install #执行编译并安装.
上述执行完毕后,该软件就已经安装到了我们的/usr/local/goaccess
目录下,好了,我们已经成功的安装了GoAccess
。
我们需要修改GoAccess的一个配置文件设置一下时间格式
vim /usr/local/goaccess/etc/goaccess/goaccess.conf #以VIM编辑器打开goaccess.conf配置文件,在下面结尾的位置添加如下内容: time-format %H:%M:%S date-format %d/%b/%Y log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" #如下图这样
控制台模式查看
cd /usr/local/goaccess/bin/usr/local/goaccess/bin #cd到程序安装目录 ./goaccess -f /usr/local/nginx/logs/access.log #执行以上命令,access.log文件路径根据您的nginx日志存放目录而定,效果如下图,这样就是成功的。
控制台操作方法: F1 主帮助页面 F5 重绘主窗口 q 退出 1-15 跳转到对应编号的模块位置 o 打开当前模块的详细视图 j 当前模块向下滚动 k 当前模块向上滚动 s 对模块排序 / 在所有模块中搜索匹配 n 查找下一个出现的位置 g 移动到第一个模块顶部 G 移动到最后一个模块底部
配置网页查看
需要在你网站的根目录创建一个go.html的空文件,并创建下列脚本生成GoAccess网页文件,go.sh
脚本内容如下:
#!/bin/sh
LANG="zh_CN.UTF-8"
/usr/local/goaccess/bin/goaccess /usr/local/nginx/logs/access.log --log-format=COMBINED -o /usr/local/nginx/html/go.html -p /usr/local/goaccess/etc/goaccess/goaccess.conf
#ps:注意将脚本内容改为你的配置文件路径
保存后设置这个文件可执行权限chmod +x go.sh
,在这个文件当前目录执行./go.sh
这个文件,如果没有报错及代表脚本运行正常,接下来我们设置定时任务,让这个脚本间隔五分钟运行一次,以生成出最新的报表。
执行crontab -e
打开定时任务设置,将以下定时任务添加进去:*/5 * * * * /bin/bash /home/pi/go.sh > /dev/null 2>&1 &
如下图:
重启定时任务让定时任务生效,不过各重启动命令不太一样。
- service crond restart
- systemctl restart crond.service
- 树莓派:/etc/init.d/cron restart
现在就已经成功配置了网页查看的准备工作,接下来是修改Nginx 的配置文件,使我们在网页链接就可以直接可以看到,当然小伙伴们可能要问,这个文件不是已经在网页的根目录了吗,直接访问链接就可以查看了吗?是的,的确是这样,但是我不想别人可以查看到呢,所以接下来咱们配置下nginx 的配置文件,使这个页面只能输入账号密码才能查看.
在上图框住的位置加入以下内容:
location /go.html {
alias /usr/local/nginx/html/go.html;
auth_basic "请输入用户名和密码";
auth_basic_user_file /usr/local/nginx/passwd;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
/usr/local/nginx/passwd
这个文件是我们的认证文件,需要我们通过工htpasswd工具生成。
- 树莓派安装:
sudo apt-get install apache2-utils
- Linux安装:
yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd test #创建/usr/local/nginx/passwd密码文件,设置用户名test,然后输入密码即可实现认证文件的建立。
将上述步骤执行完后,我们需要重启我们的Nginx服务,让新的配置文件生效
cd /usr/local/nginx/sbin #进入到nginx 的sbin目录 ./nginx -s reload #重新加载nginx配置文件,如果没有报错代表成功。
然后我们就可以打开我们的链接查看是否提示你输入账号密码,按照我们刚刚创建的认证文件设置的用户名密码登录即可,这样我们就可以看到我们开始那样的图片了,教程到此结束。
GoAccess(1.4.5)下载