使用 goaccess 分析 nginx 訪問日志

介紹

goaccess 是一個在本地解析日志的工具, 可以直接在命令行終端環境中使用 TUI 界面查看分析結果, 也可以導出為更加豐富的 HTML 頁面. 官網:
https://goaccess.io/

下載安裝

常見的 Linux 包管理器中都包含了 goaccess, 直接安裝就行. 以 Ubuntu 為例:

sudo apt install -y goaccss

如果使用 Amazon Linux 2023, 官方的 Repo 里面并不包含 goaccess, 需要手動下載編譯安裝:

dnf install -y libmaxminddb-devel
wget https://tar.goaccess.io/goaccess-1.9.4.tar.gz
tar -xzvf goaccess-1.9.4.tar.gz
cd goaccess-1.9.4/
./configure --enable-utf8 --enable-geoip=mmdb
make
make install

注意, 如果不先安裝 libmaxminddb-devel 依賴, 那么在配置的時候則會遇到下面的錯誤:

configure: error:*** Missing development files for libmaxminddb library.

安裝成功后檢查版本信息:

# goaccess --version
GoAccess - 1.9.4.
For more details visit: https://goaccess.io/
Copyright (C) 2009-2024 by Gerardo OrellanaBuild configure arguments:--enable-utf8--enable-geoip=mmdb

基本使用

  • 分析本地 nginx 的訪問日志
goaccess /var/log/nginx/access.log

日志格式選擇第一個 NCSA Combined Log Format
在這里插入圖片描述

加載出來的分析結果:
在這里插入圖片描述

按 Tab 鍵可以在不同的類目中進行跳轉切換
在這里插入圖片描述

按回車可以展開當前類目顯示更多詳情

在這里插入圖片描述

查看 IP 歸屬地

需要先下載 IP 地址歸屬地數據庫 GeoLite2, 下面用的是精準到國家一級:

wget https://cdn.jsdelivr.net/npm/geolite2-country/GeoLite2-Country.mmdb.gz
gunzip GeoLite2-Country.mmdb.gz

如果需要精準到城市級別:

wget https://cdn.jsdelivr.net/npm/geolite2-city/GeoLite2-City.mmdb.gz
gunzip GeoLite2-City.mmdb.gz

如果直接訪問 jsdelivr 有困難, 可以用下面的國內鏡像地址:

  • Country
    https://cdn.jsdmirror.cn/npm/geolite2-country/GeoLite2-Country.mmdb.gz
  • City
    https://cdn.jsdmirror.cn/npm/geolite2-city/GeoLite2-City.mmdb.gz

有了數據庫文件后, 再使用參數啟動 goaccess:

goaccess --geoip-database=GeoLite2-Country.mmdb /var/log/nginx/access.log

此時分析結果中會多出來一個 Geo Location 的類目, 展開就可以查看日志中對應的客戶端 IP 歸屬國家/城市(取決于傳入命令的數據庫)
在這里插入圖片描述

批量打開所有已歸檔的日志

首先需要編輯配置文件 /etc/goaccess/goaccess.conf 指定默認的時間日期以及日志格式, 找到下面行內容取消注釋, 或者直接在文件末尾追加下面內容:

time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

再配合管道符批量打開所有日志:

zcat /var/log/nginx/access.log.*.gz | goaccess --geoip-database=/root/GeoLite2-Country.mmdb /var/log/nginx/access.log -

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80697.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80697.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80697.shtml

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

相關文章

Google LLM prompt engineering(谷歌提示詞工程指南)

文章目錄 基本概念AI輸出配置:調整AI的回答方式輸出長度溫度(Temperature)Top-K和Top-P 提示技術:讓AI更好地理解你零樣本提示(Zero-shot)少樣本提示(Few-shot)系統提示(…

簡單介紹Qt的屬性子系統

深入理解Qt的屬性系統 ? 筆者最近正在大規模的開發Qt的項目和工程,這里筆者需要指出的是,這個玩意在最常規的Qt開發中是相對比較少用的,筆者也只是在Qt的QPropertyAnimation需要動畫感知筆者設置的一個屬性的時候方才知道這個東西的。因此&…

NestJS 框架深度解析

框架功能分析 NestJS 是一個基于 Node.js 的漸進式框架,專為構建高效、可擴展的服務器端應用程序而設計。其核心理念結合了 面向對象編程(OOP)、函數式編程(FP) 和 函數式響應式編程(FRP)&…

PostgreSQL技術大講堂 - 第89講:重講數據庫完全恢復

PostgreSQL技術大講堂 - 第89講,主題:重講數據庫完全恢復 時間:2025年05月10日19:30 歡迎持續關注CUUG PostgreSQL技術大講堂。

ubuntu部署supabase

安裝supabse https://supabase.com/docs/guides/local-development/cli/getting-started?queryGroupsplatform&platformlinux brew install supabase/tap/supabase supabase init supabase start需要使用brewuser進行安裝: brew安裝參考鏈接: ht…

基于javaweb的SpringBoot酒店管理系統設計與實現(源碼+文檔+部署講解)

技術范圍:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容:免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論文…

python 上海新聞爬蟲, 東方網 + 澎湃新聞

1. 起因, 目的: 繼續做新聞爬蟲。我之前寫過。此文先記錄2個新聞來源。后面打算進行過濾,比如只選出某一個類型新聞。 2. 先看效果 過濾出某種類型的新聞,然后生成 html 頁面,而且,自動打開這個頁面。 比如科技犯罪…

使用bitNet架構

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、配置二、報錯總結 前言 大型語言模型(LLM)面臨的挑戰:高能耗、高內存需求、部署門檻高。 微軟提出 BitNet 架構&#x…

筆試強訓(十七)

文章目錄 活動安排題解代碼 哈夫曼編碼題解代碼 奇數位丟棄題解代碼 活動安排 題目鏈接 題解 1. 區間貪心 排序 2. 如果有重疊部分,每次選擇右端點較小的,可以盡可能多的選擇區間個數,如果沒有重疊部分,選擇下一個區間的右端…

數據庫數據清洗、預處理與質量監控、 數據質量的核心概念

數據庫數據清洗、預處理與質量監控、 數據質量的核心概念 準確性 (Accuracy) 準確性指數據正確反映其所描述的實體或事件真實狀況的程度。準確的數據應當與現實世界中的實際情況一致。 一致性 (Consistency) 一致性指數據在不同表、系統或時間點之間保持邏輯上一致的程度。…

Docker組件詳解:核心技術與架構分析

Docker詳解:核心技術與架構分析 Docker作為一種容器化技術,已經徹底改變了軟件的開發、交付和部署方式。要充分理解和利用Docker的強大功能,我們需要深入了解其核心組件以及它們如何協同工作。本文將詳細介紹Docker的主要組件、架構設計以及…

【言語】刷題3

front:刷題2 題干 超限效應介紹冰桶挑戰要避免超限效應 B明星的作用只是病痛挑戰的一個因素,把握程度才是重點,不是強化弱化明星作用,排除 A雖沒有超限效應,但是唯一的點出“冰桶效應”的選項,“作秀之嫌…

【fastadmin開發實戰】在前端頁面中使用bootstraptable以及表格中實現文件上傳

先看效果: 1、前端頁面中引入了表格 2、表格中實現文件上傳 3、增加截止時間頁面 難點在哪呢? 1、這是前端頁面,并不支持直接使用btn-dialog的類屬性實現彈窗; 2、前端頁面一般綁定了layout模板,如何實現某個頁面不…

豆包:基于多模態交互的智能心理咨詢機器人系統設計與效果評估——情感計算框架下的對話機制創新

豆包:基于多模態交互的智能心理咨詢機器人系統設計與效果評估——情感計算框架下的對話機制創新 摘要 隨著人工智能在心理健康領域的應用深化,本文提出一種融合情感計算與動態對話管理的智能心理咨詢機器人系統架構。通過構建“用戶狀態-情感響應-策略生成”三層模型,結合…

【漫話機器學習系列】257.填補缺失值(Imputing Missing Values)

數據科學必備技能:填補缺失值(Imputing Missing Values) 在數據分析和機器學習項目中,缺失值(Missing Values) 是非常常見的問題。缺失的數據如果處理不當,會嚴重影響模型的訓練效果&#xff0…

基于千眼狼高速攝像機與三色掩模的體三維粒子圖像測速PIV技術

研究背景 航空航天、能源動力領域,測量三維瞬態流場的速度場信息對于理解流體力學行為、優化系統設計非常關鍵。 傳統三維粒子圖像測速技術如Tomo層析PIV,因依賴多相機陣列,存在系統體積、操作復雜,在封閉空間測量存在困難&#…

MongoDB 的主要優勢和劣勢是什么?適用于哪些場景?

MongoDB 的主要優勢 (Advantages) 靈活的文檔模型 (Flexible Document Model): 無需預定義模式 (Schemaless/Flexible Schema): 這是 MongoDB 最核心的優勢之一。它存儲 JSON 格式的文檔,每個文檔可以有不同的字段和結構。這使得在開發過程中修改數據結構非常容易&a…

css iconfont圖標樣式修改,js 點擊后更改樣式

背景: 在vue項目中,通過點擊/鼠標覆蓋,更改選中元素的樣式,可以通過js邏輯,也可以根據css樣式修改。包括以下內容:iconfont圖標的引入以及使用,iconfont圖標樣式修改【導入文件是純白&#xff0…

CosyVoice介紹

CosyVoice介紹 CosyVoice是阿里開源的一個多語言語音生成大模型,可應用于TTS(Text To Speech) 工具的開發。它支持內置預制語音生成、語音克隆、自然語言控制語音生成等功能。CosyVoice的另一個亮點在于它對生成語音情感和韻律的精細控制,這是通過富文本…

分布式任務調度XXL-Job

? XXL-Job 是一款輕量級、分布式的任務調度平臺,其核心設計解決了傳統任務調度(如Quartz)在分布式場景下的?任務分片?、?高可用?、?可視化管控?等痛點。以下從原理、核心架構、應用場景、代碼示例及關聯中間件展開詳解 一、主流任務…