linux系統之日誌文件系統詳解

①、linux上日誌系統類型:syslog和syslog-ng(開源版和商業版)
     1、syslog服務:
       syslogd:系統日誌,非內核產生的信息
    配置文件:/etc/syslog.conf、
    配置以後利用service syslog reload(不用重啓服務讀取配置文件)
    日誌服務器配置:etc/sysconfig/syslog內SYSLOGD_OPTIONS="-m 0"改爲SYSLOGD_OPTIONS="-r -m 0"即可作爲日誌服務器
   
    klogd:內核日誌,專門負責內核產生的信息
    kernel啓動的時候是物理終端(/dev/console),產生的日誌信息在/var/log/dmesg
    dmesg命令:可以直接查看/var/log/dmesg;也可以使用cat /var/log/dmesg查看。
         sbin/init進程信息屬於系統日誌,放在以下位置:
    /var/log/messages:系統標準錯誤日誌信息,非內核產生的引導信息;各子系統產生的信息。
     /var/log/maillog:郵件系統產生的日誌信息
     /var/log/secure:用戶登陸信息日誌
     2、日誌需要滾動:
      message一段時間以後重新命名爲message1..,然後新建一個message來存放日誌。
   logrotate:通過此命令對日誌文件進行切片
   /etc/cron.daily/logrotate
  
 配置文件:/etc/syslog.conf
    
 配置文件定義格式爲: facility.priority  action
 facility,可以理解爲日誌的來源或設備目前常用的facility有以下幾種: 

  1. auth         # 認證相關的   
  2.  authpriv     # 權限,授權相關的   
  3.  cron         # 任務計劃相關的   
  4.  daemon       # 守護進程相關的   
  5.  kern         # 內核相關的   
  6.  lpr          # 打印相關的   
  7.  mail         # 郵件相關的   
  8.  mark         # 標記相關的   
  9.  news         # 新聞相關的   
  10.  security     # 安全相關的,與auth 類似    
  11.  syslog       # syslog自己的   
  12.  user         # 用戶相關的   
  13.  uucp         # unix to unix cp 相關的   
  14.  local0 到 local7  # 用戶自定義使用   
  15.  *            # *表示所有的facility  

 
 priority(log level)日誌的級別,一般有以下幾種級別(從低到高) 
    

  1. debug           # 程序或系統的調試信息   
  2.  info            # 一般信息  
  3.  notice          # 不影響正常功能,需要注意的消息   
  4.  warning/warn    # 可能影響系統功能,需要提醒用戶的重要事件   
  5.  err/error       # 錯誤信息   
  6.  crit            # 比較嚴重的   
  7.  alert           # 必須馬上處理的   
  8.  emerg/panic     # 會導致系統不可用的   
  9.  *               # 表示所有的日誌級別   
  10.  none            # 跟* 相反,表示啥也沒有   

     
 action(動作)日誌記錄的位置
    系統上的絕對路徑    # 普通文件 如: /var/log/xxx
    |                   # 管道  通過管道送給其他的命令處理
    終端              # 終端   如:/dev/console
    @HOST               # 遠程主機 如: @10.0.0.1     
    用戶              # 系統用戶 如: root
    *                   # 登錄到系統上的所有用戶,一般emerg級別的日誌是這樣定義的

 定義格式例子:
 

  1. mail.info   /var/log/mail.log # 表示將mail相關的,級別爲info及info以上級別的信息記錄到/var/log/mail.log文件中   
  2. auth.=info  @10.0.0.1         # 表示將auth相關的,基本爲info的信息記錄到10.0.0.1主機上去   
  3.                               # 前提是10.0.0.1要能接收其他主機發來的日誌信息   
  4. user.!=error                  # 表示記錄user相關的,不包括error級別的信息   
  5. user.!error                   # 與user.error相反   
  6. *.info                        # 表示記錄所有的日誌信息的info級別   
  7. mail.*                        # 表示記錄mail相關的所有級別的信息   
  8. *.*                           # 你懂的.   
  9. cron.info;mail.info           # 多個日誌來源可以用";" 隔開   
  10. cron,mail.info                # 與cron.info;mail.info 是一個意思   
  11. mail.*;mail.!=info            # 表示記錄mail相關的所有級別的信息,但是不包括info級別的   

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章