- Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一)
- Nginx初认识之 Nginx搭建静态资源服务器 (二)
- Nginx初认识之 Nginx搭建反向代理服务器 (三)
- Nginx初认识之 GoAccess可视化实时监控access.log日志 (四)
- Nginx初认识之 Nginx支持PHP和TP5项目 (五)
- Nginx架构篇之 Nginx的进程结构和信号管理 (六)
- Nginx架构篇之 Nginx和Apache的比较 (七)
- Nginx HTTP模块篇 Nginx接收HTTP请求的流程 (八)
- Nginx HTTP模块篇 server_name指令和Nginx处理HTTP请求的11个阶段(九)
- Nginx HTTP模块篇 realip模块 (十)
- Nginx HTTP模块篇 rewrite模块 (十一)
- Nginx HTTP模块篇 limit_conn和limit_req模块 (十二)
- Nginx HTTP模块篇 access阶段的deny allow auth_basic auth_request指令 (十三)
- Nginx HTTP模块篇 precontent阶段的try_files和mirror指令 (十四)
- Nginx HTTP模块篇 content阶段的static模块 (十五)
- Nginx HTTP模块篇 日志记录之log模块和过滤模块 (十六)
- Nginx HTTP模块篇 Nginx中的常用变量 (十七)
- Nginx HTTP模块篇 Nginx防盗链——referer模块 (十八)
- Nginx优化篇 Nginx+php_fpm使用php及其配置优化 (十九)
- Nginx优化篇 Linux内核参数优化和nginx配置优化 (二十)
- Nginx优化篇 Linux内核参数、Nginx配置和php-fpm配置优化汇总 (二十一)
- Nginx优化篇 ab压力测试和监控 (二十二)
- Nginx优化篇 nginx+php-fpm压力测试实践 (二十三)
GoAccess可视化实时监控access.log日志
原理:使用goaccess命令goaccess会读取我们指定要分析的日志文件,生成一个类似报表的HTML文件,我们可以在nginx中给该html文件开一个http服务,这样我们就可以在浏览器访问这个html文件;同时goaccess会开启一个wss服务(该服务默认监听7890端口),当访问html报表时,该html的js代码中的wss客户端会请求goaccess的wss服务,goaccess接到请求后会再次读取日志文件,更新html报表。
通过以上的方式来实时更新监控access.log的情况。
下面是实现过程:
yum -y install goaccess
goaccess /var/log/httpd/access_log -o /var/www/report.html --real-time-html --log-format=COMBINED --daemonize
-o /var/www/report.html # 指定生成报表的位置
--real-time-html # 指定实时更新(只要在浏览器一刷新html报表就会更新)
--daemonize # 后台运行
# 在nginx给报表文件开一个http服务:
server {
listen 8088;
server_name localhost;
access_log logs/access.log main;
location /report.html {
alias /var/www/report.html;
}
}
我遇到的一个问题:
由于我的服务器开启了防火墙,虽然打开了8088的防火墙,但是没有打开7890的防火墙,所以刷新时html发起的wss请求被屏蔽导致刷新后也没有实时更新监控情况。这里发起的wss请求算是外部请求而不是本服务器请求本服务器,所以会被屏蔽。打开7890端口的防火墙即可。
goaccess可以分析Apache和nginx的日志。
但是如果日志格式更改了,就需要在goaccess的配置文件中做出相应格式的更改,改的是--log-format这个参数。具体可以参考网上资料。
本文转载自: 张柏沛IT技术博客 > Nginx初认识之 GoAccess可视化实时监控access.log日志 (四)