1: syslog.conf的介紹
對于不同類型的Unix,標(biāo)準(zhǔn)UnixLog系統(tǒng)的設(shè)置,實際上除了一些關(guān)鍵詞的不同,系統(tǒng)的syslog.conf格式是相同的。syslog采用可配置的、統(tǒng)一的系統(tǒng)登記程序,隨時從系統(tǒng)各處接受log請求,然后根據(jù)/etc/syslog.conf中的預(yù)先設(shè)定把log信息寫入相應(yīng)文件中、郵寄給特 定用戶或者直接以消息的方式發(fā)往控制臺。值得注意的是,為了防止入侵者修改、刪除messages里的記錄信息,可以采用用打印機(jī)記錄或采用方式來挫敗入 侵者的企圖。
2: syslog.conf的格式
可以參考man [5] syslog.conf。這里是對syslog.conf的簡單介紹。
/etc/syslog.conf文件中的一項配置記錄由“選項”(selector)和“動作”(action)兩個部分組成,兩者間用tab制表符進(jìn) 行分隔(使用空格間隔是無效的)。而“選項”又由一個或多個形如“類型.級別”格式的保留字段組合而成,各保留字段間用分號分隔。如下行所示:
類型.級別 [;類型.級別] `TAB` 動作
2.1 類型
保留字段中的“類型”代表信息產(chǎn)生的源頭,可以是:
auth 認(rèn)證系統(tǒng),即詢問用戶名和口令
cron 系統(tǒng)定時系統(tǒng)執(zhí)行定時任務(wù)時發(fā)出的信息
daemon 某些系統(tǒng)的守護(hù)程序的syslog,如由in.ftpd產(chǎn)生的log
kern 內(nèi)核的syslog信息
lpr 打印機(jī)的syslog信息
mail 郵件系統(tǒng)的syslog信息
mark 定時發(fā)送消息的時標(biāo)程序
news 新聞系統(tǒng)的syslog信息
user 本地用戶應(yīng)用程序的syslog信息
uucp uucp子系統(tǒng)的syslog信息
local0..7 種本地類型的syslog信息,這些信息可以又用戶來定義
* 代表以上各種設(shè)備
2.2 級別
保留字段中的“級別”代表信息的重要性,可以是:
emerg 緊急,處于Panic狀態(tài)。通常應(yīng)廣播到所有用戶;
alert 告警,當(dāng)前狀態(tài)必須立即進(jìn)行糾正。例如,系統(tǒng)數(shù)據(jù)庫崩潰;
crit 關(guān)鍵狀態(tài)的警告。例如,硬件故障;
err 其它錯誤;
warning 警告;
notice 注意;非錯誤狀態(tài)的報告,但應(yīng)特別處理;
info 通報信息;
debug 調(diào)試程序時的信息;
none 通常調(diào)試程序時用,指示帶有none級別的類型產(chǎn)生的信息無需送出。如*.debug;mail.none表示調(diào)試時除郵件信息外其它信息都送出。
2.3 動作
“動作”域指示信息發(fā)送的目的地。可以是:
/filename 日志文件。由絕對路徑指出的文件名,此文件必須事先建立;
@host 遠(yuǎn)程主機(jī); @符號后面可以是ip,也可以是域名,默認(rèn)在/etc/hosts文件下loghost這個別名已經(jīng)指定給了本機(jī)。
user1,user2 指定用戶。如果指定用戶已登錄,那么他們將收到信息;
* 所有用戶。所有已登錄的用戶都將收到信息。
3: 具體實例
我們來看看/etc/syslog.conf文件中的實例:
……
*.err;kern.debug;daemon.notice;mail.crit [TAB] /var/adm/messages
……
這行中的“action”就是我們常關(guān)心的那個/var/adm/messages文件,輸出到它的信息源頭“selector”是:
*.err - 所有的一般錯誤信息;
kern.debug - 核心產(chǎn)生的調(diào)試信息;
daemon.notice - 守護(hù)進(jìn)程的注意信息;
mail.crit - 郵件系統(tǒng)的關(guān)鍵警告信息
4:syslog.conf內(nèi)容
日志文件由系統(tǒng)日志和內(nèi)核日志監(jiān)控程序syslogd 與klogd 控制, 在/etc/syslog.conf 文件中配置這兩個監(jiān)控程序默認(rèn)活動。
日志文件按/etc/syslog.conf 配置文件中的描述進(jìn)行組織。以下是/etc/syslog.conf 文件的內(nèi)容:
[root@localhost ~]# cat /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.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
# 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
5.版本
Syslog機(jī)制是類unix系統(tǒng)中經(jīng)常使用的一種日志記錄方式。它能夠以多種級別組合記錄系統(tǒng)運行過程中各類日志信息。比如內(nèi)核運行信息日志,程序運行 輸出的日志等。在為嵌入式系統(tǒng)做開發(fā)時,將程序運行時的一些重要信息寫入日志中,對于程序的調(diào)試以及錯誤診斷幫助是非常大的。重要信息包括程序運行時的重 要變量,函數(shù)運行結(jié)果,錯誤記錄等等。對于嵌入式系統(tǒng)而言,由于系統(tǒng)資源有限,而且是交叉開發(fā),調(diào)試及診斷及其不便。使用syslog機(jī)制,可大大簡化這 些工作。
并不是所有嵌入式系統(tǒng)都可以使用syslog。首先,系統(tǒng)使用類unix操作系統(tǒng),常用的就是linux。其次,為了支持遠(yuǎn)程日志記錄,系統(tǒng)中必須支持網(wǎng)絡(luò)通信。所幸,目前大部分嵌入式系統(tǒng)都是基于linux,并且支持網(wǎng)絡(luò)。以下論述具體實現(xiàn)。
在編譯busybox時,選擇syslog應(yīng)用程序,并將busybox加入到linux的文件系統(tǒng)中去。嵌入式系統(tǒng)啟動后,就可以配置syslog的客 戶端。根據(jù)busybox版本,syslog的服務(wù)進(jìn)程syslogd的配置有所不同。早期的syslogd忽略syslog.conf文件內(nèi)的配置項, 直接使用命令參數(shù)進(jìn)行配置。新版本的syslogd支持使用syslog.conf文件進(jìn)行配置??梢酝ㄟ^syslogd –h察看幫助信息,以確定當(dāng)前的syslogd版本。
當(dāng)不支持syslog.conf配置時,直接使用命令參數(shù),輸入以下命令啟動syslogd:
syslogd -n -m 0 -L -R 192.190.1.88
其中-n選項表示進(jìn)程在前臺運行。
-m選項指定循環(huán)間隔時間。
-L選項表示在進(jìn)行遠(yuǎn)程日志記錄的同時,本地也進(jìn)行記錄。如果不加該選項,則只進(jìn)行遠(yuǎn)程日志記錄。
-R表示進(jìn)行遠(yuǎn)程日志記錄,將syslog日志發(fā)送到目標(biāo)服務(wù)器上。這里假定目標(biāo)服務(wù)器為的IP地址為192.190.1.88。如果不指定端口,默認(rèn)使用UDP端口514。所以要確保服務(wù)器上該端口沒用被占用。
啟動后,所有的日志信息都會發(fā)往服務(wù)器的UDP端口514。
當(dāng)支持syslog.conf配置時,只需修改該配置文件即可。在文件中增加以下語句:
*.* @192.190.1.88
以上配置表示將所有syslog的日志發(fā)往服務(wù)器192.190.1.88,使用默認(rèn)的UDP端口。由于syslog.conf配置相對比較靈活,可以設(shè)置 屏蔽一些不需要的信息,以及設(shè)置指定的端口等等。請參考syslog.conf的有關(guān)命令,自行研究。然后啟動syslogd即可進(jìn)行遠(yuǎn)程記錄。
這篇對linux下syslogd以及syslog.conf文件的解讀說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。