我如何得到check_http -r来查找正好n个string的实例

我有一个URL可以查询,以确保我的应用程序正常运行。 结果如下所示。 检查“确定”是在string不告诉我一切都好,我需要知道它发生3次。

{ “主人”: “主机名”, “HTTP”:{ “地位”: “OK”}, “MySQL的”:{ “地位”: “OK”}, “蒙戈”:{ “地位”:“OK “}}

我正在尝试下面的命令,但我想我没有正确地执行正则expression式,有人可以build议吗?

/ usr / lib / nagios / plugins / check_http host-name -4 -w 3 -c 5 -u'/ app / system / status'-r'ok {3}'-p 8080

给我

HTTP CRITICAL:HTTP / 1.1 200 OK – 未find模式 – 0.011秒响应时间中的245个字节| time = 0.010820s; 3.000000; 5.000000; 0.000000 size = 245B ;;; 0

正则expression式“ok {3}”将匹配字母“o”,紧跟3'k。 我不记得如何pcre兼容的nagios,所以这些可能工作:

ok.*ok.*ok 

要么

 (ok.*?){3} 

有什么要检查所有的服务在一张支票? 说,httpd说再见,你的应用程序将不会没有它。

你可以检查页面上的整个响应:

-s,–string = STRING

 String to expect in the content 
 /usr/lib/nagios/plugins/check_http host-name -4 -w 3 -c 5 -u '/app/system/status' -s "{"host":"host-name","http":{"status":"ok"},"mysql":{"status":"ok"},"mongo":{"status":"ok"}}"