centos 系统安装Goaccess
1. 需要安装 GeoIP, ncurses, glib2
#yum -y install glib2 glib2-devel ncurses ncurses-devel GeoIP GeoIP-devel
2.下载 GoAccess 解压编译安装
$ wget http://tar.goaccess.io/goaccess-1.2.tar.gz
$ tar -xzvf goaccess-1.2.tar.gz
$ cd goaccess-1.2/
$ ./configure –enable-utf8 –enable-geoip=legacy
$ make
# make install
3.使用
goaccess -d -f access.log -a > test.html
4.报错了要设置日志
GoAccess – version 1.2 – Dec 12 2017 15:56:52
Config file: /usr/local/etc/goaccess.conf
Fatal error has occurred
Error occured at: src/parser.c – parse_log – 2705
No time format was found on your conf file.
修改 /usr/local/etc/goaccess.conf 更改一下位置
time-format %H:%M:%S
date-format %d/%b/%Y
log-format 这三项取消注释
其中log-format 按照你nginx日志格式调整 如果是默认的就不用修改 下面贴出log-format的配置
I.log format默认是按照空格分隔日志信息的,所以,对于包含了特殊字符如空格等信息的字段,必须包含在“”里面。如字段request http_user_agent等
II. nginx日志格式里面,采用空格分隔,但是此处一定注意,只能用一个空格。当时我有个地方用了两个空格,直接导致goaccess结果出错。
III. nginx日志中的每一个字段都要和log format中的一一对应,如果log format中不需要nginx中的某一个信息,则用%^跳过该信息。
IV. 对于nginx日志中的每一个 -, log format都需要一个%^来跳过, 如果是“-”, 则用“%^”
V. 如果nginx日志信息中有:, 则需要在log format中也显示出来。例如nginx日志中$time_local就包含了:,所以在log format的相应位置也是 [%d:%t %^]