Sensu 检查日志正则表达式错误地通过

Sensu check-log regex falsely passing

我正在尝试设置 sensu 检查日志检查。日志类似于以下内容:

2015-09-22 06:05:44,710 DEBUG log output here
2015-09-22 06:05:44,712 ERROR more log output here
2015-09-22 06:05:44,713 ERROR even more log output here
2015-09-22 06:05:44,714 WARN so much log output

我正在运行手动检查以测试如下:

sudo -u sensu /path/to/ruby /path/to/sensu/plugins/check-log.rb -f /path/to/log.log -q '/.*ERROR.*/' -r

当我 运行 这里的正则表达式时:

http://rubular.com/r/j1NO8RFY2p

它捕获了我想要的两行。但是手动检查 returns 这个:

CheckLog OK: 0 warnings, 0 criticals for pattern /.*ERROR.*/.

所以我不断收到错误的通过检查。没有看到我在这里做错了什么,并且这个特定插件相当缺乏文档。是的,日志中有错误要捕获。任何和所有帮助将不胜感激。提前谢谢你。

编辑 工作代码:

rm -rf /var/cache/check-log
sudo -u sensu /path/to/ruby /path/to/sensu/plugins/check-log.rb -f /path/to/log.log -q '.*ERROR.*' -r

脚本在/var/cache/log生成缓存,存储读取的字节数,并查找到那个位置,所以每次做测试,都需要先清理文件夹。

rm -rf /var/cache/check-log

然后运行修复代码

sudo -u sensu /path/to/ruby /path/to/sensu/plugins/check-log.rb -f /path/to/log.log -q '.*ERROR.*' -r

CheckLog CRITICAL: 0 warnings, 2 criticals for pattern .*ERROR.*.
2015-09-22 06:05:44,712 ERROR more log output here

2015-09-22 06:05:44,713 ERROR even more log output here

参考:check-log.rb