Linux - syslog詳解
我們可以借助syslog函數將消息寫入到 /var/log/messages檔。syslogd(系統日誌守護進程)會監控程序提交的消息並對其進行處理。klogd(內核日誌守護進程)負責監控內核提交的消息,並將內核消息記錄到 /var/log/messages。二者協助記錄日誌消息。每次啟動linux時,這兩個守護進程都會由/etc/rc.d/init.d中的初始化腳本啟動。
#vi /etc/syslog.conf daemon.info /var/log/messages
syslog.conf檔中每一行包括以下內容:
選擇器
用於表明應該記錄哪些消息的一組單詞。包括設備(用於指定選擇哪種類型程式的代碼,即生成該消息的程式類別)和優先順序(又能夠於指定選擇記錄的消息類型,更確切的說是表明該消息所代表事件的嚴重程度)。
動作
用於指定sysogd接收到與選擇標準相匹配的消息時應該執行的動作,通常可以使消息要寫入的檔案名,或應該顯示該消息的機器的用戶名。
設備
設備描述
|
設備名
|
來自login等使用者身份驗證類程式的消息
|
auth
|
特殊目的(私有)使用者身份驗證消息
|
auth-priv
|
來自cron程式的消息(用於控制自動化得,調度後的任務)
|
cron
|
來自未在此處列出的所有標準守護進程或伺服器的消息
|
deamon
|
內核消息(由klogd捕捉)
|
kern
|
印表伺服器消息
|
lpr
|
郵件伺服器消息(來自mail transfer agent)
|
mail
|
新聞伺服器消息
|
news
|
關於系統登錄進程本身的消息
|
syslog
|
來自終端使用者所啟動程式的消息
|
user
|
來自uucp程式的消息
|
uucp
|
八個特定用途的類別資訊,linux銷售商和程式設計人員可能需要使用這些消息來定義通常類別資訊之外的特定需求
|
local0到local7
|
優先順序
優先順序描述
|
優先順序名
|
無優先順序
|
none
|
調試信息
|
debug
|
關於程式當前狀態的報告消息
|
info
|
程式運行中產生了值得注意的事件
|
notice
|
程式中存在潛在問題的警告資訊
|
waring
|
程式存在錯誤的通告
|
err
|
錯誤消息,可能會導致程式關閉的事件
|
crit
|
嚴重錯誤消息,會導致程式關閉並可能影響其他程式
|
alert
|
發生嚴重事件,並有導致系統崩潰的潛在危險
|
emerg
|
簡單動作大概如下:
將消息寫入某終端,該終端可以為從/dev/tty1到/dev/tty6的標準終端名,也可以為控制台設備,比如/dev/console。
將消息寫入到指定使用者清單中當前已登錄使用者的電腦螢幕。
將消息寫入遠端系統上的日誌檔,這是通過在動作中使用符號@實現的。
下面給出一些例子:
#vi /etc/syslog.conf authpriv.* /var/log/secure
將私有使用者驗證的消息對於任何優先順序寫入/var/log/messages.
*.info ;main.none ;authpriv.none /var/log/messages
匹配來自任何設備並且優先順序為info(或更高)的消息,但來自mail的所有消息都被排除。
最後,在對syslog.conf修改完成後,記得通知syslogd和klogd重新讀取該設定檔。
#service syslog restart