GoAccess日志分析工具

简介

官网:https://goaccess.io/download#installation

GoAccess是一个非常良心的开源软件,它的良心之处体现在如下方面:
1)安装简单;
2)操作容易;
3)界面酷炫;

安装

系统环境:sentos7

selinux设置:

查看:# sestatus

  SELinux status: disabled

安装过程:

方案一:yum安装

#yum install glib2 glib2-devel GeoIP-devel  ncurses-devel zlib zlib-develyum install gcc -y
#yum -y install GeoIP-update
#yum install goaccess

方案二:源码安装

# 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

配置完成:

Your build configuration:

  Prefix         : /usr/local
  Package        : goaccess
  Version        : 1.3
  Compiler flags :  -pthread
  Linker flags   : -lnsl -lncursesw -lGeoIP -lpthread
  Dynamic buffer : no
  Geolocation    : GeoIP Legacy
  Storage method : In-memory Hash Database (Default)
  TLS/SSL        : no
  Bugs           : goaccess@prosoftcorp.com

编译出错解决:

1、

configure: error:
*** Missing development files for the GeoIP library

解决:

# wget https://github.com/maxmind/geoip-api-c/releases/download/v1.6.11/GeoIP-1.6.11.tar.gz
# cd GeoIP-1.6.11/
# ./configure && make && make install

2、

configure: error: *** Missing development libraries for ncursesw

解决:

# yum install ncurses-devel
# yum install ncurses-libs

使用GoAccess分析日志

这次分析日志为nginx标准输出

①goaccess命令使用: 

# goaccess -f access.log

②出现goaccess界面:按“空格”选择格式为    NCSA Combined Log Format   

 

 ③再回车即可看到分析结果

生成HTML页面

修改配置,先查看当前配置:

]# 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

由上可见默认配置中并无时间参数,需要在配置中添加时间参数。

# 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

生成命令h5的日志页面

# goaccess  /usr/local/nginx/logs/access.log -o /usr/local/nginx/logs/report.html -p /etc/goaccess.conf
-p 指定配置文件
-o 指定生成文件的位置

添加到定时任务

30 * * * * /usr/bin/goaccess  /usr/local/nginx/logs/access.log -o /usr/local/nginx/logs/report.html -p /etc/goaccess.conf

访问:http://loghost/report.html

 

调整

1、中文展示

如果你的系统默认设置时英文显示,想要以中文显示日志报表,就需要进行字符设置

查看系统语言:
# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

临时设置为中文的命令:
# LANG="zh_CN.UTF-8"

如果不设置系统默认语言,还有其他办法调整goaccess为中文吗?当然可以

#LANG="zh_CN.UTF-8" bash -c "goaccess -p /etc/goaccess.conf /usr/local/nginx/logs/access.log -o /usr/local/nginx/logs/report.html --log-format=COMBINED"

2、html可视化文件的实时更新方法:

#nohup goaccess -f access.log -p goaccess.conf -o report.html --real-time-html --ws-url=report.xxx.com &
 

  选项解释

  -f 指定nginx日志文件
  -p 指定日志格式文件
  -o 输出到指定html文件
  --real-time-html 实时刷新
  --ws-url 绑定一个域名

3、配置nginx中日志log_format中的日志格式

改完记得reload配置

3.1 获取nginx.conf中log_format配置

3.2 获取nginx2goaccess脚本,可以将日志格式转换为goaccess能识别的日志格式,脚本地址:https://www.cnblogs.com/erbiao/p/9221543.html

# sh nginx2goaccess.sh '$remote_addr $http_x_forwarded_for [$time_local] $host "$request_uri" $status "$http_referer" "$http_user_agent"'

- Generated goaccess config:
time-format %T
date-format %d/%b/%Y
log_format %h %^ [%d:%t %^] %v "%U" %s "%R" "%u"

3.3 将转换后的内容加入到配置/etc/goaccess.conf 

原文地址:https://www.cnblogs.com/-abm/p/10846617.html