2.12. 設定 syslogd 的系統事件紀錄

您可以編輯 /etc/syslog.conf 檔案來啟用叢集紀錄事件到與 /var/log/messages 紀錄檔案之外的一個檔案,藉由紀錄叢集訊息到另一個檔案有助於更清楚地診斷問題。

成員們使用 syslogd 系統程式來紀錄叢集相關的事件到一個檔案中(如 /etc/syslog.conf 檔案中所指定的),紀錄檔案將有助於診斷叢集中的問題所在。 建議您設定事件紀錄,以使得 syslogd 系統程式只紀錄來自所執行之成員的叢集訊息。 因此您需要檢查所有成員的紀錄檔案以取得關於叢集的一個較透徹的了解。

syslogd 系統程式紀錄來自叢集系統程式的訊息,預設的嚴重性等級為 4 (warning)。 請參考 第 2.6 節 以取得關於叢集系統程式的更多資訊。

一個事件的重要性決定紀錄項目的嚴重性等級,必須在影響到叢集的可用性之前進行重大事件的調查,叢集 可以以下列的嚴重性等級來紀錄訊息,以下以嚴重性等級的順序列出:

紀錄檔案紀錄項的範例如下所示:

Jul 18 20:24:39 clu1 clufence[7397]: <info> STONITH: rps10 at /dev/ttyS0,\
	  port 0 controls clu1 
Jul 18 20:24:39 clu1 clufence[7397]: <info> STONITH: rps10 at /dev/ttyS0,\
	  port 1 controls clu2
Jul 18 20:24:53 clu1 clufence[7397]: Port 0 being turned off.
Jul 18 20:24:53 clu1 clufence[7397]: <notice> STONITH: clu2 has been fenced! 
Jul 18 20:51:03 clu1 clufence[30780]: <info> STONITH: rps10 at/dev/ttyS0,\
	  port 0 controls clu1
Jul 18 20:51:03 clu1 clufence[30780]: <info> STONITH: rps10 at /dev/ttyS0,\
	  port 1 controls clu2
Jul 18 20:51:17 clu1 clufence[30780]: Port 0 being turned on.
Jul 18 20:51:17 clu1 clufence[30780]: <notice> STONITH: clu2 is no longer fenced off. 
     [1]         [2]      [3]               [4]         [5]

紀錄檔案中的每一個紀錄項目含有下列的資訊:

在設定好叢集軟體後,您或許可以編輯 /etc/syslog.conf 檔案來啟用叢集以紀錄 系統事件到一個相異於預設紀錄檔案(/var/log/messages)的檔案中。 叢集的工具程式 與系統程式使用稱為 local4 的一個 syslog 標記來紀錄它們的訊息。 使用一個叢集 特定的紀錄檔案將有助於叢集的監視與解決問題。

如要防止叢集事件被紀錄到 /var/log/messages 檔案中,請在 /etc/syslog.conf 檔案中增加 local4.none 到下列這一行中:

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;news.none;authpriv.none;local4.none   /var/log/messages

如要引導叢集紀錄工具程式來紀錄叢集事件到 /var/log/cluster 檔案中,請增加類似以下 這些行到 /etc/syslog.conf 檔案中:

#
# Cluster messages coming in on local4 go to /var/log/cluster
#
local4.*                         /var/log/cluster

如要套用之前的變更,請以 service syslog restart 指令重新啟動 syslogd

除此之外,您還可以修改由單獨叢集系統程式所紀錄之事件的嚴重性等級,請參考 第 2.6 節 以及 syslog.conf 的 man page 以取得更多資訊。

根據 /etc/logrotate.conf 所指定的頻率(預設為每週),如要循環叢集的紀錄檔案, 請增加 /var/log/cluster/etc/logrotate.d/syslog 檔案中的第一行中,例如:

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler 
/var/log/boot.log /var/log/cron /var/log/cluster {
   sharedscripts
   postrotate
       /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> 
       /dev/null || true
   endscript
}