使用goaccess分析nginx日志的详细方法_nginx

来源:脚本之家  责任编辑:小易  

最近想用goaccess来分析下nginx日志,但是苦于nginx日志配置格式不是按照正常格式来的,完全是我们按照自己的需求来写的,所以导致goaccess分析不了,需要自己重新定义下格式;但是网上虽然介绍goaccess的很多,但是大多都是就重避轻,将格式的自定义忽略掉,因此我就来把自定义这块说下。

GoAccess是一款开源、实时,运行在命令行终端下的web日志分析工具。该工具提供快速、多样的HTTP状态统计,可以令管理员不再纠结于统计各类数据,和繁杂的指令以及一大堆管道/正则表达式说byebye。

分析nginx日志

GoAccess的多种展示方式
goaccess有多种数据可视化的方式,分别为:

命令行输出格式化数据
利用access.log生成静态的可视化数据
生成实时可视化数据
注意,如果是编译安装且选择了 –enable-geoip=mmdb的话需要编辑配置文件,并在使用命令的时候带上参数 –config-file=/usr/local/etc/goaccess/goaccess.conf,如果是用包管理器安装的话则不需要

命令行输出GoAccess
goaccess /var/log/nginx/access.log -c,会先询问你数据的格式,我这里的日志使用的是第一种。

解析accesslog生成静态html
GoAccess还可以解析access.log生成静态html,以更加直观的方式来展示数据。

goaccess /var/log/nginx/access.log -o report.html --log-format=COMBINED,之后再使用浏览器访问report.html即可查看报告,各种数据一应俱全。

实时解析访问日志
GoAccess除了可以生成静态的html文件,还可以生成实时网站访问数据!

goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html --config-file=/usr/local/etc/goaccess/goaccess.conf

添加中文支持
Goaccess 1.3之后的版本提供了多语言支持,先在命令行中执行 apt install language-pack-zh-hans 安装中文包,再使用export LANG=zh_CN.UTF-8修改环境变量,再次使用 goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html --config-file=/usr/local/etc/goaccess/goaccess.conf启动GoAccess可以发现已经是中文界面了。

关于实时模式,可以查看官网的demo https://rt.goaccess.io/?20200209201008

异常退出
如果实时模式没有正常退出,可能无法再次正常启动,GoAccess默认使用7890 websocket端口,所以使用lsof -i:7890查看占用该端口的进程号并kill即可。

ssl支持
如果需要在加密连接上输出实时数据,则需要使用 --ssl-cert= 和 --ssl-key=,我在设置之后访问report.html发现数据依旧是静态的,突然想起我用了cloudflare cdn,而7890端口并不在cloudflare的支持端口列表里面,所以我使用参数 --ws-url=wss://服务器域名(我们的浏览器会尝试与该域名的8443端口见了ws连接):8443 --port=8443 把端口改成了8443。令人没想到的是,此时的report.html使用代理链接的时候是可以连接的,并可以查看实时信息,而直接连接的时候依旧是静态数据,tcping一看。

去cloudflare的官网可以发现如下内容

只有端口 80 和 443 可兼容以下服务:

对于启用了中国网络的域名的中国境内数据中心 HTTP/HTTPS 流量,
也就是说,国内是没办法通过cloudflare连接非80/443端口的…

反向代理
但是也不是没有办法连接,最后我想到了反向代理的方案。

将启动参数改为--ws-url=wss://你的域名.com/goaccess --port=7890

修改nginx站点配置文件 /etc/nginx/site-available/default,添加下面内容

location /goaccess {
    proxy_redirect off;
    proxy_pass https://127.0.0.1:7890;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
}

注意,如果你的站点配置文件里面开启了url重写,为了避免 /goaccess 受到影响,我们需要把该路径排除重写。

把重写规则都放到location / 里面去

location / { 
    if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
    rewrite (.*) /index.php;
    }
} 

下面什么都不需要做

location /goaccess/ {
}

之后重启nginx,再访问report.html,发现左边齿轮处终于显示connect了。

如果你只是自己看或者不在意ip暴露,其实直接使用ip直接连接不走cdn就没那么麻烦了。

到此这篇关于使用 goaccess 分析nginx 日志的文章就介绍到这了,更多相关 goaccess 分析nginx 日志内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:神器!最佳 Nginx 日志分析工具 GoAccessnginx-ingress-controller日志持久化方案的解决滚动 docker 中的 nginx 日志思路详解

  • 本文相关:
  • nginx服务器如何设置url链接
  • nginx 运维之域名验证的方法示例
  • nginx 介绍及日常管理的详解
  • 使用nginx动态转换图片大小生成缩略图
  • 配置nginx实现简单防御cc攻击
  • nginx,apache的alias和认证功能
  • nginx + consul + upsync 完成动态负载均衡的方法详解
  • 实现自动定期删除nginx日志的方法
  • ubuntu系统下的nginx服务器软件安装时的常见错误解决
  • nginx正反向代理及负载均衡等功能实现配置代码实例
  • goaccess用的什么数据库
  • VB access2003运行宏的GoToControl时提示操作失败,弹出当前...
  • 我在ACCESS中新建了一个SetTempVar的宏,但运行后却出现...
  • We often go to ________ school library because we can have s...
  • We ofen go to ____school library because we can have such __...
  • achers, many adolescents in the west of China have no access ...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器nginx神器!最佳 nginx 日志分析工具 goaccessnginx-ingress-controller日志持久化方案的解决滚动 docker 中的 nginx 日志思路详解nginx服务器如何设置url链接nginx 运维之域名验证的方法示例nginx 介绍及日常管理的详解使用nginx动态转换图片大小生成缩略图配置nginx实现简单防御cc攻击nginx,apache的alias和认证功能nginx + consul + upsync 完成动态负载均衡的方法详解实现自动定期删除nginx日志的方法ubuntu系统下的nginx服务器软件安装时的常见错误解决nginx正反向代理及负载均衡等功能实现配置代码实例nginx提示:500 internal servernginx 多站点配置方法集合权限问题导致nginx 403 forbiddenginx服务器的反向代理proxy_pasnginx fastcgi错误primary scripnginx 403 forbidden的解决办法详解nginx服务器中配置超时时间的详解nginx upstream 配置和作用nginx伪静态配置和常用rewrite伪nginx的超时timeout配置详解nginx1.8.0版本平滑升级新版本1.9.7详解nginx启动失败的几种错误处理一段万能的nginx接口实现反向代理配置nginx进程管理和重载原理详解nginx实现异步访问mysql的配置方法关于nginx开启gzip的配置的问题启用nginx目录浏览功能的方法nginx配置防盗链的完整步骤nginx的一些常用配置与技巧总结nginx 平滑重启与升级的实现方法
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved