Hyperic 的文本日志监控插件 Multi Log Tracker
简述
本文针对Hyperic 5.8+ 版本
在实际的监控中,有很多日志并不是Log4j格式,例如oracle的 ALERT.LOG, Linux的 syslog 和 dmesg等。通过浏览Hyperic的源码发现, 支持 Log4j 的支持类是 Log4JLogTrackPlugin, 继承自 LogFileTailPlugin,而该类实现了对普通文本日志的监控。
那么问题来了,哪个插件使用了 LogFileTailPlugin 这个支持类? 经过仔细分析,发现了一个插件,不但使用了这个类,也提供了更多的功能: Multi Log Tracker
本文示例配置监控 /var/log 目录下的 syslog 和 dmesg文件。匹配字符串 rsyslogd
操作系统: Ubuntu 12.04.3 LTS
配置过程
-
在某个平台下新建服务器,如图
-
填写名称,在“服务器类型”选择 “Multi Log Tracker 1.0”,在安装路径 可填写"/"
-
单击“确定”显示如下,在左下角,如图,单击“编辑”
-
如图,填入几个重要参数,如下,
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
指标
MultiLogTracker 1.0 (Server)
Number Of Captured Logs Per Interval Number Of Log Files Secondary Number Of Captured Logs Per Interval Weighted Differential Number Of Captured Logs Per Interval
MultiLogTracker 1.0 LogFileTracker(Service)
Number Of Captured Logs Per Interval Log File Size