Linux上的日誌系統
1、syslog
2、syslog-ng 下一代升級版日誌系統
紅帽5使用syslog 6使用syslog-ng
syslog 服務
syslogd : 系統,非內核產生的信息
klogd : 內核,專門負責記錄內核的日誌信息
系統啓動時所輸出的信息【到init啓動之前的所有信息】:kernel -->物理終端(/dev/console) --> /var/log/demesg
可以直接打開文件查看,也使用demesg命令來查看
init啓動及之後的非內核產生的信息:
/var/log/messages : 系統標準錯誤日誌;非內核產生引導信息;各子系統產生的信息
/var/log/maillog:郵件系統產生的日誌信息
/var/log/secure: 任何用戶嘗試登陸系統的信息
syslog配置文件:
/etc/syslog.conf
配置文件定義格式 : facility priority action
來源 級別 動作
facility,可以理解爲日誌的來源或設備目前常用的facility;有以下幾種:
auth 認證相關的
authpriv 權限,授權相關的
cron 任務計劃相關的
daemon 守護進行相關的
kern 內核相關的
lpr 打印相關的
mail 郵件相關的
mark 標記相關的
news 新聞相關的
security 安全相關的
syslog syslog自己的
user 用戶相關的
uucp unix to unix cp 相關的
local0 到 loacal7 用戶自定義使用
priority(log level) 日誌的級別,一般有以下幾種級別(從低到高)
debug 程序或系統的調試信息
info 一般信息
notice 不影響正常功能,需要注意的消息
warning/warn 可能影響系統功能,需要提醒用戶的重要事件
err/error 錯誤信息
crit 比較嚴重的
alert 必須馬上出來的
emerg/panic 會導致系統不可用的
* 表示所有的日誌級別
none 跟*相反,表示啥也沒有
action(動作)日誌記錄的位置(前面加-表示異步寫入)
系統上的絕對路徑 普通文件
| 管道 通過管道送給其他的命令處理
終端 如/dev/console
@HOST 遠程主機
用戶 系統用戶
* 登陸到系統上的所有用戶,一般emerg級別的日誌是這樣定義的
例:
mail.info /var/log/mail.log 表示將mail相關的,級別爲info及以上級別的信息記錄到/var/log/mail.log文件中
auth.=info @10.0.0.1 表示將auth相關的,級別爲info的信息記錄到10.0.0.1主機上
前提是10.0.0.1要能接收其他主機發來的日誌信息
user.!=error 表示記錄user相關的,不包括error級別的信息
user.!error 與user.error相反,表示記錄與user相關,error級別以下的信息
*.info
mail.*
cron.info;mail.info
cron,mail.info
mail.*;mail.!=info
syslog配置文件更改後要重啓服務或reload重讀配置文件:
service syslog restart (不建議重啓,以免錯過某些正在寫入的日誌信息)
service syslog reload