Linux系统之GoAccess实时Web日志分析工具的基本使用

Linux系统之GoAccess实时Web日志分析工具的基本使用

码农世界 2024-05-26 前端 70 次浏览 0个评论

Linux系统之GoAccess实时Web日志分析工具的基本使用

  • 一、GoAccess介绍
    • 1.1 GoAccess简介
    • 1.2 GoAccess功能
    • 1.3 Web日志格式
    • 二、本地环境介绍
      • 2.1 本地环境规划
      • 2.2 本次实践介绍
      • 三、检查本地环境
        • 3.1 检查本地操作系统版本
        • 3.2 检查系统内核版本
        • 3.3 检查系统镜像源
        • 3.4 更新软件列表
        • 3.5 查询软件
        • 四、安装GoAccess
          • 4.1 编译安装
          • 4.2 从发行版本安装
          • 4.3 查看安装版本
          • 五、监控日志信息
            • 5.1 检查本地web服务器
            • 5.2 监视Apache日志
            • 5.3 测试访问web服务
            • 六、通过web仪表板查看日志
              • 6.1 本机操作
              • 6.2 浏览器打开日志文件
              • 6.3 配置虚拟主机访问
              • 七、设置中文
                • 7.1 系统安装中文包
                • 7.2 设置简体中文
                • 7.3 测试访问
                • 八、总结

                  一、GoAccess介绍

                  1.1 GoAccess简介

                  GoAccess 是一个开源实时 Web 日志分析器和交互式查看器,可在Linux系统上的 终端中或通过浏览器运行。它为需要动态可视化服务器报告的系统管理员提供快速且有价值的 HTTP 统计信息。

                  1.2 GoAccess功能

                  GoAccess解析指定的Web日志文件并将数据输出到X终端。特点包括:

                  • 完全实时:所有面板和指标都定时在终端输出上每 200 毫秒更新一次,在 HTML 输出上每秒更新一次。

                  • 所需的最少配置:您只需针对访问日志文件运行它,选择日志格式,然后让 GoAccess 解析访问日志并向您显示统计信息。

                  • 跟踪应用程序响应时间:跟踪处理请求所花费的时间。如果您想跟踪减慢网站速度的页面,则非常有用。

                  • 几乎所有 Web 日志格式:GoAccess 允许任何自定义日志格式字符串。预定义选项包括 Apache、Nginx、Amazon S3、Elastic Load Balancing、CloudFront 等。

                  • 增量日志处理:需要数据持久化?GoAccess 能够通过磁盘持久性选项增量处理日志。

                  • GoAccess只有一个依赖项:是用 C 编写的。要运行它,您只需要 ncurses 作为依赖项。就是这样。它甚至拥有自己的 Web Socket 服务器 — http://gwsocket.io/。

                  • 访问者:按小时或日期确定点击量、访问者、带宽和最慢运行请求的指标。

                  • 每个虚拟主机的指标:拥有多个虚拟主机(服务器块)?它有一个面板,显示哪个虚拟主机消耗了大部分 Web 服务器资源。

                  • ASN(自治系统编号映射):非常适合检测恶意流量模式并相应地阻止它们。

                  • 配色方案可定制:定制 GoAccess 以适合您自己的色彩品味/方案。通过终端,或者简单地在 HTML 输出上应用样式表。

                  • 支持大型数据集:GoAccess 凭借其优化的内存哈希表,能够解析大型日志。它具有非常好的内存使用率和相当好的性能。该存储还支持磁盘持久性。

                  • Docker 支持:能够从上游构建 GoAccess 的 Docker 映像。您仍然可以通过使用卷映射和编辑来完全配置它goaccess.conf。

                    1.3 Web日志格式

                    GoAccess 允许任何自定义日志格式字符串。预定义的选项包括 但 不限于:

                    • Amazon CloudFront(下载分配)。
                    • Amazon Simple Storage Service (S3)
                    • AWS 弹性负载均衡
                    • 组合日志格式 (XLF/ELF) Apache |Nginx的
                    • 通用日志格式 (CLF) Apache
                    • 谷歌云存储。
                    • Apache 虚拟主机
                    • Squid原生格式。
                    • W3C 格式 (IIS)。
                    • Caddy 的 JSON 结构化格式。
                    • Traefik 的 CLF风格

                      二、本地环境介绍

                      2.1 本地环境规划

                      本次实践为个人测试环境,操作系统版本为centos7.6。

                      hostname本地P地址操作系统版本内核版本node版本
                      ubuntu-001192.168.3.251Ubuntu 22.04.1 LTS5.15.0-89-genericv20.10.0——

                      2.2 本次实践介绍

                      1.本次实践部署环境为个人测试环境,生产环境请谨慎;

                      2.在Ubuntu环境下部署GoAccess工具及其基本使用。

                      三、检查本地环境

                      3.1 检查本地操作系统版本

                      检查本地操作系统版本,当前版本为Ubuntu 22.04.1 LTS。

                      root@jeven:~# cat /etc/os-release
                      PRETTY_NAME="Ubuntu 22.04.1 LTS"
                      NAME="Ubuntu"
                      VERSION_ID="22.04"
                      VERSION="22.04.1 LTS (Jammy Jellyfish)"
                      VERSION_CODENAME=jammy
                      ID=ubuntu
                      ID_LIKE=debian
                      HOME_URL="https://www.ubuntu.com/"
                      SUPPORT_URL="https://help.ubuntu.com/"
                      BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
                      PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
                      UBUNTU_CODENAME=jammy
                      

                      3.2 检查系统内核版本

                      检查系统内核版本,当前内核版本为5.15.0-89-generic。

                      root@jeven:~# uname -r
                      5.15.0-89-generic
                      

                      3.3 检查系统镜像源

                      对于Ubuntu 22.04.1 LTS版本,将镜像源配置文件/etc/apt/sources.list修改内容如下。

                      root@ubuntu-001:~# cat /etc/apt/sources.list
                      deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
                      deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
                      deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
                      deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
                      deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
                      deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
                      # deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
                      # deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
                      deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
                      deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
                      

                      3.4 更新软件列表

                      执行以下命令,更新软件列包表。

                      root@ubuntu-001:~# apt update
                      Hit:1 https://mirrors.aliyun.com/ubuntu jammy InRelease
                      Hit:2 https://mirrors.aliyun.com/ubuntu jammy-security InRelease
                      Hit:3 https://mirrors.aliyun.com/ubuntu jammy-updates InRelease
                      Hit:4 https://mirrors.aliyun.com/ubuntu jammy-backports InRelease
                      Hit:5 https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy InRelease
                      Reading package lists... Done
                      Building dependency tree... Done
                      Reading state information... Done
                      116 packages can be upgraded. Run 'apt list --upgradable' to see them.
                      

                      3.5 查询软件

                      查询软件源中是否有 goaccess软件包,我们可以已经成功查找到goaccess软件包。

                      root@ubuntu-001:~# apt search goaccess
                      Sorting... Done
                      Full Text Search... Done
                      goaccess/jammy 1:1.5.5-1 amd64
                        log analyzer and interactive viewer for the Apache Webserver
                      

                      四、安装GoAccess

                      4.1 编译安装

                      可以在Linux的个版本上,执行以下编译安装命令。

                      $ wget https://tar.goaccess.io/goaccess-1.9.2.tar.gz
                      $ tar -xzvf goaccess-1.9.2.tar.gz
                      $ cd goaccess-1.9.2/
                      $ ./configure --enable-utf8 --enable-geoip=mmdb
                      $ make
                      # make install
                      

                      4.2 从发行版本安装

                      本次是在Ubuntu上实践,我们可以使用以下命令安装。

                       sudo apt install -y goaccess
                      

                      其他发行版上安装,可以参考以下安装命令。

                      • 在 RHEL / CentOS上安装
                        sudo yum install -y goaccess
                        
                        • 在Fedora上安装
                           sudo dnf install goaccess -y
                          
                          • 在Arch Linux上安装
                            sudo pacman -S goaccess
                            

                            4.3 查看安装版本

                            使用--help,可以查看goaccess详细帮助信息。

                            goaccess --help
                            

                            检查安装goaccess版本,当前安装版本为1.5.5。

                            root@ubuntu-001:~# goaccess --version
                            GoAccess - 1.5.5.
                            For more details visit: https://goaccess.io/
                            Copyright (C) 2009-2022 by Gerardo Orellana
                            Build configure arguments:
                              --enable-utf8
                              --enable-geoip=mmdb
                              --with-openssl
                            

                            五、监控日志信息

                            5.1 检查本地web服务器

                            本地服务器我们安装Apache,并启动apache2服务。

                            apt install apache2 -y 
                            

                            启动apache2服务,并设置开机自启。

                            root@ubuntu-001:~# systemctl enable --now apache2
                            Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
                            Executing: /lib/systemd/systemd-sysv-install enable apache2
                            

                            查看apache2服务状态

                            root@ubuntu-001:~# systemctl status apache2
                            ● apache2.service - The Apache HTTP Server
                                 Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
                                 Active: active (running) since Mon 2024-04-29 11:42:23 UTC; 1min 53s ago
                                   Docs: https://httpd.apache.org/docs/2.4/
                               Main PID: 68532 (apache2)
                                  Tasks: 55 (limit: 9347)
                                 Memory: 5.1M
                                    CPU: 26ms
                                 CGroup: /system.slice/apache2.service
                                         ├─68532 /usr/sbin/apache2 -k start
                                         ├─68533 /usr/sbin/apache2 -k start
                                         └─68534 /usr/sbin/apache2 -k start
                            Apr 29 11:42:23 ubuntu-001 systemd[1]: Starting The Apache HTTP Server...
                            Apr 29 11:42:23 ubuntu-001 apachectl[68531]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, us>
                            Apr 29 11:42:23 ubuntu-001 systemd[1]: Started The Apache HTTP Server.
                            lines 1-16/16 (END)
                            

                            5.2 监视Apache日志

                            执行以下命令,监控Apache日志,其中-f 选项允许在命令行上实时查看日志,

                            goaccess -f /var/log/apache2/access.log --log-format=COMBINED
                            

                            5.3 测试访问web服务

                            我们在本地浏览器上访问:http://192.168.3.251/,可以看到成功访问到apache的初始页面。

                            我们再次回到本机上,看到终端上已经成功显示日志信息。Web 服务器的日志统计将打印在终端上。

                            六、通过web仪表板查看日志

                            6.1 本机操作

                            我们还可以通过重定向来将 web 服务器日志以优雅而直观的方式呈现在一个仪表板上。我们可以将输出文件指定为linux_web.html。

                            goaccess -f /var/log/apache2/access.log --log-format=COMBINED > linux_web.html
                            

                            在终端查看生成的linux_web.html文件

                            root@ubuntu-001:~# ls -l linux_web.html
                            -rw-r--r-- 1 root root 344922 Apr 29 14:07 linux_web.html
                            

                            6.2 浏览器打开日志文件

                            将生成的linux_web.html文件导出到本地,使用本地浏览器打开。

                            6.3 配置虚拟主机访问

                            新增监听8050端口

                            vim /etc/apache2/ports.conf
                            
                            Listen 90
                            

                            编辑Apache2的默认配置文件。运行以下命令打开000-default.conf文件进行编辑。

                            vim /etc/apache2/sites-available/myweb.conf
                            

                            在 标签中添加以下代码块来配置端口 8050 和网站目录

                            Alias / /var/www/html/web/linux_web.html
                            
                                ServerAdmin webmaster@localhost
                                DocumentRoot /var/www/html/web
                                
                                    Options Indexes FollowSymLinks
                                    AllowOverride All
                                    Require all granted
                                
                                ErrorLog ${APACHE_LOG_DIR}/error.log
                                CustomLog ${APACHE_LOG_DIR}/access.log combined
                            
                            

                            生成日志分析网页文件

                             mkdir -p /var/www/html/web
                            
                            goaccess -f /var/log/apache2/access.log --log-format=COMBINED > /var/www/html/web/linux_web.html
                            

                            重启apache2服务

                            a2ensite myweb.conf
                            systemctl restart apache2
                            

                            浏览器输入:http://192.168.3.251:8050/,将IP替换为自己服务器IP地址。

                            七、设置中文

                            7.1 系统安装中文包

                            系统安装中文包

                            apt install language-pack-zh-hans -y
                            

                            7.2 设置简体中文

                            执行以下命令,设置系统简体中文。

                            localectl set-locale LANG=zh_CN.utf8
                            

                            可以看到Ubuntu系统的默认语言和字符集设置为简体中文(zh_CN)

                            root@ubuntu-001:~# localectl status
                               System Locale: LANG=zh_CN.utf8
                                   VC Keymap: n/a
                                  X11 Layout: us
                                   X11 Model: pc105
                            

                            7.3 测试访问

                            重新生成日志分析文件

                            LANG="zh_CN.UTF-8"  goaccess -f /var/log/apache2/access.log --log-format=COMBINED > /var/www/html/web/linux_web.html
                            
                            systemctl restart apache2
                            
                            • 终端命令行显示
                              LANG="zh_CN.UTF-8" goaccess -f /var/log/apache2/access.log --log-format=COMBINED
                              
                              • 重新浏览器访问,可以看到已经成功切换到中文。

                                八、总结

                                GoAccess 是一款功能强大且易于使用的 Web 日志分析工具。它能够帮助系统管理员快速了解服务器的访问情况,提供有价值的统计信息和报告。无论是在终端中还是通过浏览器运行,GoAccess 都能够带来良好的使用体验,并帮助用户更好地监控和管理 Web 服务器。

转载请注明来自码农世界,本文标题:《Linux系统之GoAccess实时Web日志分析工具的基本使用》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,70人围观)参与讨论

还没有评论,来说两句吧...

Top