Logsurfer--Linux系統日誌的管理利器

1.簡介

Logsurfer是一個實時監控系統log的進程,並且會在發生事件的時候按照配置文件中的相關配置上報消息或者執行操作。它跟我們熟知的Swatch相似,並且是基於Swatch的,但是它也提供了一系列swatch不支持的更高級的功能。

Logsurfer能夠將相關的log分類管理--比如當一個系統自啓動的時候會創建很多的log messages。在這種情況下,logsurfer可以將這些啓動時候的messages放到一個分組裏,並且將這些消息通過一個獨立的Email消息發送給系統管理員管理的項目名爲“主機xx已經重啓“的分組。Swatch則不能完成這個需求。

Logsurfer是用C語言寫的,這使得它非常的效率,一個重要的原因是是現場會產生大量的log traffic。我曾經使用logsurfer在一個log服務器每天記錄超過50W條記錄,logsurfer可以一直保持這個load運行,且沒有任何問題。Swacth,在其他的方面,是基於perl實現的,而且即使是很小的log traffic也可能存在問題。

2. 下載和安裝

下載最新的logsurfer版本地址:http://www.crypt.gen.nz/logsurfer 

  wget http://www.crypt.gen.nz/logsurfer/logsurfer+-1.6.tar.gz
  tar xvfz logsurfer+-1.6.tar.gz
使用默認選項配置logsurfer+,並編譯安裝到/usr/local/bin:
  ./configure
  make
  make install
Logsurfer是一個很小的C程序,非常容易安裝和管理。你可以根據你自己的系統設計啓動和關閉腳本。對於Solaris來說,這裏有一個例子:
  wget http://www.crypt.gen.nz/logsurfer/logsurfer_init_solaris
  mv logsurfer_init_solaris /etc/init.d/logsurfer
  chmod 755 /etc/init.d/logsurfer
  ln -s /etc/rc3.d/S98logsurfer /etc/init.d/logsurfer
編輯/etc/init.d/logsurfer以及爲log文件存儲位置設置本地選項等等。 然後把它鏈接到/etc/rc*.d目錄,當喜用啓動和關閉的時候,它可以跟隨系統被調用。

初始化腳本爲Logsurfer定義了一些選項,包括監測哪個log文件,以及監測的配置文件。

3.規則

Logsurfer的規則是簡單的去做一些事情當它看到特定的行在log messages的輸入六中出現。規則如下所示:
  match_regex not_match_regex stop_regex not_stop_regex timeout [continue] action...
match_regex是一個規則的表達式定義,這個表達式定義與規則相匹配。
not_match_regex是一個規則的表達式定義,這個表達式定義與規則不匹配。
如果有一行匹配stop_regex,那麼這個規則要從已激活的股則中的運行列表中被移除
not_stop_regex定義不會應用stop_regex的行 
timeout定義了這個規則真正生效的持續時間,指定爲0則是不超時。
continue關鍵詞,如果存在的話是告訴logsurfer繼續執行這個規則,如果有匹配這個規則的行出現。(默認的話它會停止執行這個規則,一旦匹配的行出現)。

行爲區域指定了當一個成功的匹配出現,應該如何去做。行爲可以是以下中的一個:

     ignore - 忽略掉這一行
     exec - 執行一段程序
     pipe - 跟exec相似,但是log行被髮送到標準輸入

     open - 打開一個新的環境規則

     delete - 刪除一個已經打開的環境
     report - 運行程序,用管道傳輸上下文數據
     rule - 創建新的規則

我們通過下面這個例子來簡單的看下規則如何工作:

  'last message repeated' - - - 0
    ignore
這個規則簡單的忽略的所有的包含”last message repeated"的行.注意如果有很多log messages進入到文件中,這是一個很好的方法通過在logsurfer的配置文件中配置,從而忽略掉不想要的行。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章