Nginx安装日志分析工具GoAccess

作者: 管理员 分类: 系统运维,软件工具 发布时间: 2021-02-27 18:25

先来一张效果图:

  • 安装载体:树莓派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)下载


发表评论

电子邮件地址不会被公开。