本文針對Hyperic 5.8+ 版本java
在實際的監控中,有不少日誌並非Log4j格式,例如oracle的 ALERT.LOG, Linux的 syslog 和 dmesg等。經過瀏覽Hyperic的源碼發現, 支持 Log4j 的支持類是 Log4JLogTrackPlugin, 繼承自 LogFileTailPlugin,而該類實現了對普通文本日誌的監控。git
那麼問題來了,哪一個插件使用了 LogFileTailPlugin 這個支持類? 通過仔細分析,發現了一個插件,不但使用了這個類,也提供了更多的功能: Multi Log Tracker 正則表達式
本文示例配置監控 /var/log 目錄下的 syslog 和 dmesg文件。匹配字符串 rsyslogd服務器
操做系統: Ubuntu 12.04.3 LTS oracle
在某個平臺下新建服務器,如圖ide
填寫名稱,在「服務器類型」選擇 「Multi Log Tracker 1.0」,在安裝路徑 可填寫"/"spa
單擊「肯定」顯示以下,在左下角,如圖,單擊「編輯」操作系統
如圖,填入幾個重要參數,以下,插件
basedir : /var/log
日誌
logfilepattern: : dmesg,syslog
includepattern : rsyslogd: (所要匹配的字符串)
選中 server.log_track.enable 和 server.enable_log_services
單擊「肯定」後,稍等片刻,如圖:
進入,每一個發現的服務,如圖:
插件 Multi Log Tracker 1.0 可監控多個log文件,使用的技術是: Apache ant Directory Scanner
basedir - 基準目錄,用於掃描每一個如何 logfilepattern 模式的文件,該目錄必須存在,而且可讀,不能使用通配符;
logfilepattern - 掃描的文件模式,能夠英文逗號分開。
includepattern - 正則表達式,使用該正則表達式匹配tail的每一行。大小寫不敏感。匹配的每一行將送到Hyperc server。
excludepattern - 排除的正則表達式,匹配該表達式的每一行將忽略,該規則覆蓋 includepattern.
includepattern_2 - 第二個 include pattern, 可選。
excludepattern_2 - 第二個exclude pattern, 可選。
enable_only_metrics - 不發送日誌,只採集指標。
override_file_checks - 默認時,若是文件不存在,驗證將失敗。該選項覆蓋這種行爲。
logfilepattern option:
**\*.class - 匹配全部以 .class 結尾的文件/目錄
test\a??.java - 在目錄 test下,匹配全部以a開頭,而後是倆個任意字符,後接 .java 的文件/目錄。
** - 匹配目錄樹下的全部內容。
**\test\**\XYZ* - 匹配全部文件/目錄,符合 以 "XYZ"開頭,而且父目錄是 test (例如: "abc\test\def\ghi\XYZ123").
具體示例:
匹配 /var/log 目錄下的名爲 messages* 或 *log 的文件/目錄
basedir=/var/log
logfilepattern=**/messsages*,**/*log
includepattern=error|warn|too many threads running
符合以上條件的文件是:
/var/log/messages
/var/log/cron.log
/var/log/yum.log