syslog.conf文件


1: syslog.conf的介紹

   對於不同類型的Unix,標准UnixLog系統的設置,實際上除了一些關鍵詞的不同,系統的syslog.conf格式是相同的。syslog采用可配置的、統一的系統登記程序,隨時從系統各處接受log請求,然后根據/etc/syslog.conf中的預先設定把log信息寫入相應文件中、郵寄給特定用戶或者直接以消息的方式發往控制台。值得注意的是,為了防止入侵者修改、刪除messages里的記錄信息,可以采用用打印機記錄或采用方式來挫敗入侵者的企圖。

2: syslog.conf的格式

    可以參考man [5] syslog.conf。這里是對syslog.conf的簡單介紹。
    /etc/syslog.conf文件中的一項配置記錄由“選項”(selector)和“動作”(action)兩個部分組成,兩者間用tab制表符進 行分隔(使用空格間隔是無效的)。而“選項”又由一個或多個形如“類型.級別”格式的保留字段組合而成,各保留字段間用分號分隔。如下行所示:

        類型.級別 [;類型.級別] `TAB` 動作

2.1 類型 

    保留字段中的“類型”代表信息產生的源頭,可以是:

    auth    認證系統,即詢問用戶名和口令
    cron    系統定時系統執行定時任務時發出的信息
    daemon  某些系統的守護程序的syslog,如由in.ftpd產生的log
    kern    內核的syslog信息
    lpr     打印機的syslog信息
    mail    郵件系統的syslog信息
    mark    定時發送消息的時標程序
    news    新聞系統的syslog信息
    user    本地用戶應用程序的syslog信息
    uucp    uucp子系統的syslog信息
    local0..7 種本地類型的syslog信息,這些信息可以又用戶來定義
    *       代表以上各種設備

2.2 級別

    保留字段中的“級別”代表信息的重要性,可以是:

    emerg   緊急,處於Panic狀態。通常應廣播到所有用戶; 
    alert   告警,當前狀態必須立即進行糾正。例如,系統數據庫崩潰; 
    crit    關鍵狀態的警告。例如,硬件故障; 
    err     其它錯誤; 
    warning 警告; 
    notice  注意;非錯誤狀態的報告,但應特別處理; 
    info    通報信息; 
    debug   調試程序時的信息; 
    none    通常調試程序時用,指示帶有none級別的類型產生的信息無需送出。如*.debug;mail.none表示調試時除郵件信息外其它信息都送出。

2.3 動作

    “動作”域指示信息發送的目的地。可以是: 

    /filename   日志文件。由絕對路徑指出的文件名,此文件必須事先建立; 
    @host       遠程主機; @符號后面可以是ip,也可以是域名,默認在/etc/hosts文件下loghost這個別名已經指定給了本機。
    user1,user2 指定用戶。如果指定用戶已登錄,那么他們將收到信息; 
    *           所有用戶。所有已登錄的用戶都將收到信息。

3: 具體實例

    我們來看看/etc/syslog.conf文件中的實例: 

    …… 
    *.err;kern.debug;daemon.notice;mail.crit    [TAB]   /var/adm/messages 
    ……

    這行中的“action”就是我們常關心的那個/var/adm/messages文件,輸出到它的信息源頭“selector”是: 
    *.err - 所有的一般錯誤信息; 
    kern.debug - 核心產生的調試信息; 
    daemon.notice - 守護進程的注意信息; 
    mail.crit - 郵件系統的關鍵警告信息

 

4:syslog.conf內容

日志文件由系統日志和內核日志監控程序syslogd 與klogd 控制, 在/etc/syslog.conf 文件中配置這兩個監控程序默認活動。

日志文件按/etc/syslog.conf 配置文件中的描述進行組織。以下是/etc/syslog.conf 文件的內容:

[root@FlowServer syslog]# cat /etc/syslog.conf 
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console
local4.info                                             @1.1.1.2
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
#*.info;mail.none;authpriv.none;cron.none;local5.none  /var/log/messages
*.info;mail.none;authpriv.none;cron.none;local5.none  /var/log/messages
# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog
user.err                                                /var/log/user_test.log

# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

#mydata
local5.*                                                /var/log/ys.log
syslog.*                                                @172.25.25.36
.25.36
.36
.36
.36

 

5.版本

Syslog機制是類unix系統中經常使用的一種日志記錄方式。它能夠以多種級別組合記錄系統運行過程中各類日志信息。比如內核運行信息日志,程序運行 輸出的日志等。在為嵌入式系統做開發時,將程序運行時的一些重要信息寫入日志中,對於程序的調試以及錯誤診斷幫助是非常大的。重要信息包括程序運行時的重 要變量,函數運行結果,錯誤記錄等等。對於嵌入式系統而言,由於系統資源有限,而且是交叉開發,調試及診斷及其不便。使用syslog機制,可大大簡化這 些工作。
       並不是所有嵌入式系統都可以使用syslog。首先,系統使用類unix操作系統,常用的就是linux。其次,為了支持遠程日志記錄,系統中必須支持網絡通信。所幸,目前大部分嵌入式系統都是基於linux,並且支持網絡。以下論述具體實現。
       在編譯busybox時,選擇syslog應用程序,並將busybox加入到linux的文件系統中去。嵌入式系統啟動后,就可以配置syslog的客 戶端。根據busybox版本,syslog的服務進程syslogd的配置有所不同。早期的syslogd忽略syslog.conf文件內的配置項, 直接使用命令參數進行配置。新版本的syslogd支持使用syslog.conf文件進行配置。可以通過syslogd –h察看幫助信息,以確定當前的syslogd版本。
       當不支持syslog.conf配置時,直接使用命令參數,輸入以下命令啟動syslogd:
       syslogd -n -m 0 -L -R 192.190.1.88
       其中-n選項表示進程在前台運行。
-m選項指定循環間隔時間。
-L選項表示在進行遠程日志記錄的同時,本地也進行記錄。如果不加該選項,則只進行遠程日志記錄。
-R表示進行遠程日志記錄,將syslog日志發送到目標服務器上。這里假定目標服務器為的IP地址為192.190.1.88。如果不指定端口,默認使用UDP端口514。所以要確保服務器上該端口沒用被占用。
啟動后,所有的日志信息都會發往服務器的UDP端口514。
 
當支持syslog.conf配置時,只需修改該配置文件即可。在文件中增加以下語句:
*.*    @192.190.1.88
以 上配置表示將所有syslog的日志發往服務器192.190.1.88,使用默認的UDP端口。由於syslog.conf配置相對比較靈活,可以設置 屏蔽一些不需要的信息,以及設置指定的端口等等。請參考syslog.conf的有關命令,自行研究。然后啟動syslogd即可進行遠程記錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM