rsyslog配置

# 系統日誌服務

 如果某些程序沒有自己提供日誌功能,系統日誌可爲其提供日誌功能,但有些程序可自行提供日誌工能,如httpd
         syslog:
                    syslogd:system
                    klogd:kernel
         rsyslog:syslog的升級版,centos6上使用
                    多線程
                    可爲遠程主機記錄日誌
                    支持加密遠程傳輸
                    支持mysql,pgsql,oracle實現日誌存儲
                    強大的過濾器,可實現過濾日誌中的任何部分
                    自定義輸出格式

rsyslog程序環境

 主程序:rsyslogd
 配置文件:/etc/rsyslog.conf
 服務腳本:/etc/rc.d/init.d/rsyslog

日誌收集

 facility:
 將多個應用程序的日誌統一成一個數據流放置在rsyslog中,多個應用程序一般與系統某個功能相關
 系統中有很多不同的facility,如與安全相關的facility是authpriv,將所有與安全相關的程序的日誌放入同一日誌

/etc/rsyslog.conf配置文件

默認情況下主配置文件/etc/rsyslog.conf由3部分組成:

1) #### MODULES ####  --->啓動/sbin/rsyslogd要加載的模塊
    格式:$ModLoad module-name #註釋
                 $ModLoad 是關鍵字(/sbin/rsyslogd程序中定義的變量名)
                 module-name:出現在/lib64/rsyslog/ 中的模塊名稱,記住不帶.so
2)  #### GLOBAL DIRECTIVES #### ----->全局規則設定
     格式:
           #註釋
           規則內容
      例如:
         # Include all config files in /etc/rsyslog.d/
         $IncludeConfig /etc/rsyslog.d/*.conf
         含義爲啓動時要讀取/etc/rsyslog.d/中所有以.conf爲結尾的文件
3) #### RULES #### ----->明細程序日誌記錄設定
   格式:
       #註釋
       facility.priority         target

        facility:可理解爲“產生日誌對象”,例如:authpriv 是登陸認證的,mail 是郵件系統的。
                    auth
                    authpriv
                    cron
                    daemon
                    kern
                    lpr
                    mail
                    mark
                    news
                    security
                    user    
                    uucp
                    syslog
                    local0-local7(用戶可自定義使用的facility)

        priority:指定的是日誌級別,centos使用的日誌級別如下,由低到高爲:
                    debug,
                    info
                    notice
                    warning
                    error
                    critial
                    alert
                    emergency(panic)
      指定級別:
           *:所有級別
           none:沒有級別
           priority:此級別及更高級別的日誌信息
           =priority:僅此級別的信息

        級別越低產生的日誌越明細越多,級別越高產生的日誌越危險越少。
        指定級別的方式:
               *: 所有級別
               none: 沒有級別,就是不記錄的意思
               priority: 比此級別低的(包含該級別的)所有日誌信息都會記錄
               =priority: 僅記錄指定級別

    target:將日誌記錄於指定的目標地點,可以有:
         系統文件中,例如:/var/log/secure
         用戶:將日誌信息通知給用戶。
              例如:系統默認emerg等級的日誌就顯示給系統上登陸用戶:
               # Everybody gets emergency messages
               *.emerg                                                 *
         日誌服務器:使用 @SERVER_ADDRESS 定義日誌服務器地址,@@表示使用tcp514端口,@表示使用udp514端口
         管道:通過管道傳遞給某些命令。 | COMMAND
         在target前使用“-”表示異步寫入

動態創建日誌文件以及日誌翻滾

    1、可以在配置文件的RULES中配置使用動態創建日誌文件

            例如根據來源IP和日誌創建不同的文件和日誌文件名

            $template DynamicFile,"/var/log/mylog/%FROMHOSTIP%/%$YEAR%/%$MONTH%/%$YEAR%-%$MONTH%-%$DAY%.log"
         *.* ?DynamicFile
             #聲明template DynamicFile並引用template。

2、使用日誌翻滾,按照日誌的大小或者時間來創建,壓縮,刪除,發送日誌文件
        /var/log/log-file {
            monthly
            rotate 5
            compress
            delaycompress
            missingok
            notifempty
            create 644 root root
            postrotate
            /usr/bin/killall -HUP rsyslogd
            endscript
}

記錄系統中各個用戶的操作記錄
vi /etc/bashrc 加入如下內容:

export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'

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