linux的日志系统,Linux上的日志系统
Linux上的日志系統
Linux上所用到的日志系統可以分為兩種syslog和syslog-ng兩種,syslog-ng是下一代升級版的日志系統。RedHat-5上用的是syslog,而RedHat-6上已經改為syslog-ng了,因為syslog-ng的功能要比syslog的功能大很多,雖然它們的格式差不多,但是差別很大,現在我們主要說的是syslog。
syslog是一個服務,它是專門用于記錄日志的功能,可以為每個程
序負責記錄日志,但也不是所有的都用syslog,syslog服務有兩個進程
1:syslogd:系統,它是專門負責非內核所產生的日志信息。
2:klogd:內核,:專門負責內核所產生的日志信息。
日志系統配置文件定義格式為:kernel?-->物理內存(/dev/console)?-->?/var/log/dmesg
如果你寫完日志之后,還想查看的話只需cat?/var/log/dmesg就可以了
日志需要滾動(日志切割):
如:messages??messages.1??messages.2
/var/log/messages:系統標準錯誤日志信息:非內核產生引導信息,各子系統產生的信息
如下列腳本:
#!/bin/sh
#
/usr/sbin/logrotate?/etc/logrotate.conf
EXITVALUE=$?
if?[?$EXITVALUE?!=?0?];?then
/usr/bin/logger?-t?logrotate?"ALERT?exited?abnormally?with?[$EXITVALUE]"
fi
exit?0
/var/log/maillog:郵件系統產生的日志信息
/var/log/secure:如圖所下
syslog進程:syslogd和klogd的一些介紹
配置文件定義格式為:?facility(誰產生的日志).priority(哪個級別的日志)action(產生的日志怎么辦)
facility,可以理解為日志的來源或設備目前常用的facility有以下幾種:
auth#?認證相關的
authpriv#?權限,授權相關的
cron#?任務計劃相關的
daemon#?守護進程相關的
kern#?內核相關的
lpr#?打印相關的
mail#?郵件相關的
mark#?標記相關的
news#?新聞相關的
security#?安全相關的,與auth類似
syslog#?syslog自己的
user#?用戶相關的
uucp#?unix?to?unix?cp?相關的
local0?到local7#?用戶自定義使用
*#?*表示所有的facility
priority(log?level)日志的級別,一般有以下幾種級別(從低到高)
debug???????????#?程序或系統的調試信息
info????????????#?一般信息
notice??????????#?不影響正常功能,需要注意的消息
warning/warn????#?可能影響系統功能,需要提醒用戶的重要事件
err/error???????#?錯誤信息
crit????????????#?比較嚴重的
alert???????????#?必須馬上處理的
emerg/panic?????#?會導致系統不可用的
*???????????????#?表示所有的日志級別
none????????????#?跟*相反,表示啥也沒有
action(動作)日志記錄的位置
系統上的絕對路徑????#普通文件?如:/var/log/xxx
|???????????????????#?管道??通過管道送給其他的命令處理
終端??????????????#終端???如:/dev/console
@HOST???????????????#?遠程主機?如:@10.0.0.1
用戶??????????????#系統用戶?如:root
*???????????????????#?登錄到系統上的所有用戶,一般emerg級別的日志是這樣定義的
定義格式例子:
mail.info???/var/log/mail.log?#?表示將mail相關的,級別為info及
#?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相反
*.info????????????????????????#?表示記錄所有的日志信息的info級別
mail.*????????????????????????#?表示記錄mail相關的所有級別的信息
*.*???????????????????????????#?你懂的.
cron.info;mail.info???????????#?多個日志來源可以用";"隔開
cron,mail.info????????????????#?與cron.info;mail.info是一個意思
mail.*;mail.!=info????????????#?表示記錄mail相關的所有級別的信息,但是不包括info級別的
總結
以上是生活随笔為你收集整理的linux的日志系统,Linux上的日志系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 后处理编辑修改_Abaqus Pytho
- 下一篇: linux fflush函数,fflus