GoAccess – 实时 Apache 和 Nginx 日志分析工具

一、使用yum方式安装goaccess1.2

操作系统环境

[root@k8s-etcd-2 test]# uname -r 3.10.0-693.el7.x86_64

1.1、安装使用yum源

首先安装epel的yum源,否则系统中没有goaccess的包

[root@k8s-etcd-2 test]# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm
[root@k8s-etcd-2 test]# rpm -ivh epel-release-7-12.noarch.rpm
[root@k8s-etcd-2 test]# yum makecache		#建立数据缓存

1.2、安装依赖包

[root@k8s-etcd-2 test]# yum -y install glib2 glib2-devel GeoIP-devel  ncurses-devel zlib zlib-devel gcc
[root@k8s-etcd-2 test]# yum -y install GeoIP-update	    #安装GeoIP-update地理位置数据库

1.3、安装goaccess

[root@k8s-etcd-2 test]# yum -y install goaccess
[root@k8s-etcd-2 test]# echo $?		     #查看安装命令是否执行成功,0为成功
0

1.4、调整goaccess配置

使用yum安装的goaccess,默认配置文件是在/etc/goaccess.conf

[root@k8s-etcd-2 test]# cat << EOF >> /etc/goaccess.conf
time-format %T
date-format %d/%b/%Y
log-format %h - %^ [%d:%t %^] requesthost:"%v"; "%r" requesttime:"%T"; %s %b "%R" - %^"%u"
EOF

1.5、调整nginx.conf配置

因为goaccess解析日志对log_format信息有要求,所以也需要调整nginx的配置

[root@k8s-etcd-2 test]# vim /opt/nginx/nginx.conf
log_format  main  '$remote_addr - $remote_user [$time_local] requesthost:"$http_host"; "$request" requesttime:"$request_time"; '
        '$status $body_bytes_sent "$http_referer" - $request_body'
        '"$http_user_agent" "$http_x_forwarded_for"';

(截取一张刚刚用yum安装的nginx配置,j见下图,以供参考!主要看log_format配置)

GoAccess - 实时 Apache 和 Nginx 日志分析工具

1.6、重启nginx

      这里需要注意 如果nginx之前已经在服务器上运行,并且之前已经有access访问日志,那么因为之前的日志文件是根据之前的log_format配置生成的,goaccess配置log_format不会识别,所以这次就需要先将以往的access.log删除或者重命名备份,然后等待重新生成的access.log文件。

[root@k8s-etcd-2 test]# cd /var/log/nginx/
[root@k8s-etcd-2 nginx]# mv access.log access.log_bak
[root@k8s-etcd-2 nginx]# systemctl restart nginx

3.2、访问测试nginx默认页面,生成access日志

GoAccess - 实时 Apache 和 Nginx 日志分析工具

1.7、使用goaccess进行日志解析

[root@k8s-etcd-2 nginx]# goaccess -a -c -d -f /var/log/nginx/access.log -p /etc/goaccess.conf > /home/test/test.html

goaccess使用参数详解

  • -a 开启 UserAgent 列表。开启后会降低解析速度
  • -c 在程序开始运行时显示 日志/日期 配置窗口
  • -d 输出 HTML 或者 JSON 报告时开启 IP 解析
  • -f 指定输入日志文件的路径
  • -p 指定使用自定义配置文件

1.8、配置访问方式

可以通过nginx的虚拟主机去访问,或者就干脆在Windows中用浏览器打开html文件就可以了

我这里简单配置一下nginx的虚拟主机去访问

[root@k8s-etcd-2 nginx]# vim /etc/nginx/nginx.conf
    server {
        listen     8080;
        server_name localhost;
            root    /home/test;
            index   test.html *.html;
        }
[root@k8s-etcd-2 nginx]# nginx -s reload

1.9、访问测试

访问我上边配置的地址 http://192.168.99.183:8080

GoAccess - 实时 Apache 和 Nginx 日志分析工具

如果可以访问到这个页面,恭喜简单使用成功!

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/9654

(0)
郭靖的头像郭靖
上一篇 2023年9月13日 下午5:10
下一篇 2023年9月14日 下午11:13

相关推荐

  • 一分钟解决打不开网页的故障

    做IT外包N多年了,每天就是面对各种大大小小的报修,有些小事,也算值得一记,分享给各位。 本文讲述的是一个非常多见的问题——微信和QQ能正常收发消息,但是所有网页都打不开,这个问题具有一定的普遍性和高发性,所以,我也是再一次地发文讲述 客户报修给技术小伙,他当时正开车,就直接转发给我了,我一看这种问题,大概率就是DNS的问题,与其我再安排别的技术小伙,还不如…

    2024年5月17日
    1.2K00
  • 交换机密码忘了,肿么办?

    作为网络工程师,还要记住网络设备的密码。举个栗子,交换机有 BOOT 密码、Console 口密码、Telnet 密码、SSH 密码和 Web 登录密码。假如忘记了交换机的某个密码,该肿么办呢? 1、忘记 Web 登录密码 如果忘记了 Web 登录密码,可以通过 Console 口、Telnet 或 SSH 登录交换机,设置新的 Web 登录密码。比如:We…

    2023年12月14日
    1.5K00
  • 宝塔面板下,打开phpmyadmin显示空白页的解决方法

    在宝塔面板里装完phpmyadmin但是进不去数据库的这种情况太常见了 1. 没开放888端口 当我们进phpmyadmin的时候,端口默认为888,这时,我们就要检查宝塔面板和阿里云或腾讯云等控制器里的安全组的888端口是否开放。 2. 环境不兼容 如果是纯静态,选择php版本即可。 如果PHP版本较高,则可以切换到低版本的PHP。

    2022年6月11日
    2.5K00
  • iptables与firewalld的区别

    iptables与firewalld的区别 firewalld可以动态修改单条规则,动态管理规则集,允许更新规则而不破坏现有会话和连接。而iptables,在修改了规则后必须得全部刷新才可以生效; firewalld使用区域和服务而不是链式规则; firewalld默认是拒绝的,需要设置以后才能放行。而iptables默认是允许的,需要拒绝的才去限制; fi…

    2022年8月9日
    1.5K00
  • 临时的解决防火墙上网不稳定

    某客户的华为防火墙已经工作了十几年,最近有点不正常,每个月总有那么几次断网,接口会自动down,而且每次只能重启了事,但是防火墙重启时间长,次数多了总觉得影响办公。 由于体制原因,申请采购的时间周期会比较长,尤其是在如今这个形势下。 客户问我要个临时的解决方案,于是我就出了个歪招,被客户好好地夸了一番,嘿嘿,本着分享的精神,这事儿也不私藏,说穿了,也很简单。…

    2024年5月20日
    1.1K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信