①、linux上日誌系統類型:syslog和syslog-ng(開源版和商業版)
1、syslog服務:
syslogd:系統日誌,非內核產生的信息
配置文件:/etc/syslog.conf、
配置以後利用service syslog reload(不用重啓服務讀取配置文件)
日誌服務器配置:etc/sysconfig/syslog內SYSLOGD_OPTIONS="-m 0"改爲SYSLOGD_OPTIONS="-r -m 0"即可作爲日誌服務器
klogd:內核日誌,專門負責內核產生的信息
kernel啓動的時候是物理終端(/dev/console),產生的日誌信息在/var/log/dmesg
dmesg命令:可以直接查看/var/log/dmesg;也可以使用cat /var/log/dmesg查看。
sbin/init進程信息屬於系統日誌,放在以下位置:
/var/log/messages:系統標準錯誤日誌信息,非內核產生的引導信息;各子系統產生的信息。
/var/log/maillog:郵件系統產生的日誌信息
/var/log/secure:用戶登陸信息日誌
2、日誌需要滾動:
message一段時間以後重新命名爲message1..,然後新建一個message來存放日誌。
logrotate:通過此命令對日誌文件進行切片
/etc/cron.daily/logrotate
配置文件:/etc/syslog.conf
配置文件定義格式爲: 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級別的