syslog

一、查看配置文件/var/log下面的文件解釋

  messages 系統日誌
  boot.log 系統啓動日誌
  dmesg 核心日誌
  maillog 郵件日誌
  cron   週期性的計劃任務日誌
  secure 安全相關的日誌(網絡連接登錄系統信息)
  btmp 二進制文件,記錄遠程登錄失敗日誌
  wtmp 二進制文件 記錄所有登入和登出的信息  


二、日誌文件由rsyslog服務管理

日誌格式分爲:文本格式、二進制日誌、數據庫日誌

 1、查看軟件是否安裝

# rpm -ql rsyslog
 rsyslog-5.8.10-8.el6.x86_64

2、查看軟件帶來的文件列表
  # rpm -ql rsyslog
  /etc/logrotate.d/syslog  日誌輪轉
  /etc/rc.d/init.d/rsyslog 服務啓動腳本
  /etc/rsyslog.conf 主配置文件
  /etc/rsyslog.d 該服務的主目錄
  /sbin/rsyslogd 二進制的命令

3、確認服務是否運行
 #service rsyslog status
 rsyslogd (pid  1785) is running...


4、瞭解主配置文件

# cat /etc/rsyslog.conf |grep -v ^#|grep -v ^$
  $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
  $ModLoad imklog   # provides kernel logging support (previously done by rklogd)
  $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
  $IncludeConfig /etc/rsyslog.d/*.conf
  *.info;mail.none;authpriv.none;cron.none                /var/log/messages
  authpriv.*                                              /var/log/secure   
  mail.*                                                  -/var/log/maillog   郵件的日誌
  cron.*                                                  /var/log/cron 
  *.emerg                                                 *
  uucp,news.crit                                          /var/log/spooler 
  local7.*                                                /var/log/boot.log      啓動日誌

*  代表任何服務或者任何日誌級別

.   用來分割服務和日誌級別  cron.err

, 用來分割不同的服務  cron,mail.err

; 用來分割服務,日誌組合  cron.err ; mail.info

!   排除操作,前面的有相同的服務纔有意義

=  代表等於某個日誌級別

-  指定目標文件時,代表同步寫入


日誌消息的級別


        #define KERN_EMERG    "<0>"  /* system is unusable               */
       #define KERN_ALERT    "<1>"  /* action must be taken immediately */
       #define KERN_CRIT     "<2>"  /* critical conditions              */
       #define KERN_ERR      "<3>"  /* error conditions                 */
       #define KERN_WARNING  "<4>"  /* warning conditions               */
       #define KERN_NOTICE   "<5>"  /* normal but significant condition */
       #define KERN_INFO     "<6>"  /* informational                    */
       #define KERN_DEBUG    "<7>"  /* debug-level messages             */


 0  緊急 會導致主機系統的不可用
  1  警告 非常嚴重 必須馬上採取措施的問題
  2  嚴重 比較嚴重的情況
  3  錯誤 運行出現錯誤
  4  警告 可能會影響系統功能的事件
  5  不會影響系統但需要關注
  6  一般信息
  7  調試信息 (開發人員)

 本地日誌管理:
 demo1: 開啓所有大於等於debug 級別的日誌記錄到/var/log/debug
 1、修改配置文件
  /etc/rsyslog.conf
  *.debug        /var/log/debug

 2、重新加載或者重新啓動服務
service rsyslog restart

 3、測試驗證
# cat /var/log/debug


demo2:
 mail服務的等於info級別的日誌記錄到/tmp/mail-log
 1、配置文件 /etc/rsyslog.conf
mail.=info                              /tmp/mail-log
 
  2、重新啓動rsyslog服務
 service rsyslog restart

 3、測試驗證:
 # tail -f /tmp/mail-log


demo3:將ssh日誌文件單獨記錄到/var/log/ssh
 1、通過修改ssh服務的配置文件來指定記錄ssh服務的載體(設備)local0
  # vim /etc/ssh/sshd_config
     SyslogFacility local0

 2、重新啓動ssh服務 service sshd restart

 3、將來自於local0設備的日誌存放到/var/log/ssh——>修改/etc/rsyslog.conf
  vim /etc/rsyslog.conf
   local0.*                                                /var/log/ssh

 4、重啓服務
  service rsyslog restart
 
  5、測試驗證 有顯示代表成功
  # tail -f /var/log/ssh


五、遠程日誌管理
  首先查看server端和client端是否安裝
  1、# rpm -q rsrlog
    # rsyslog-5.8.10-8.el6.x86_64
 
  2、啓動服務
    service rsyslog restart
 
   配置service機端
   1、 vim /etc/rsrlog.conf    
    
   # Provides UDP syslog reception  UDP的速度較快 ,視頻等選擇
   # Provides TCP syslog reception  TCP的速率較慢,數據要求較高的
   $ModLoad imudp    
   $UDPServerRun 514
   以兩項是看你選擇的TCP或UDP打開
 
   2、重啓服務
    service rsyslog restart

   4、查看端口是否在監聽
    #losf -i :514  514TCP的端口號
   
    #netstat -nltp | grep 514
    tcp        0      0 0.0.0.0:514                 0.0.0.0:*                   LISTEN      3280/rsyslogd       
    tcp        0      0 :::514                      :::*                        LISTEN      3280/rsyslogd       
 
  -n 以數字顯示
  -p 顯示進程名稱
  -u udp協議
  -t tcp協議
  -a 所有的鏈接
  -l 監聽狀態

   client端
   1、指定記錄ssh服務日誌的載體
   /etc/ssh/sshd_conf
   locla0.*        @@10.1.1.254:514   @@代表tcp協議  @代表UDP協議 ip地址選擇serner的IPD地址

    2、重啓服務
     service rsyslog restart
 
    server端
      1、10.1.1.254將來自local0設備上的日誌保存到/var/log/ssh-server
        /etc/rsyslog.conf
         local0.*   /var/log/ssh-server  ssh-server這個文件在配置文件可以自己可以定義,啓動服務在/var/log/中就會生成
 
     2、重啓服務
         service rsyslog restart

          
    測試:能與客服的相通的主機,ssh鏈接client端  
    server端查看日誌 tai -f /var/log/ssh-server


六、日誌論轉 logrotate

 1、避免日誌過大造成/var/log/ 下文件系統爆滿
   2、方面管理查看
    
   # rpm -q logrotate 查看軟件是否安裝
     logrotate-3.7.8-17.el6.x86_64

      # rpm -ql logrotate
      /etc/cron.daily/logrotate 每天輪轉的文件
      /etc/logrotate.conf 主配置文件
      /etc/logrotate.d 主目錄(子配置文件)
      /usr/sbin/logrotate 二進制命令

 logrotate配置文件
  /etc/logrotate.conf
   # see "man logrotate" for details
   # rotate log files weekly
     weekly
     以7天爲一個週期(單位),每週輪轉
     # keep 4 weeks worth of backlogs
     rotate 4
     每4周備份一次(保留4周的日誌文件)
     # create new (empty) log files after rotating old ones
     create
     當老的文件輪轉後,創建一個空的新的日誌文件(文件的權限必須要和老的文件一致)
     # use date as a suffix of the rotated file
     dateext
     老的日誌文件以日期作爲後綴
     # uncomment this if you want your log files compressed
     #compress
     指定是否需要壓縮輪轉後的文件
     # RPM packages drop log rotation information into this directory
     include /etc/logrotate.d  加載外部目錄

     # no packages own wtmp and btmp -- we'll rotate them here
     /var/log/wtmp {
     monthly  每月爲一個週期輪轉
     create 0664 root utmp 創建一個新的空文件,權限是0664 屬主root 屬組utmp
    minsize 1M  文件大於1M,並且到了輪轉週期纔會輪轉
       #size 1M  只要文件大於1M就輪轉,不管有沒有到輪轉週期
    rotate 1  保留1個月的日誌
}


/var/log/btmp {
    missingok  當日志文件不存在時不會報錯 logrotate -f /etc/logrotate.conf
   error: stat of  在執行以上條命令時不會報錯但是相關的功能是完成列的
    monthly
    create 0600 root utmp
    rotate 1
}


 子配置文件 /etc/logrotate.d/syslog

  sharedscripts
表示日誌文件輪轉時需要執行prerotate和endscript或者postrotate和endscript之間的shell腳本
    postrotate  表示在輪轉之後執行
    /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript

  sharedscripts
 postrotate  表示在輪轉之後執行
    shell 腳本
 endscript

sharedscripts
 prerotate  表示在輪轉之前執行
    shell 腳本
 endscript


demo1:刪掉所有的日誌文件,強制輪轉
# find /var/log -type f -exec rm -f {} \;
# logrotate -f /etc/logrotate.conf
error: stat of /var/log/wtmp failed: No such file or director 這個報錯表示成功的

 demo2:
配置ssh服務輪轉:
方法1:vim /etc/logrotate.conf
/var/log/ssh {
missingok
size 1M
create
monthly
rotate 1

}

重啓下服務:service rsyslog restart


方法二:
vim /etc/logrotate.d/ssh

/var/log/ssh {
missingok
size 1M
create
monthly
rotate 1

}

重啓下服務:service rsyslog restart



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