本文针对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
下载免费开源Hyperic