日誌分類
Linux的記錄檔一般位於 /var/log 檔案夾,一般有以下幾個:
cron: crontab例行事務的日誌
dmesg: 核心啟動時的檢測資訊,輸出同 dmesg 命令
lastlog: 所有帳號最後一次登入的相關資訊,輸出同 lastlog 命令
maillog: 郵件來往資訊
messages : 系統錯誤資訊
secure : 涉及到“輸入口令”的操作,都會記錄於此
wtmp與faillog: 登入成功的使用者資訊(wtmp)和登入失敗的使用者資訊(faillog)
httpd, samba等 : 不同的網路服務用自己的定製的記錄檔
日誌管理服務
日誌一般由進程syslogd管理
syslogd提供以下Log Service
服務類別 |
說明 |
auth (authpriv) |
主要與認證有關的機制,例如 login, ssh, su 等需要帳號/口令的咚咚; |
cron |
就是例行性工作排程 cron/at 等產生資訊記錄的地方; |
daemon |
與各個 daemon 有關的資訊; |
kern |
就是核心 (kernel) 產生資訊的地方; |
lpr |
亦即是列印相關的資訊啊! |
mail |
只要與郵件收發有關的資訊紀錄都屬於這個; |
news |
與新聞群組伺服器有關的東西; |
syslog |
就是 syslogd 這支程式本身產生的資訊啊! |
user, uucp, local0 ~ local7 |
與 Unix like 機器本身有關的一些資訊。 |
/etc/syslog.conf 是 syslogd的設定檔,它的文法如下
服務 串連符 錯誤等級 記錄檔路徑
news.notice /var/log/news/news.notice
以上為例,news是他的服務名稱, "." 這個符號是串連符, notice是錯誤等級, 後面的路徑是記錄檔路徑
其中,串連符有以下幾種
- . :代表『比後面還要高的等級 (含該等級) 都被記錄下來』的意思,例如: mail.info 代表只要是 mail 的資訊,而且該資訊等級高於 info (含 info 本身)時,就會被記錄下來的意思。
- .=:代表所需要的等級就是後面接的等級而已, 其他的不要!
- .!:代表不等於, 亦即是除了該等級外的其他等級都記錄。
錯誤等級有以下幾種
等級 |
等級名稱 |
說明 |
1 |
info |
僅是一些基本的資訊說明而已; |
2 |
notice |
比 info 還需要被注意到的一些資訊內容; |
3 |
warning (warn) |
警示的資訊,可能有問題,但是還不至於影響到某個 daemon 啟動並執行資訊;基本上, info, notice, warn 這三個資訊都是在告知一些基本資訊而已,應該還不至於造成一些系統運行困擾; |
4 |
err (error) |
一些重大的錯誤資訊,例如配置檔的某些配置值造成該服務服法啟動的資訊說明, 通常藉由 err 的錯誤告知,應該可以瞭解到該服務無法啟動的問題呢! |
5 |
crit |
比 error 還要嚴重的錯誤資訊,這個 crit 是臨界點 (critical) 的縮寫,這個錯誤已經很嚴重了喔! |
6 |
alert |
警警示告,已經很有問題的等級,比 crit 還要嚴重! |
7 |
emerg (panic) |
疼痛等級,意指系統已經幾乎要死機的狀態! 很嚴重的錯誤資訊了。通常大概只有硬體出問題,導致整個核心無法順利運行,就會出現這樣的等級的資訊吧! |
另外,有的記錄檔路徑前會有一個 “-” 號,例如
mail.* -/var/log/maillo
他的作用表示先將日誌內容寫入緩衝,最後再一起寫入記錄檔
Log Service器配置
工作伺服器配置
# 1. Server 端:修改 syslogd 的啟動配置檔,通常在 /etc/sysconfig 內![root@www ~]# vim /etc/sysconfig/syslog# 找到底下這一行:SYSLOGD_OPTIONS="-m 0"# 改成底下這樣子!SYSLOGD_OPTIONS="-m 0 -r"# 2. 重新啟動與觀察 syslogd 喔![root@www ~]# /etc/init.d/syslog restart[root@www ~]# netstat -lunp | grep syslogProto Recv-Q Send-Q Local Address Foreign Address State PID/Program nameudp 0 0 0.0.0.0:514 0.0.0.0:* 13981/syslogd
Log Service器配置
[root@www ~]# vim /etc/syslog.conf*.* @192.168.1.100
最後重啟syslogd即可