2008年8月4日 星期一

/var/log/messages stopped to log 系統記錄檔停止寫入 log 資料

跑了一段時間的 Server 通常都需要升級許多的套件, 升級結果偶而會發生下列的情況
/var/log 下面與系統有關的 記錄檔都不再寫入任何資料
包括 /var/log/messages /var/log/security etc.
會發生這個情況的原因是 SELINUX 的檔案目錄權限控管阻擋了許多檔案的寫入動作
造成幾個結果
1. syslogd klogd 仍舊可執行
2. /var/log/messages 長度 0, 無寫入任何資料
3. 手動執行 klogd -x -c 4; syslogd -m 0 可正常啟動
4. 使用服務啟動的script 無法正常寫入任何 log 資料
5. dmesg | grep syslog 會顯示類似下面的訊息
audit(1151150355.645:2): avc: denied { read } for pid=2204 comm="syslogd" name="services" dev=dm-0 ino=14567535 scontext=system_u:system_r:syslogd_t tcontext=rootbject_r:tmp_t tclass=file

第5 項就是問題的解答了 ^_^

遇到這樣的問題, 很容易困擾一些新手管理人員, 但修正的方法很簡單
執行 SELINUX的檔案目錄權限修正程式 fixfiles

fixfiles relabel

等它修正完成, 重啟動 syslogd 就一切正常囉!

google 您真是神啊!

沒有留言: