當前位置

首頁 > 語文基礎 > 日誌 > 用Swatch做Linux日誌分析

用Swatch做Linux日誌分析

推薦人: 來源: 閱讀: 1.39W 次

日誌文件是我們發現系統問題的重要參考信息. 大部分的系統服務出現問題時都會給syslogd(系統日誌守護進程)發送消息. 然後用戶發覺並根據錯誤提示信息採取行動. 然而對於1000行以上的日誌文件, 我們必須使用日誌檢查工具節省時間和避免漏掉重要信息.

用Swatch做Linux日誌分析

Swatch從字面上可以簡單理解爲Watcher(守護者). 其它的日誌分析軟件定期地掃描日誌文件, 向你報告系統已經發生的問題或者狀況. Swatch程序不僅能夠做這些, 而且它能夠像Syslogd守護程序那樣主動的掃描日誌文件並對特定的日誌消息採取修復行動.

  一. 準備

1. 下載和解壓縮最新的Swatch軟件包.建議從Swatch的官方網站獲得可靠的Swatch軟件包.

下載網址:

1) 創建Swatch軟件包存放的目錄.

#mkdir -p /usr/local/src/log

2) 解壓縮源代碼包, 在log目錄下會生成一個新的目錄apache_1.3.33

#tar zpxf

  二. 安裝

#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/

--examine=/var/log/messages

上面的例子中配置文件所在的系統絕對路徑是/home/zhaoke/, 需要檢查的日誌文件是/var/log/messages.

使用swatch檢查不段增加的日誌文件:

swatch --config-file=/home/zhaoke/

--tail-file=/var/log/messages