1. 基礎命令行監控
tail -f
實時查看:通過tail -f /var/log/syslog
命令實時跟蹤syslog文件的最新內容,適用于快速查看實時日志流(如系統啟動、服務運行或錯誤事件);若需過濾特定關鍵詞(如“error”),可組合grep
命令:sudo tail -f /var/log/syslog | grep "error"
,僅顯示包含該關鍵詞的日志行。journalctl
系統日志查詢:作為systemd的集成工具,journalctl
提供更強大的日志管理功能。常用命令包括:sudo journalctl -f
(實時查看所有系統日志)、sudo journalctl -p err
(僅顯示錯誤級別日志)、sudo journalctl -b
(查看本次系統啟動的日志)。2. 日志分析與報告工具
logwatch
定制報告:通過logwatch
工具可自動生成系統日志分析報告,支持郵件發送或屏幕輸出。安裝命令:sudo apt-get install logwatch
;查看實時報告:sudo logwatch --output screen --detail high
;配置每日郵件報告:sudo logwatch --output mail --mailto your-email@example.com
(需替換為實際郵箱)。3. 高級監控與告警配置
/etc/rsyslog.d/custom.conf
),添加如下規則(當myapp
程序產生錯誤日志時發送郵件):if $programname == 'myapp' and $syslogseverity-text == 'Error' then {
action(type="ommail"
server="smtp.example.com"
port="587"
protocol="tls"
from="syslog@example.com"
to="your-email@example.com"
subject="Error Alert from myapp")
stop
}
重啟rsyslog服務使配置生效:sudo systemctl restart rsyslog
。4. 日志輪轉管理
為避免日志文件過大占用磁盤空間,Ubuntu默認使用logrotate
工具進行日志輪轉。配置文件位于/etc/logrotate.conf
,針對syslog的默認配置(/etc/logrotate.d/syslog
)如下:
/var/log/syslog {
weekly # 每周輪轉一次
missingok # 若日志文件不存在也不報錯
rotate 52 # 保留52份輪轉日志
compress # 壓縮舊日志(如gzip)
delaycompress # 延遲壓縮(避免壓縮最新的舊日志)
notifempty # 若日志為空則不輪轉
create 0640 root adm # 創建新日志文件并設置權限
}
可通過修改此文件調整輪轉周期、保留數量等參數。