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.pswp.cn/web/16071.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/16071.shtml
英文地址,請注明出處:http://en.pswp.cn/web/16071.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaFX安裝與使用

前言 最近學習了javafx,開始時在配置環境和導包時遇到了一些麻煩,關于網上很多方法都嘗試過了,現在問題都解決了,和大家分享一下我是怎么實現javafx的配置,希望大家可以通過這個方法實現自己的環境配置! &#x1f648;個人主頁: 心.c &#x1f525;文章專題:javafx &#x1f49…

如何在linux命令行(終端)執行ipynb 文件。可以不依賴jupyter

1.安裝 runipy pip install runipy 2.終端運行 runipy <YourNotebookName>.ipynb 在終端命令行執行shell腳本&#xff0c;&#xff08;也可以在crontab 中執行&#xff09;&#xff1a; (base) [recommendapp-0-5-B-006 script]$ cat run1.sh #!/bin/bashcd /home/recom…

計算機網絡-Traffic-Filter流量過濾策略

一、概述 為提高網絡安全性&#xff0c;管理人員需要控制進入網絡的流量&#xff0c;將不信任的報文丟棄在網絡邊界。所謂的不信任報文是指對用戶來說存在安全隱患或者不愿意接收的報文。同時保證數據訪問安全性&#xff0c;企業網絡中經常會要求一些部門之間不能相互訪問。 背…

服務器數據恢復—同友存儲raid5陣列上層虛擬機數據恢復案例

服務器數據恢復環境&#xff1a; 某市教育局同友存儲&#xff0c;存儲中有一組由數塊磁盤組建的raid5陣列&#xff0c;存儲空間劃分若干lun。每個lun中有若干臺虛擬機&#xff0c;其中有數臺linux操作系統的虛擬機為重要數據。 存儲結構&#xff1a; 服務器故障&#xff1a; r…

前端面試個人技能總結

1.html5新特性 語義化標簽&#xff1a;header footer nav section artical aside媒體標簽&#xff1a;qudio video &#xff08;control autoplay loop &#xff09; source標簽表單新增屬性&#xff1a;輸入類型type:email url data month week color&#xff1b;新增屬性&…

slam14講(第9,10講 后端)

slam14講&#xff08;第9&#xff0c;10講 后端&#xff09; 后端分類基于濾波器的后端線性系統和卡爾曼濾波非線性系統和擴展卡爾曼濾波 BA優化H矩陣的稀疏性和邊緣化H矩陣求解的總結 位姿圖優化公式推導 基于滑動窗口的后端個人見解舊關鍵幀的邊緣化 后端分類 基于濾波器的后…

AtCoder Beginner Contest 355 A~F

A.Who Ate the Cake?(思維) 題意 已知有三個嫌疑人&#xff0c;有兩個證人&#xff0c;每個證人可以指出其中一個嫌疑人不是罪犯&#xff0c;如果可以排除兩個嫌疑人來確定犯人&#xff0c;輸出犯人的身份&#xff0c;如果無法確定&#xff0c;輸出"-1"。 分析 …

AT_abc351_c [ABC351C] Merge the balls 題解

題目傳送門 題目大意 你有一個空序列和 N N N 個球。第 i i i 個球 ( 1 ≤ i ≤ N ) (1 \leq i \leq N) (1≤i≤N) 的大小是 2 A i 2^{A_i} 2Ai?。 計算 N N N 操作后序列中剩余的球的個數。 你將進行 N N N 次運算。 在第 i i i 次操作中&#xff0c;你將第 i i…

springboot + Vue前后端項目(第十一記)

項目實戰第十一記 1.寫在前面2. 文件上傳和下載后端2.1 數據庫編寫2.2 工具類CodeGenerator生成代碼2.2.1 FileController2.2.2 application.yml2.2.3 攔截器InterceptorConfig 放行 3 文件上傳和下載前端3.1 File.vue頁面編寫3.2 路由配置3.3 Aside.vue 最終效果圖總結寫在最后…

TabAttention:基于表格數據的條件注意力學習

文章目錄 TabAttention: Learning Attention Conditionally on Tabular Data摘要方法實驗結果 TabAttention: Learning Attention Conditionally on Tabular Data 摘要 醫療數據分析通常結合成像數據和表格數據處理&#xff0c;使用機器學習算法。盡管先前的研究探討了注意力…

Hudi 多表攝取工具 HoodieMultiTableStreamer 配置方法與示例

博主歷時三年精心創作的《大數據平臺架構與原型實現&#xff1a;數據中臺建設實戰》一書現已由知名IT圖書品牌電子工業出版社博文視點出版發行&#xff0c;點擊《重磅推薦&#xff1a;建大數據平臺太難了&#xff01;給我發個工程原型吧&#xff01;》了解圖書詳情&#xff0c;…

vue3添加收藏網站頁面

結構與樣式 <template><div class"web_view"><ul><li v-for"web in webList" :key"web.title"><a :href"web.src" :title"web.title" target"_blank"><img :src"web.img&…

微信小程序基礎 -- 小程序UI組件(5)

小程序UI組件 1.小程序UI組件概述 開發文檔&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/view/component.html 什么是組件&#xff1a; 組件是視圖層的基本組成單元。 組件自帶一些功能與微信風格一致的樣式。 一個組件通常包括 開始標簽 和 結…

Cyber Weekly #8

賽博新聞 1、微軟召開年度發布會Microsoft Build 2024 本周&#xff08;5.22&#xff09;微軟召開了年度發布會&#xff0c;Microsoft Build 2024&#xff0c;發布了包括大殺器 Copilot Studio 在內的 50 項更新。主要包括&#xff1a; 硬件層面&#xff1a;與英偉達 & A…

3D牙科網格分割使用基于語義的特征學習與圖變換器

文章目錄 3D Dental Mesh Segmentation Using Semantics-Based Feature Learning with Graph-Transformer摘要方法實驗結果 3D Dental Mesh Segmentation Using Semantics-Based Feature Learning with Graph-Transformer 摘要 本文提出了一種新穎的基于語義的牙科網格分割方…

民國漫畫雜志《時代漫畫》第16期.PDF

時代漫畫16.PDF: https://url03.ctfile.com/f/1779803-1248612470-6a05f0?p9586 (訪問密碼: 9586) 《時代漫畫》的雜志在1934年誕生了&#xff0c;截止1937年6月戰爭來臨被迫停刊共發行了39期。 ps:資源來源網絡&#xff01;

代碼隨想錄訓練營總結

歷經60天的訓練營終于結束啦&#xff0c;感覺自己兩個月前做的這個決定非常正確&#xff0c;非常感謝卡哥和卡哥助手&#xff0c;從一個代碼沒有系統刷題沒有體系的小白到現在已經有了一些基礎&#xff0c;也具備一些刷題的習慣和手感&#xff0c;如果是我自己沒有規劃的刷可能…

【C++】二分查找:在排序數組中查找元素的第一個和最后一個位置

1.題目 難點&#xff1a;要求時間復雜度度為O(logn)。 2.算法思路 需要找到左邊界和右邊界就可以解決問題。 題目中的數組具有“二段性”&#xff0c;所以可以通過二分查找的思想進行解題。 代碼&#xff1a; class Solution { public:vector<int> searchRange(vect…

Camunda BPM主要組件

Camunda BPM是使用java開發的,核心流程引擎運行在JVM里,純java庫,不依賴其他庫或者底層操作系統。可以完美地與其他java框架融合,比如Spring。除了核心流程引擎外,還提供了一系列的管理,操作和監控工具。 1,工作流引擎 既適用于服務或者微服務編排,也適用于人工任務管…