Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Logwatch 部署與配置全攻略:Linux 日誌自動分析、郵件報告與自訂服務

編輯:關於 Linux

Logwatch 是一套基於 Perl 的日誌分析報表工具,能將分散在 /var/log 的系統與服務日誌彙整為人類可讀的摘要,支援郵件寄送、檔案儲存、螢幕輸出,並可透過 cron 定期執行。本文涵蓋安裝、核心配置、報告範圍控制、服務擴充與常見坑點。

安裝 Logwatch

發行版指令
Debian/Ubuntusudo apt update && sudo apt install logwatch
CentOS/RHEL/Fedorasudo dnf install logwatch / sudo yum install logwatch
openSUSEsudo zypper install logwatch
Arch Linuxsudo pacman -S logwatch

核心配置檔:/etc/logwatch/conf/logwatch.conf

安裝後預設為空,會繼承 /usr/share/logwatch/default.conf/logwatch.conf 的系統預設值。常用參數:

參數說明範例值
Detail報告詳細度High / Med / Low / 10
MailTo收件者信箱(多筆用空白分隔)admin@example.com backup@example.com
Range報告時間範圍Yesterday / Today / All / "-5 days"
Service指定分析服務(多行可疊加)sshd / http / All
Format輸出格式text / html
Output輸出目標mail / file / stdout
Filename輸出檔案路徑(Output=file 時)/var/log/logwatch/report.log
Encode編碼utf-8

時間範圍 Range 進階用法

Range = "between -7 days and -3 days"
Range = "since September 15, 2024"
Range = "first Friday in October"
Range = "2024/10/15 12:50:15 for that second"

使用自由格式需安裝 Perl Date::Manip 模組:

sudo cpanm Date::Manip

服務擴充:新增自訂日誌分析

  1. 在 /usr/share/logwatch/scripts/services/ 建立 myservice(Perl 腳本)。
  2. 腳本需實作 ProcessLogs() 子程式,解析日誌並輸出報告片段。
  3. 參考既有服務腳本(如 sshd、http)撰寫。
  4. 在 logwatch.conf 加入 Service = myservice。

定時執行:配置 cron

# /etc/cron.daily/00logwatch (Debian/Ubuntu 預設已建立)
# 手動建立每日 06:00 執行並寄送郵件
0 6 * * * root /usr/sbin/logwatch --output mail --mailto admin@example.com --detail High --range Yesterday

郵件發送前置條件

本機需安裝並設定 MTA(Postfix / Sendmail / Exim),且能正常投遞外部郵件。測試:

echo "test" | mail -s "logwatch test" admin@example.com

已知限制

  • 報告**不含精確時間戳**,僅顯示區間統計;需精確時間請回頭查原始日誌。
  • 大量日誌(>1GB)分析耗時較久,建議配合 logrotate 保持單檔適中大小。
  • 非標準日誌格式需自行撰寫服務腳本,學習曲線稍陡。

常見問題排除

現象檢查方向
郵件未收到MTA 設定、垃圾信箱、MailTo 拼字、Output = mail
報告為空Range 設定、日誌檔案權限、服務腳本路徑
中文亂碼確認 Encode = utf-8、日誌檔案實際編碼

Logwatch 以「零代理、純 Perl、高擴充性」著稱,適合中小型環境的日誌歸檔與異常偵測輔助;大規模環境建議搭配 ELK/EFK 或 Loki/Grafana 堆疊。

Copyright © Windows教程網 All Rights Reserved