GoAccess日志分析
GoAccess是一个开源的实时网络日志分析器和交互式查看器,可在Linux终端或浏览器中运行。
1.2 软件功能
– 为系统管理员提供可视化的服务器报告
-为系统管理员提供快速且有价值的HTTP统计
1.3软件特性
– 快速、实时(由于基于C语言编写,可在毫秒或秒内完成更新)
– 只依赖于ncurses
– 兼容几乎所有的Web日志格式(Apache、Nginx、Amazon S3、Elastic Load Balancing、CloudFront等)
– 只需要配置日志格式即可运行
– 美丽的终端和引导仪表板(可自定义色彩方案)
1)环境基于Docker容器运行7U机器
$ wget https://tar.goaccess.io/goaccess-1.3.tar.gz
$ tar -xzvf goaccess-1.3.tar.gz $ cd goaccess-1.3/
$ ./configure --enable-utf8 --enable-geoip=legacy
$ make && make install
FAQ:
根据错误提示解决依赖关系:
configure: error:
*** Missing development files for the GeoIP library
安装需要的软件包:
yum install -y GeoIP-devel
再次运行预编译命令并根据错误提示解决依赖关系:
configure: error:
*** Missing development libraries for ncursesw
安装需要的软件包:
yum install -y ncurses-devel
PS:本次分析日志为tsar.data 标准输出日志
日志格式选为 NCSA Combined Log Format
回车即可看到当前日志分析结果
控制台下的操作方法:
F1 主帮助页面
F5 重绘主窗口
q 退出
1-15 跳转到对应的模块编号
o 打开当前模块的详细试图
j 当前模块向下滚动
k 当前模块向上滚动
s 对模块排序
ff1 主帮助页面asdg
查看当前配置
[root@test1.inc.alipay.net /var/log]
#egrep -v "^#|^$" goaccess.conf
config-dialog false
hl-header true
json-pretty-print false
no-color false
no-column-names false
no-csv-summary false
no-progress false
no-tab-scroll false
with-mouse false
agent-list false
with-output-resolver false
http-method yes
http-protocol yes
no-query-string false
no-term-resolver false
444-as-404 false
4xx-to-unique-count false
all-static-files false
double-decode false
ignore-crawlers false
crawlers-only false
ignore-panel REFERRERS
ignore-panel KEYPHRASES
real-os true
static-file .css
static-file .js
static-file .jpg
static-file .png
static-file .gif
static-file .ico
static-file .jpeg
static-file .pdf
static-file .csv
static-file .mpeg
static-file .mpg
static-file .swf
static-file .woff
static-file .woff2
static-file .xls
static-file .xlsx
static-file .doc
static-file .docx
static-file .ppt
static-file .pptx
static-file .txt
static-file .zip
static-file .ogg
static-file .mp3
static-file .mp4
static-file .exe
static-file .iso
static-file .gz
static-file .rar
static-file .svg
static-file .bmp
static-file .tar
static-file .tgz
static-file .tiff
static-file .tif
static-file .ttf
static-file .flv
由上可见默认配置中并无时间参数,需要在配置中添加时间参数。
[root@test1.inc.alipay.net]
#cat >>goaccess.conf<<EOF
> time-format %H:%M:%S
> date-format %d/%b/%Y
> #NCSA Combined Log Format
> log-format %h %^[%d:%t %^] "%r" %s %b "%R""%u"
> EOF
[root@test1.inc.alipay.net]
#cp -a goaccess.conf ../
在某些场景下,没有这样的实时性要求,可采用 crontab 机制实现定时更新 HTML 报表。
# 每天执行
0 0 1 * * goaccess -a -d -f /data/logs/fanhaobai.com.access.log -p /etc/goaccess.conf -o /data/html/hexo/public/go-access.html 2> /data/logs/go-access.log
TOP:官方文档:https://goaccess.io/man
尽管 GoAccess 很强大,但是它无法制定自定义监控规则,无法满足对站点更细粒度更全面的监控需求。到 2018 年底,另站已经使用 ELK 日志平台 来分析站点的访问情况和流量分析了,效果见 ELK 集中式日志平台。