在分析 syslog 之前, 我們需要知道一點: centos6 起/etc/syslog.conf 不再有!而是/etc/rsyslog.conf 代替!
日誌檔案的一般格式
一般來說, 系統所產生的資訊經過 syslog 而記錄下來的資料中, 每條資訊均會記錄下面幾個重要資料:
#事件發生的日期與時間;
#發生此事件的 WordPress 主機名;
#啟動此事件的服務名; 或函式名稱;
#該資訊的實際資料內容;
syslog 配置檔案:/etc/rsyslog.conf
基本上,syslog 針對各種服務與資訊記錄在某些檔案的配置檔案就是/etc/rsyslog.conf, 這個檔案規定了” 什麼服務的什麼等級資訊以及需要被記錄在哪裡 (裝置或檔案)”.
命令格式 :
服務名稱 [.=!] 資訊等級 資訊記錄的檔名或裝置或 WordPress 主機
<1>服務名稱
syslog 本身有設定一些服務, 你可以透過這些服務來儲存系統的資訊.
syslog 設定的服務主要有:
服務型別
說明
auth(authpriv)
主要與認證有關的機制, 例如 login 、 ssh 、 su 等需要賬號/密碼
cron
記錄計劃任務 cron/at 等日誌資訊
daemon
與各個 daemon 有關的資訊
kern
記錄核心 (kernel) 產生的資訊
lpr
印表機相關的資訊
mail
記錄與郵件收發相關的資訊
news
記錄與新聞站群伺服器相關的資訊
syslog
syslog 本身產生的資訊記錄
user 、 uucp 、 local0~7
與 Unix like 機器本身有關的一些資訊
<2>連結符號
“.” 代表比後面還要高的等級 (含該等級) 都被記錄下來;
“.=” 代表所需要的等級就是後面接的等級而已, 其他的不記錄;
“.!” 代表不等於, 即是除了該等級外的其他等級均記錄;
<3>資訊等級
同一個服務所產生的資訊也是有差別的. 基本上,syslog 將資訊分為 7 個主要的等級及 2 個特殊的等級.
依序是這樣的:
等級
等級說明
說明
1
info
僅是一些基本的資訊說明
2
notice
除了 info 外還需要注意的一些資訊內容
3
warning
警告, 可能有問題, 但還不至於影響到某個 daemon 執行的資訊
4
err(error)
重大的錯誤資訊
5
crit(critical)
比 error 嚴重的錯誤資訊
6
alert
警告, 很嚴重的錯誤資訊, 比 crit 還要嚴重
7
emerg(panic)
“疼痛” 等級, 意指系統已經幾乎要宕機的狀態! 通常硬體出現問題導致整個核心無法順利執行, 就會出現這樣的等級
特
殊
debug
錯誤檢測等級, 需要做一些錯誤檢測, 應用該等級
none
忽略掉某些服務
<4>資訊記錄的檔名或裝置或 WordPress 主機
通常, 我們使用的都是檔案, 但是也可以輸出裝置, 例如印表機之類的.
常見:
檔案的絕對路徑 : 通常放在/var/log 目錄下的檔案;
印表機或其他 : 例如/dev/lp0 這個印表機裝置;
使用者名稱稱 : 顯示給使用者;
遠端 WordPress 主機 : 例如 www.vbird.tsai, 當前也要對方 WordPress 主機也支援才行;
* : 代表目前線上的所有人;
常見例項
<1>如果我要將我的 mail 相關的資料寫入/var/log/maillog 當中, 那麼在/etc/rsyslog.conf 的語法如何寫呢?
基本的寫法是這樣的:
mail.info /var/log/maillog
解析:mail.info 表示將高於 info 等級 (含 info 等級) 之上的資訊, 都會被寫入後面接的檔案中. 也就是將所有的 mail 的日誌資訊都記錄在/var/log/maillog 中.
<2>將新聞組 (news) 與計劃任務 (cron) 的資訊都寫入/var/log/cronnews 檔案中, 而這兩個程式的警告資訊則額外記錄在/var/log/cronnews.warn, 那又該如何編輯 rsyslog.conf 呢?
寫法:
news.*;cron.* /var/log/cronnews
news.=warn;cron.=warn /var/log/cronnews.warn
<3>messages 這個檔案記錄所有的資訊, 但是就是不想記錄 cron 、 news 以及 mail 的資訊, 該如何寫呢?
寫法:
*.*;news,cron,mail.none /var/log/messages
或者
*.*;news.none;cron.none;mail.none /var/log/messages
解析: 使用”,” 分隔時, 那麼等級只要接在最後一個即可! 如果使用”;” 來分隔的話, 那麼就需要將服務與等級都寫上去.