• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
戏做顿 显示全部楼层 发表于 2021-8-14 14:27:42 |阅读模式 打印 上一主题 下一主题
迩来想用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,添加下面内容
  1. location /goaccess {
  2.     proxy_redirect off;
  3.     proxy_pass https://127.0.0.1:7890;
  4.     proxy_http_version 1.1;
  5.     proxy_set_header Upgrade $http_upgrade;
  6.     proxy_set_header Connection "upgrade";
  7.     proxy_set_header Host $http_host;
  8. }
复制代码
注意,如果你的站点设置文件里面开启了url重写,为了制止 /goaccess 受到影响,我们必要把该路径排除重写。
把重写规则都放到location / 里面去
  1. location / {
  2.     if (-f $request_filename/index.html){
  3.     rewrite (.*) $1/index.html break;
  4.     }
  5.     if (-f $request_filename/index.php){
  6.     rewrite (.*) $1/index.php;
  7.     }
  8.     if (!-f $request_filename){
  9.     rewrite (.*) /index.php;
  10.     }
  11. }
复制代码
下面什么都不必要做
  1. location /goaccess/ {
  2. }
复制代码
之后重启nginx,再访问report.html,发现左边齿轮处终于表现connect了。
如果你只是自己看或者不在意ip暴露,实在直接利用ip直接连接不走cdn就没那么麻烦了。
到此这篇关于利用 goaccess 分析nginx 日志的文章就先容到这了,更多相关 goaccess 分析nginx 日志内容请搜索草根技术分享从前的文章或继续欣赏下面的相关文章渴望大家以后多多支持草根技术分享!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作