📊 Linux Log 監控自動化:整合 GoAccess、Systemd 與 Fail2Ban 報表分析
打造「低維護、可視化、可追溯」的日誌監控:以 GoAccess 產生即時報表、以 systemd timer 定期生成線上報告,並聯動 Fail2Ban 自動封鎖惡意來源。
一、安裝與資料源
# Debian/Ubuntu
sudo apt update && sudo apt install -y goaccess
# Nginx 主要日誌
sudo goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED
二、以 systemd 自動化產生報表
# /etc/systemd/system/goaccess-report.service
[Service]
Type=oneshot
ExecStart=/usr/bin/goaccess /var/log/nginx/access.log \
-o /var/www/html/report.html --log-format=COMBINED
# /etc/systemd/system/goaccess-report.timer
[Timer]
OnCalendar=*:0/10
Persistent=true
RandomizedDelaySec=60
[Install]
WantedBy=timers.target
sudo systemctl enable --now goaccess-report.timer
systemctl list-timers --all
三、Fail2Ban 與安全聯防
# 常見 jail(nginx-http-auth、sshd 等)
sudo apt install -y fail2ban
sudo nano /etc/fail2ban/jail.local
# 調整 bantime/findtime/maxretry,並啟用啟動服務
sudo systemctl enable --now fail2ban
四、指標解讀與告警
- 尖峰流量 vs. HTTP 狀態碼:
5xx上升代表後端健康需檢查。 - 熱門路徑、來源地、User-Agent:對應行銷與 Bot 管理。
- 封鎖名單審視:避免誤傷;搭配
ignoreip白名單。
📘 結語
將報表自動化+封鎖自動化,配合一次性維運基線設定,讓日誌由「事後查」轉為「即時看、主動作」。
🔗 延伸閱讀
— WWFandy・主題筆記
沒有留言: