22、Nginx 实战:GoAccess分析Nginx日志

1.GoAccess基本概述

GoAccess是一个基于终端的快速日志分析器。其核心思想是实时快速分析和查看Web服务器统计信息。

1、 安装简单;
2、 操作容易;
3、 界面酷炫;

 

2.GoAccess安装方式

安装分为yum安装与源码安装,大家可以自行选择,我这里选择使用源码的方式安装

2.1.安装goaccess

[root@xly ~]# wget https://tar.goaccess.io/goaccess-1.3.tar.gz
[root@xly ~]# tar -xzvf goaccess-1.3.tar.gz
[root@xly ~]# cd goaccess-1.3/
[root@xly ~]# yum install -y GeoIP-deve ncurses-devel
[root@xly goaccess-1.3]# ./configure --enable-utf8 --enable-geoip=legacy
[root@xly goaccess-1.3]# make && make install

2.2.goaccess基本使用

指定分析日志
[root@xly ~]# goaccess  -f  /var/log/nginx/access.log

按空格选择 NCSA Combined Log Format
注意: 如果是Nginx默认的日志格式无需调整选中回车即可。

 

2.3.等待一会时间后,会展示分析的结果

 

3.GoAccess使用方式

3.1.我们更希望能将此页面保存为HTML,然后通过浏览器访问,那么我们则需要配置日志格式

#搜索并修改如下配置。
[root@xly ~]# mkdir -p  /usr/local/etc/goaccess/
[root@xly ~]# touch /usr/local/etc/goaccess/goaccess.conf
[root@xly ~]# 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"

3.2.通过命令指定配置,将生成的信息保存为html

#1.测试是否能通过终端直接展示
[root@xly ~]# goaccess -f /var/log/nginx/access.log -p /usr/local/etc/goaccess/goaccess.conf

#2.将分析结果保存为hTML
[root@xly ~]# goaccess /var/log/nginx/access.log -o /code/log/index.html -p /usr/local/etc/goaccess/goaccess.conf

Parsing... [323,899] [53,983/s]

3.3.添加定时任务,每隔30分钟执行一次

[root@xly ~]# crontab -e 
#每隔30分钟生成一次html文件
30 * * * * /usr/local/bin/goaccess /var/log/nginx/access.log -o /code/log/index.html -p /usr/local/etc/goaccess/goaccess.conf

3.4.配置一个Nginx虚拟主机,将root指向/code/log,这样可以通过域名去访问html页面

1、 虚拟主机,在原有的配置加一个location;

	location /log {
		root /code;
		index index.html;
	}