GoAccess(https://GoAccess.io/) 是一个日志分析工具,并不只是为nginx使用的。你也可以用它来分析apacheIIS的日志,甚至你自己写的web服务,当然前提是你需要定义好解析的日志格式。

GoAccess.png

诚如见到一个美女,你会一眼喜欢上它的几个功能有:

  • 1、解析速度快
  • 2、使用简单
  • 3、能生成htmljsoncsv

利用 crontabGoAccess 定时自动生成日志分析报告

本来明月在 Debian Linux 下使用的参照【Nginx日志分析/图表生成工具 - goaccess】一文使用很正常的,加入 crontab 里的定时任务也可以正常的运行,但是自从下载安装最新版的 GoAccess 1.2 版以后, crontab 定时任务里总是运行失败。真是百思不得其解呀!

在查阅了众多文章后尝试各种奇葩的 crontab 定时任务的写法以及看了 GoAccess for GitHub 上的众多 issue 后,终于让我总结出正确的 crontab 定时任务的写法了,并且在 Centos 7.2 下测试成功。具体的 crontab 定时任务的写法如下:

00 00 * * * /usr/local/bin/goaccess -f /home/wwwlogs/access.log -p /root/goaccess-1.2/.goaccessrc -a > /html/access.html

其中的 -p /root/goaccess-1.2/.goaccessrc 好像是 GoAccess 1.2特有的用来指定日志格式配置文档,具体内容如下:

 time-format %T date-format %d/%b/%Y log-format %h %^[%d:%t %^] "%r" %s
 %b "%R" "%u"

只需要 vim .goaccessrc 编辑保存即可,记得保存的路径一定要写对了。

至此既可以定时每天凌晨00分自动生成指定日志的日志分析报告了。

这也算是我自己的一次学习笔记了,还是很有收获的。下面附赠GoAccess的一些相关参数等,就当是笔记了。

控制台使用GoAccess

  • F1 主帮助页面
  • F5 重绘主窗口
  • q 退出程序或者当前{详细视图}(窗口)
  • o 打开当前激活模块的详细视图
  • c 设置或改变配色方案
  • TAB 向前迭代模块。从当前激活模块开始。
  • SHIFT + TAB 向后迭代模块。从当前激活模块开始。
  • RIGHT ARROW 打开当前激活模块的详细视图
  • 0-9 激活模块,这样用户就可以使用^o^^RIGHT ARROW^打开{详细视图}
  • SHIFT + 0-9 激活超过10的模块
  • s 根据日期进行独立访客排序。仅在独立访客模块(1)有效。
  • S 根据点击数进行独立访客排序。仅在独立访客模块(1)有效。
  • / 向前在任意{详细视图}窗口搜索输入模式(pattern)。
  • n 在任意{详细视图}窗口中找到下一次出现的位置。
  • t 跳到第一个条目或屏幕顶端
  • b 跳到最后一个条目或者屏幕底部

启动参数介绍

  • -b 流量消耗统计,如果想要提高解析速度,不要开启这个选项。缺省值为不开启此选项
  • -f 日志文件路径。
  • -s HTTP 状态码报告,为了能够更好的解析日志,选项被默认关闭。 -e 指定IP地址的访问统计。
  • -a 通过代理的请求统计。
  • -d --with-output-resolverHTML输出或者json输出中开启 IP 解析,如果开启了-dGoAccess就会使用GEOIP来进行IP解析。
  • -e --exclude-ip=<ip address> Host模块中不需要被统计的IP,比如可以将爬虫的IP过滤掉
  • -h --help 帮助文档
  • -H --http-protocol 显示的时候是否带上HTTP协议信息
  • -m --with-mouse 控制面板开启支持鼠标点击,带上了m之后,双击鼠标就相当于回车的操作
  • -M --http-method 是否带上HTTP方法信息
  • -o --output-format=csv|json 输出为csv或者json形式
  • -p --conf-file=<filename> 指定配置文件,如果你有配置文件,配置文件中又恰巧设置了log-formatdate,那么你就不会被强制进入到format对话框了。如果你没有设置的话,默认使用~/.goacessrc
  • -q --no-query-string 忽略请求的参数部分
  • -r --no-term-resolverHost模块中是否进行IP的解析。加上-r是禁止IP解析。
  • --no-color 输出无颜色标示
  • --real-os 展示真实的操作系统。在Operation System模块中,是否展示更详细的操作系统信息。
最后修改:2018 年 02 月 16 日
如果觉得我的文章对你有用,请随意赞赏