nginx日志分析工具:GoAccess| 8月更文挑战

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战


在现在的开发过程中,nginx作为web服务器被大量的使用,由此带来的大量访问日志也由此产生,各种分析平台孕育而生。都是为了能够利用Nginx产生的日志进行网站用户访问行为的分析,或者是对于平台运行状态的监控。在众多工具中,GoAccess 作为一种简单轻量的分析工具,使用起来十分的方便。

简介

GoAccess 被设计成快速的并基于终端的日志分析工具。其核心理念是不需要通过 Web 浏览器就能快速分析并实时查看 Web 服务器的统计数据(这对于需要使用 SSH 来对访问日志进行快速分析或者就是喜欢在终端环境下工作的人来说是超赞的)。

终端输出仅仅是默认的输出方式,GoAccess 还支持生成完整的实时 HTML 报告(这对分析、监控以及数据可视化都是极好的),以及 JSON 和 CSV 格式的报告。

一、安装goaccess

1、安装依赖库
yum install -y GeoIP-devel ncurses-devel
复制代码
2、下载并安装GoAccess
wget https://tar.goaccess.io/goaccess-1.4.5.tar.gz
tar -xzvf goaccess-1.4.5.tar.gz
cd goaccess-1.4.5/
./configure --enable-utf8 --enable-geoip=legacy
make && make install
复制代码

注:如果你觉得麻烦,也可通过yum进行安装

yum install goaccess
复制代码
3、配置日志格式

配置文件位于:/usr/local/etc/goaccess/goaccess.conf

time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h - %^ [%d:%t %^]; "%r" %s %b "%R" - %^"%u" - %^ %T
复制代码
4、使用终端分析日志结果
goaccess -a -d -f /var/log/nginx/access.log
复制代码

二、使用定时器以HTML格式输出分析结果

1、编写脚本文件
#分析报告存放路径
mkdir -p /data/www/goaccess/html
#分析脚本存放路径
mkdir -p /usr/local/goaccess/scripts
#获取HTML分析报告
vim /usr/local/goaccess/scripts/getHtmlReport-项目名称.sh
复制代码
  • getHtmlReport-项目名称.sh内容如下:
#!/bin/bash
#页面转换为中文
LANG="zh_CN.UTF-8"
#输出HTML分析报告
goaccess -a -d -f /var/log/nginx/access.log -o /data/www/goaccess/html/report-项目名称.html
复制代码
2、分配脚本可执行权限:
chmod 755 /usr/local/goaccess/scripts/getHtmlReport-项目名称.sh
复制代码
3、添加定时任务
#新增定时任务
crontab -e

#定时生成项目的nginx日志分析html报告
0 0 * * * /bin/bash /usr/local/goaccess/scripts/getHtmlReport-项目名称.sh
复制代码
4、配置nginx访问路径
#用alias将它重定向到所指定的html中
location /report-项目名称.html {
    alias /data/www/goaccess/html/report-项目名称.html;
}
复制代码

三、nginx访问权限设置

nginx配置访问密码,让用户输入用户名密码才能访问(basicAuth)

注:如果你是在内网进行使用,或者不考虑访问控制的问题,可以不进行 nginx 访问权限的设置

1、安装htpassed工具
yum -y install httpd-tools
复制代码
2、设置用户名和密码,并把用户名、密码保存到指定文件中:
htpasswd -c [passwfile] [username]

#例:htpasswd -c /etc/nginx/passwd you
复制代码

图片[1]-nginx日志分析工具:GoAccess| 8月更文挑战-一一网
注意:/etc/nginx/passwd 是生成密码后的文件保存路径(passwdfile),codeauth是用户名(username)

验证方法:查看最后生成的密码文件/etc/nginx/passwd的内容,分号后的内容就是加密过的密码。

3、修改nginx配置文件
server {
        listen 443 ssl;
        ......
        
        location /report-armstrong.html {
            #新增下面两行
            auth_basic "Please input password"; #这里是验证时的提示信息 
            auth_basic_user_file /etc/nginx/passwd;
            
            alias /data/www/goaccess/html/report-armstrong.html;
        }
    }
复制代码
4、重启nginx并访问

重启nginx,在浏览器中访问/report-armstrong.html,输入用户名和密码查看对应数据

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享