GoAccess 监控 Nginx 日志

GoAccess 是一个免费的(由MIT许可)且开源的实时 Web 日志分析器和交互式查看器,可在 *nix 系统的终端中或通过浏览器运行。
具体功能可以到 https://goaccess.io 查看。这里就不再赘述。

实战 -- 简单分析 Nginx 日志

先上命令

goaccess /usr/local/nginx/logs/access.log \
--ignore-panel=VISITORS \
--ignore-panel=HOSTS \
--ignore-panel=OS \
--ignore-panel=BROWSERS \
--ignore-panel=VIRTUAL_HOSTS \
--ignore-panel=REFERRERS \
--ignore-panel=REFERRING_SITES \
--ignore-panel=KEYPHRASES \
--ignore-panel=REMOTE_USER \
--ignore-panel=GEO_LOCATION \
--log-format=COMBINED \
-q -a -o /usr/local/nginx/report/index.html \
--real-time-html --daemonize

以守护进程(--daemonize)实时分析(--real-time-html)nginx 日志(--log-format=COMBINED,通用日志格式,Nginx 适用于这种日志格式)的运行,并且忽略(--ignore-panel)一些不关心的模块。
goaccess 创建了一个网页 —— index.html,该文件包含了监控数据,我们可以通过浏览器进行查看。

Nginx 配置查看报表数据

Nginx 配置一个域名解析到相应的目录,这个目录包含了 goaccess 的报表页面(/usr/local/nginx/report/index.html)。
为了数据安全,这里简单的试用了 Nginx 的 ngx_http_auth_basic_module 提供的认证功能,默认情况下,nginx 已经安装了该模块。
首先需要创建一个密码文件(/usr/local/nginx/logs/goaccess_pwd),此文件的书写格式是 用户名:密码,每行一个账户,密码必须使用函数 crypt() 加密。

# 使用 goaccess 分析 nginx 日志生成的报表 html 页面
# 页面账号 xxx 密码 xxx
server {
        listen 80;
        server_name domainName;
        location / {
                auth_basic "goaccess-login!";
                auth_basic_user_file /usr/local/nginx/logs/goaccess_pwd;
                root /usr/local/nginx/report/;
                index index.html;
        }
}
上一篇:springmvc+activiti 完美整合- 流程在线设计+代码生成器+UI快速开发库,提高一半的开发效率


下一篇:SQL知识整理三:变量、全局变量、视图、事务、异常