一、GoAccess基本概述
GoAccess 是一款用于Apache或者Nginx的命令行日志分析器和交互式查看器。使用这款工具,你不仅可以浏览到之前提及的相关数据,还可以通过分析网站服务器日志来进一步挖掘数据。这一切都是在一个终端窗口实时输出并且可以输出在web端可视化的显示信息。
二、GoAccess主要功能
- 统计概况,流量消耗等
- 访客排名
- 动态Web请求
- 静态web请求,如图片、样式表、脚本等。
- 来路域名
- 404 错误
- 操作系统
- 浏览器和搜索引擎
- 主机、DNS和ip地址
- HTTP 响应代码
- 引荐网站
- 键盘布局
- 自定义显示
- 支持超大日志(分析速度很快)
GoAccess用法介绍
GoAccess的基本语法如下:
goaccess [ -b ][ -s ][ -e IP_ADDRESS][ - a ] <-f log_file >
参数说明:
-f – 日志文件名
-b – 开启流量统计,如果希望加快分析速度不建议使用该参数
-s – 开启HTTP响应代码统计
-a – 开启用户代理统计
-e – 开启指定IP地址统计,默认禁用
-p -指定goacces用户配置文件路径
GoAccess的安装(centos)
1/安装依赖包:
[root@ljcccc ~]# yum install ncurses-devel
[root@ljcccc ~]# wget https://github.com/maxmind/geoip-api-c/releases/download/v1.6.11/GeoIP-1.6.11.tar.gz
[root@ljcccc ~]# tar GeoIP-1.6.11.tar.gz
[root@ljcccc ~]# cd GeoIP-1.6.11
[root@ljcccc ~]# ./configure && make && make install
2/安装GoAccess
[root@ljcccc ~]# wget https://tar.goaccess.io/goaccess-1.3.tar.gz
[root@ljcccc ~]# tar -xzvf goaccess-1.3.tar.gz
[root@ljcccc ~]# cd goaccess-1.3/
[root@ljcccc goaccess-1.3]# ./configure --enable-utf8 --enable-geoip=legacy
[root@ljcccc goaccess-1.3]# make && make install
报错解决办法:
configure: error: *** Missing development files for the GeoIP library
-----安装GeoIP依赖(步骤1)
configure: error: *** Missing development libraries for ncursesw
安装ncursesw:yum install libncursesw5-dev ncurses-libs ncurses-devel
GoAccess的使用
1、修改配置文件
#修改goaccess配置文件
[root@ljcccc ~]# vim /usr/local/etc/goaccess/goaccess.conf
#修改如下三行(去掉注释信息)
time-format %H:%M:%S
date-format %d/%b/%Y
#NCSA Combined Log Format
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
2、指定分析的日志
[root@ljcccc ~]# goaccess -f /var/log/nginx/access.log
回车即可看到当前日志分析结果
控制台下的操作方法:
控制台下的操作方法:
F1 主帮助页面
F5 重绘主窗口
q 退出
c 设置或改变配色方案
1-9 跳转到对应的模块编号
SHIFT + 0-9 激活超过10的模块
o 打开当前模块的详细试图
j 当前模块向下滚动
k 当前模块向上滚动
s 对模块排序
/ 向前在任意{详细视图}窗口搜索输入模式(pattern)
n 在任意{详细视图}窗口中找到下一次出现的位置
t 跳到第一个条目或屏幕顶端
b 跳到最后一个条目或者屏幕底部
3、在web端中显示
使用命令指定配置,将生成的信息保存为html
#1.测试是否能通过终端直接展示
[root@ljcccc ~]# goaccess -f /var/log/nginx/access.log -p /usr/local/etc/goaccess/goaccess.conf
#2.将分析结果保存为HTML
[root@ljcccc ~]# /usr/local/bin/goaccess /var/log/nginx/access.log -o /usr/share/nginx/log/index.html -p /usr/local/etc/goaccess/goaccess.conf
#3.将其加入定时任务
#由于对日志实时性要求不是非常高,于是写个小脚本,配置crontab,让其每隔一段时间转换一次,也可以实现伪实时性观察log,如下:
#!/bin/bash
LANG="zh_CN.UTF-8"
/usr/local/bin/goaccess /var/log/nginx/access.log -o /usr/share/nginx/log/index.html -p /usr/local/etc/goaccess/goaccess.conf
#4.然后再将脚本加入到crontab即可
[root@ljcccc ~]# crontab -l
#定时goaccess生成的信息保存为html
30 * * * * /bin/bash /root/scripts/goaccess.sh
在小脚本中定义:LANG=“zh_CN.UTF-8”,可以让web界面显示中文。喜欢看英文的小伙伴也可以不加这。
4.配置一个NGINX虚拟主机,将root指向/usr/share/nginx/log,这样就可以通过域名去访问HTML界面
输入域名查看页面
GoAccess是一个非常有价值的工具,它能给系统管理员实时提供可视的HTTP 统计分析。虽然GoAccess的默认输出是标准输出,但是你也可以将他们保存到JSON,HTML或者CSV文件。这种转换可以让 GoAccess在监控和显示网站服务器的统计数据时更有用。