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

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 multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb 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 multiversedeb 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 amd64log 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 OrellanaBuild 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 ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2024-04-29 11:42:23 UTC; 1min 53s agoDocs: https://httpd.apache.org/docs/2.4/Main PID: 68532 (apache2)Tasks: 55 (limit: 9347)Memory: 5.1MCPU: 26msCGroup: /system.slice/apache2.service├─68532 /usr/sbin/apache2 -k start├─68533 /usr/sbin/apache2 -k start└─68534 /usr/sbin/apache2 -k startApr 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
<VirtualHost *:8050>ServerAdmin webmaster@localhostDocumentRoot /var/www/html/web<Directory /var/www/html/web>Options Indexes FollowSymLinksAllowOverride AllRequire all granted</Directory>ErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

生成日志分析网页文件

 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 statusSystem Locale: LANG=zh_CN.utf8VC Keymap: n/aX11 Layout: usX11 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 服务器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/334704.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宝塔下应该用 Memcached 还是 Redis?

明月最近在跟几个使用宝塔面板的客户运维的时候发现不少站长不知道如何选择 Memcached 和 Redis&#xff0c;甚至都说不清楚 Memcached 或者 Redis 具体是用来干啥的&#xff1f;甚至还碰到过一个站长 Memcached 和 Redis 都安装了&#xff0c;但一个都没有用&#xff0c;就那么…

遇到了导师放养,该怎么坚持?

最近收到学生读者的留言&#xff0c;抱怨科研的困难。导师忙碌且学生众多&#xff0c;自己只是众多学生之一&#xff0c;常常处于放养状态。除了每周的组会外&#xff0c;几乎无法接触到导师。在这种状态下&#xff0c;缺乏方向和动力&#xff0c;非常担心无法顺利毕业&#xf…

进程互斥经典问题(读写者问题、理发店问题)

目录 读写者问题 问题描述 问题分析 进程互斥问题三部曲 读者写者算法实现 一、找进程——确定进程关系 二、找主营业务 三、找同步约束 a.互斥 b.资源 c.配额 理发店问题 问题描述 问题分析 进程互斥问题三部曲 理发店问题算法实现 一、找进程——确定进程…

光伏智慧化运营解决方案的应用和价值

在社会对新能源需求的不断扩大&#xff0c;光伏已经成为了可再生能源的重要组成部分&#xff0c;随着光伏电站数量和规模的不断扩大&#xff0c;相关企业和用户都就开始关注如何能够高效精准的进行电站管理&#xff0c;对此&#xff0c;鹧鸪云提出了光伏智慧化运营解决方案&…

解读makefile中的.PHONY

在 Makefile 中&#xff0c;.PHONY 是一个特殊的目标&#xff0c;用于声明伪目标&#xff08;phony target&#xff09;。伪目标是指并不代表实际构建结果的目标&#xff0c;而是用来触发特定动作或命令的标识。通常情况下&#xff0c;.PHONY 会被用来声明一组需要执行的动作&a…

前端学习--React部分

文章目录 前端学习--React部分前言1.React简介1.1React的特点1.2引入文件1.3JSX&#x1f349;JSX简介与使用&#x1f349;JSX语法规则 1.4模块与组件&#x1f349;模块&#x1f349;组件 1.5安装开发者工具 2.React面向组件编程2.1创建组件&#x1f349;函数式组件&#x1f349…

Redis学习篇2:Redis在Spring中的应用

本文继上文开始讲述了Redis在IDEA中如何应用以及集成进入spring开发环境&#xff0c;以及如何使用Redis客户端。上一个文章&#xff1a;Redis学习篇1&#xff1a;初识Redishttps://blog.csdn.net/jialuosi/article/details/139057088 一、Redis在java中的客户端 二、SpringDat…

机器学习基础笔记

周志华老师的机器学习初步的笔记 绪论 知识分类 科学 是什么&#xff0c;为什么 技术 怎么做 工程 多快好省 应用 口诀&#xff0c;技巧&#xff0c;实际复杂环境&#xff0c;行行出状元 定义 经典定义 利用经验改善系统自身的性能 训练数据 模型 学习算法 分类 决策树…

springboot整合kkFileView部署,前端使用

前言&#xff1a; 官方文档&#xff1a;https://kkfileview.keking.cn/zh-cn/docs/production.html docker方式或加入星球获取发行包直接获取启动&#xff0c;无需以下步骤&#xff1a; 拉取镜像# 网络环境方便访问docker中央仓库 docker pull keking/kkfileview:4.1.0# 网…

监控云安全的9个方法和措施

如今&#xff0c;很多企业致力于提高云计算安全指标的可见性&#xff0c;这是由于云计算的安全性与本地部署的安全性根本不同&#xff0c;并且随着企业将应用程序、服务和数据移动到新环境&#xff0c;需要不同的实践。检测云的云检测就显得极其重要。 如今&#xff0c;很多企业…

SSL协议:网络安全通信的守护者

在网络通信迅猛发展的今天&#xff0c;数据安全和隐私保护变得尤为重要。安全套接层协议&#xff08;Secure Sockets Layer, SSL&#xff09;作为早期网络加密及身份验证的基石&#xff0c;为在线数据传输提供了安全保障。下面我们就来了解一下SSL协议。 SSL协议概述 SSL协议最…

关于Moon Player在Apple Vision Pro上无法隐藏/唤醒面板的问题

如果你无法通过手势隐藏/唤醒面板&#xff0c;请确认您是否打开了手势追踪相关权限。 检查方法&#xff1a; 前往系统设置 - Apps找到Moon Player检查权限是否开启 后续步骤&#xff1a; 设置完权限后&#xff0c;你可能需要强制重启Moon Player&#xff0c;请按照以下操作…

NSSCTF-Web题目3

目录 [BJDCTF 2020]easy_md5 1、知识点 2、题目 3、思路 [ZJCTF 2019]NiZhuanSiWei 1、知识点 2、题目 3、思路 第一层 第二层 第三层 [BJDCTF 2020]easy_md5 1、知识点 弱比较&#xff0c;强比较、数组绕过、MD5加密 2、题目 3、思路 1、首先我们跟着题目输入&a…

OSPF问题

.ospf 选路 域内 --- 1类&#xff0c;2类LSA 域间 --- 3类LSA 域外 --- 5类&#xff0c;7类LSA --- 根据开销值的计算规则不同&#xff0c;还分为类型1和类型2 ospf 防环机制 区域内防环&#xff1a;在同一OSPF区域内&#xff0c;所有路由器通过交换链路状态通告&#xff…

Nature plants|做完单细胞还可以做哪些下游验证实验

中国科学院分子植物科学中心与南方科技大学在《Nature Plants》期刊上(IF18.0)发表了关于苜蓿根瘤共生感知和早期反应的文章&#xff0c;该研究首次在单细胞水平解析了结瘤因子处理蒺藜苜蓿&#xff08;Medicago truncatula&#xff09;根系24小时内特异细胞类型的基因表达变化…

深入理解MySQL索引下推优化

在MySQL中&#xff0c;索引的使用对于查询性能至关重要。然而&#xff0c;即使有合适的索引&#xff0c;有时查询性能仍然不尽如人意。索引下推&#xff08;Index Condition Pushdown&#xff0c;ICP&#xff09;是一项能够进一步优化查询性能的技术。本文将详细讲解索引下推的…

JavaWeb_SpringBootWeb

先通过一个小练习简单了解以下SpringBootWeb。 小练习&#xff1a; 需求&#xff1a;使用SpringBoot开发一个Web应用&#xff0c;浏览器发起请求/hello后&#xff0c;给浏览器返回字符串"Hello World~"。 步骤&#xff1a; 1.创建SpringBoot项目&#xff0c;勾选We…

Llama 3 模型家族构建安全可信赖企业级AI应用之使用 Llama Guard 保护大模型对话 (八)

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…

nginx安装部署问题

记一次nginx启动报错问题处理 问题1 内网部署nginx&#xff0c;开始执行make&#xff0c;执行不了&#xff0c;后面装了依赖的环境 yum install gcc-c 和 yum install -y pcre pcre-devel 问题2&#xff0c;启动nginx报错 解决nginx: [emerg] unknown directive “stream“ in…

Stable Diffusion【写实模型】:逼真,逼真,超级逼真的国产超写实摄影大模型万享XL

今天和大家分享的是一个国产万享系列中使用量最高的大模型:万享XL_超写实摄影&#xff0c;顾名思义&#xff0c;该大模型主要是面向写实摄影&#xff0c;一方面生成的图片人物皮肤纹理细节超级逼真&#xff0c;另一方面对于光影效果的处理也非常到位。对于万享XL超写实摄影大模…