本文针对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