三類日志子系統:
1、 連接配接時間日志:記錄寫入到/var/log/wtmp、/var/run/utmp中,login程式更新wtmp、utmp檔案,使系統管理者跟蹤誰在何時登入到系統
2、 程序統計: 由核心執行,當一個程序終止時為每個程序在統計程序檔案(pacct、acct)中寫入一條記錄,為系統中基本服務提供指令使用統計。
3、錯誤日志: /var/adm/messages、/var/log/syslog
日志架構(linux也類似)
源(守護程序、核心、使用者程序、程式、logger指令)---》syslog守護程序(配置檔案/etc/syslog.conf)---》産生各個日志并寫入日志檔案
指令:logger 、 logadm
程序:/usr/sbin/syslogd 預設配置檔案:/etc/syslog.conf
SMF: online 9:58:24 svc:/system/system-log:default
1、 syslog.conf檔案
格式:facility(源). level(程度) 消息接受地
如:
*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages
*.alert;kern.err;daemon.err operator
*.alert root
注:多個消息,用“;”分号間隔,消息接受地類型:檔案(接受日志資訊的檔案)、遠端主機(格式為@servername、@IP)、使用者(多個使用者用“,”逗号隔離)、*(表示發給所有已登入使用者)
解析:
facility
kern 核心産生的消息 user 使用者程序産生的消息,預設的facility關鍵字
mail 郵件系統 daemon 守護程序産生的消息
auth 與驗證、安全、授權系統有關的系統消息,如login、su、getty等
lpr 列印消息 news 網絡新聞消息
cron 自動作業消息 audit 與審計有關的消息
syslog syslogd自身産生的消息 mark 消息的最後儲存時間,由syslogd本身産生
* 表示所有的facility,除mark外
level
emerg 緊急情況,通常會廣播給所有使用者,級别最高
alert 應立即糾正的狀态,比如系統資料塊受到破壞
crit 緊急情況警告,如硬體裝置錯誤
err 不屬于crit的其它錯誤
warning 告警消息
notice 可能需要處理的消息
info 普通消息通知
debug 調試程式時出現的消息
none facility發出的任何消息不會被發送到目的地
ifdef判斷語句
ifdef('LOGHOST',true部分,false部分)
當LOGHOST已定義,執行‘true部分’,LOGHOST未定義,則執行‘false部分’
mail.debug ifdef(`LOGHOST', /var/log/syslog, @loghost)
M4宏處理器
bash-3.2# ls -l /usr/ccs/bin/m4
-r-xr-xr-x 1 root bin 32112 2005 23 /usr/ccs/bin/m4
syslogd不直接讀取/etc/syslog.conf檔案,而是啟動M4,M4再讀取/etc/syslog.conf檔案,并将讀取的結果發給syslogd守護程序。
另外syslogd随系統啟動時,會檢查/etc/hosts檔案,判斷是否有loghost關鍵詞。如
IP hostname loghost 與 IP hostname 是兩種不同情況,如果syslogd讀取/etc/hosts時沒有loghost關鍵詞,則啟動M4的方式為:/usr/css/bin/m4 不帶參數表示沒有定義LOGHOST。如果有loghost關鍵詞,則啟動M4的方式為:/usr/css/bin/m4 -D LOGHOST ,即定義LOGHOST變量。影響ifdef語句。
2、 重新開機syslogd指令:
pkill -HUP syslogd
檢視日志指令:dmesg
dmesg指令讀取/var/adm/messages檔案。如:dmesg | less
控制日志指令:logadm 常用參數:-s 檔案大小 -p 間隔周期
如:bash-3.2# logadm -s 1k -p 2d /var/adm/messages
本文轉自fuhaixiong 51CTO部落格,原文連結:http://blog.51cto.com/heliy/789210,如需轉載請自行聯系原作者