如何在Sensu中使用check-tail插件检查重复的字符串?

时间:2017-04-14 05:44:52

标签: ruby regex runtime-error sensu

我正在使用sensu和check-tail.rb插件来提醒我的应用日志中是否有任何错误。问题是,如果检查发现3条或更多错误消息,我希望检查成功。

我想出的解决方案是使用正则表达式:

\^.*"status":503,.*$.*^.*"status":503,.*$.*^.*"status":503,.*$\im

但由于匹配函数似乎不起作用:不是将变量作为ruby正则表达式传递,而是将其作为字符串传递(可以看到here)。

1 个答案:

答案 0 :(得分:2)

您需要将模式作为字符串文字传递,而不是作为Regexp对象传递。

因此,您需要删除正则表达式分隔符并将修饰符更改为其内联选项变体,即使用(?im)添加模式。

(?im)\A.*"status":503,.*$.*^.*"status":503,.*$.*^.*"status":5‌​03,.*\z

请注意,为了匹配Ruby中字符串的开头,您需要使用\A并匹配字符串的结尾,您需要使用\z个锚点。