2011年1月21日 星期五

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銷售商和程式設計人員可能需要使用這些消息來定義通常類別資訊之外的特定需求
  local0local7


優先順序

         優先順序描述
      優先順序名
無優先順序
  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修改完成後,記得通知syslogdklogd重新讀取該設定檔。

#service syslog restart

沒有留言:

張貼留言