从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件
  • 首页
  • Nginx
  • 用GoAccess实现可视化并实时监控access日志

用GoAccess实现可视化并实时监控access日志

发布:蔺要红05-23分类: Nginx


1、简介

GoAccess旨在成为一个基于终端的快速日志分析器,其核心思想是实时快速分析和查看Web服务器统计信息,GoAccess可分析Apache/Nginx等WEB日志,
同时还支持生成HTML、JSON、CSV等数据报告。

2、特点:
所有面板和指标都定时在终端输出上每200毫秒更新一次,在HTML输出上每秒更新一次。
GoAccess允许任何自定义日志格式字符串。预定义选项包括Apache,Nginx,Amazon S3,Elastic Load Balancing,CloudFront等
跟踪提供请求所需的时间。如果您想跟踪减慢网站速度的网页,则非常有用。
数据持久性强,GoAccess能够通过磁盘上的B + Tree数据库逐步处理日志。
GoAccess是用C语言编写的,要运行它,你只需要将ncurses作为依赖项,它甚至还具有自己的RFC6455兼容Web Socket服务器。
您可以针对访问日志文件运行它,选择日志格式并让GoAccess解析访问日志并显示统计信息。
按小时或日期确定最慢运行请求的匹配数,访问者数,带宽数和指标数。
多个虚拟主机,一个面板,显示哪个虚拟主机正在消耗大部分Web服务器资源。
定制GoAccess以适合您自己的色彩品味。通过终端,或者只是更新HTML输出上的样式表。

2、安装:
GoAccess下载地址:
https://goaccess.io/download

 

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


编译出错:

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
tar -xzvf GeoIP-1.6.11.tar.gz
cd GeoIP-1.6.11
./configure
make
make install


编译出错:

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

解决办法:

yum -y install install libncursesw*


命令行测试:

​​​​命令使用说明:
 https://goaccess.io/man

-f --log-file=<logfile>

Specify the path to the input log file. If set in the config file, it will take priority over -f from the command line.


-p --config-file=<configfile>

Specify a custom configuration file to use. If set, it will take priority over the global configuration file (if any).

    ​​​​​​​​​​-o --output=<json|csv>

Write output to stdout given one of the following files and the corresponding extension for the output format: 

  • /path/file.csv - Comma-separated values (CSV)
  • /path/file.json - JSON (JavaScript Object Notation)
  • /path/file.html - HTML​​​​​​​
 
 goaccess -f /data/wwwlogs/www.linyaohong.com.access.log



回车后展示分析结果

​​​​​​​

​​​​​​​将此页面保存为HTML,然后通过浏览器访问,
 

#修改配置文件
[[email protected] ~]# 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"


通过命令指定配置文件,把生成的信息保存为html
 

goaccess -f /data/wwwlogs/www.linyaohong.com.access.log  -p /usr/local/etc/goaccess/goaccess.conf  #测试
goaccess -f  /data/wwwlogs/www.linyaohong.com.access.log -o /data/wwwroot/log/index.html -p /usr/local/etc/goaccess/goaccess.conf #生成html


添加定时任务
 

[[email protected]_hong log]# crontab -l
*/20 * * * * /sbin/ntpdate -u pool.ntp.org > /dev/null 2>&1
#goaccess save html
30 * * * *  goaccess -f /data/wwwlogs/www.linyaohong.com.access.log -o /data/wwwroot/log/index.html -p /usr/local/etc/goaccess/goaccess.conf  > /dev/null 2>&


Nginx添加虚拟主机、通过域名去访问html
 

    location ^~ /access{
    alias /data/wwwroot/log;  #生成html的目录、此处使用的别名
    }


修改字符集让页面显示中文:
 

#永久
[[email protected]_hong wwwroot]# cat /etc/locale.conf 
LANG="zh_CN.UTF-8"

#临时
LANG="zh_CN.UTF-8"


访问页面查看效果:


​​​​​​​

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站