記錄檔是我們發現系統問題的重要參考資訊. 大部分的系統服務出現問題時都會給syslogd(系統日誌守護進程)發送訊息. 然後使用者發覺並根據錯誤提示資訊採取行動. 然而對於1000行以上的記錄檔, 我們必須使用日誌檢查工具節省時間和避免漏掉重要訊息.
Swatch從字面上可以簡單理解為Watcher(守護者). 其它的日誌分析軟體定期地掃描記錄檔, 向你報告系統已經發生的問題或者狀況. Swatch程式不僅能夠做這些, 而且它能夠像Syslogd精靈那樣主動的掃描記錄檔並對特定的日誌訊息採取修複行動.
一. 準備
1. 下載和解壓縮最新的Swatch軟體包.建議從Swatch的官方網站獲得可靠的Swatch軟體包.
下載網址: http://sourceforge.net/projects/swatch/
1) 建立Swatch軟體包存放的目錄.
#mkdir -p /usr/local/src/log
2) 解壓縮原始碼包, 在log目錄下會產生一個新的目錄apache_1.3.33
#tar zpxf swatch-3.1.1.tar.gz
二. 安裝
#cd swatch-3.1.1
#make
#make test
#make install
#make realclean
Swatch程式安裝成功後, Perl模組將會用於Swatch程式的運行.
三. 配置
Swatch程式使用正向運算式(Regular Expressions)來發現感興趣的目標行. 一旦Swatch發現某一行匹配預設定的模式, 它會立即採取行動, 比如說螢幕列印, 寄送電子郵件, 或者採取使用者預先設定的行動.
watchfor /[dD]enied│/DEN.*ED/
echo bold
bell 3
mail
exec "/etc/call_pager 5551234 08"
上面的指令碼是Swatch設定檔一個部分的例子. 首先Swatch在指定的記錄檔中尋找包含設定單詞"denied, Denied, 或者其它以DEN開始或者以ED結束的單詞的行. 一旦搜尋到某行包含三個搜尋單詞中的任何一個. Swatch程式立即向終端顯示粗體行和響鈴三下, 然後寄送電子郵件給運行swatch程式的使用者(通常是
root使用者)警報所在行和執行/etc/call_paper程式, 忽略sendmail, fax, unimportant stuff. 在這個例子當中, 搜尋字串sendmail, fax和unimportant stuff將被忽略. 甚至他們符合預定搜尋字串中的一個.
四. 使用
使用Swatch非常的簡單, 如通常使用Swatch檢查日誌, 運行:
swatch --config-file=/home/zhaoke/swatch.conf
--examine=/var/log/messages
上面的例子中設定檔所在的系統絕對路徑是/home/zhaoke/swatch.conf, 需要檢查的記錄檔是/var/log/messages.
使用swatch檢查不段增加的記錄檔:
swatch --config-file=/home/zhaoke/swatch.conf
--tail-file=/var/log/messages
五. 更多
關於作者: 趙珂, 作業系統研究和安全工程師.
zhaoke.net是作者的個人網站. 歡迎技術交流以及連結交換.
原文出處: http://zhaoke.net/articles/general/2005-02-04.shtml
著作權聲明: 引用或轉載, 請註明作者與出處. 並請保留本文的串連.
如有問題或錯誤請提交到:
http://zhaoke.net/os/forum.php?do=viewtopic&cat=2&topic=5