🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

開發了一個nginx日誌分析面板

前言

最近在優化網站訪問鏈路的過程中,部署了一套WAF防火牆,它大部分功能都做得挺好,美中不足的地方就是針對於網站訪客的相關功能需要付費(3600元/年)才能用。

付費是不可能付費的,找了一圈nginx日誌分析的開源專案,大部分都做得挺簡陋的,要麼就是做得很重,需要部署其他服務。

既然找不到合適的,那就自己動手寫一個吧!

實現效果

做了4個模組對日誌數據進行分析。

  • 訪問概況
  • 數據日報
  • 實時訪問
  • 訪問明細

image-20260108124900609

訪問概況

概況模組中,做了8個維度的數據分析。

核心指標

在這個維度中,針對http狀態碼、瀏覽量、訪客數、會話數做了更細緻的劃分。

image-20260108125517344

每一個劃分中,在詳情面板裡,都可以看到這個訪客在什麼時間做了什麼事情。

image-20260108125954027

image-20260108130323366

image-20260108130405011

image-20260108130452437

趨勢分析 & 新老訪客

這一部分可以看到每天的訪問趨勢以及當天與前一天的新老訪客佔比。

image-20260108130725966

來路、受訪頁、入口頁

這部分可以看到訪客的來源,以及每個路徑的訪問次數。

image-20260108131048943

地域 & 終端設備

這部分可以看到每個省份的訪問情況以及訪問設備的分佈情況。

image-20260108131213706

數據日報

在這個模組中,可以看到每天的瀏覽量、訪客數、平均訪問時長等信息。

image-20260108134815067

image-20260108140538356

實時訪問

在這個模組裡,可以查看最近5/15/30分鐘內的訪問情況

image-20260108141207205

訪問明細

這個模組就以表格的形式展示每一條日誌。

image-20260108141436301

如何使用

為了方便使用,我已經將這個專案打包成映像發布到dockerhub上了,映像名為magiccoders/nginxpulse,可以通過docker的形式使用,也可以通過docker compose的形式使用。

需要傳入的參數:

  • WEBSITES 它的值是一個數組,一個對象就是一個網站,需要傳入網站名、日誌路徑、網址(或者內網ip,主要用於站內/站外的區分)
  • ports 端口映射,容器內暴露出來的端口是8088
  • volumes 文件掛載,這裡需要掛載:日誌文件、容器內產生的數據文件、時區

此處我以docker compose的形式舉例:

version: "3"
services:
  nginxpulse:
    image: magiccoders/nginxpulse:latest
    container_name: local_nginxpulse
    ports:
      - "9200:8088"
    environment:
      WEBSITES: '[{"name":"神奇的程序員","logPath":"/var/log/nginx/access.log","domains":["kaisir.cn","www.kaisir.cn"]}]' #domains用於“來源(referer)統計”的站內/站外分類
      PV_EXCLUDE_IPS: '["127.0.0.1", "::1", "10.10.0.1", "192.168.30.21"]' #pv統計時需要排除的ip
    volumes:
      - ./nginx_data/logs/all/access.log:/var/log/nginx/access.log
      - ./nginxpulse_data:/app/nginxpulse_data
      - /etc/localtime:/etc/localtime
    restart: unless-stopped

寫在最後

至此,文章就分享完畢了。

我是神奇的程序員,一位前端開發工程師。

如果你對我感興趣,請移步我的個人網站,進一步了解。


原文出處:https://juejin.cn/post/7592789801708093481


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝7   💬6   ❤️2
174
🥈
我愛JS
💬1  
6
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付