1. 確認Syslog服務狀態
首先檢查rsyslog服務是否正常運行,使用命令:sudo systemctl status rsyslog。若服務未啟動(顯示“inactive”),需通過sudo systemctl start rsyslog啟動服務,并通過sudo systemctl enable rsyslog設置開機自啟,確保服務持續運行。
2. 檢查Syslog配置文件
CentOS系統中,rsyslog的主配置文件為/etc/rsyslog.conf,自定義規則通常存放在/etc/rsyslog.d/目錄下(如50-default.conf)。需驗證以下內容:
*.err表示記錄錯誤及以上級別日志,*.info表示記錄所有信息);/var/log/messages用于系統通用日志,/var/log/secure用于安全相關日志);*.* @192.168.1.100:514表示將日志發送到遠程服務器的514端口)。3. 查看與過濾日志內容
通過命令行工具快速定位故障信息:
tail -f /var/log/messages(系統通用日志)或tail -f /var/log/secure(安全日志),實時跟蹤最新日志動態;grep命令過濾特定錯誤,如grep "error" /var/log/messages(查找錯誤信息)、grep "failed" /var/log/secure(查找登錄失敗記錄);journalctl -u rsyslog查看rsyslog自身的日志,或journalctl -b查看系統啟動日志,幫助定位服務啟動失敗等問題。4. 驗證日志文件權限與磁盤空間
ls -l /var/log/messages查看文件權限(通常應為-rw-r--r--),所有者應為root。若權限異常,可通過chown root:root /var/log/messages修改所有者,chmod 644 /var/log/messages修改權限;df -h命令檢查磁盤空間使用情況。若/var分區空間不足(如使用率超過80%),需清理舊日志(如rm -f /var/log/*.gz刪除壓縮的舊日志)或擴展分區,避免因空間不足導致日志無法寫入。5. 檢查SELinux與防火墻設置
getenforce顯示“Enforcing”),可能會阻止rsyslog寫入日志文件??赏ㄟ^setenforce 0臨時設置為“Permissive”模式,觀察問題是否解決。若需永久修改,編輯/etc/selinux/config文件,將SELINUX=enforcing改為SELINUX=permissive;firewall-cmd --add-port=514/udp --permanent添加規則,然后firewall-cmd --reload重新加載防火墻配置。6. 關聯分析與定位根本原因
結合多個日志源的信息,通過唯一標識符(如進程ID、IP地址、時間戳)追蹤問題鏈。例如:
/var/log/messages中出現“Out of memory”錯誤,可關聯/var/log/secure中的“oom-killer”記錄,確認是否因內存不足導致進程被終止;/var/log/secure中出現“Connection refused”錯誤,可檢查/var/log/messages中的sshd服務日志,確認是否因sshd服務未啟動或端口被占用導致。7. 利用輔助工具增強排查效率
logwatch --output mail),或通過Zabbix設置日志關鍵詞報警(如檢測到“error”時發送郵件),及時發現潛在問題。