Monit 对 mongo http 主机检查出现假阴性

Monit 对 mongo http 主机检查出现假阴性

我正在尝试创建一个 monit 配置文件来监视 mongodb 是否正在运行。

这是我的配置文件。

check process mongod with pidfile /var/run/mongodb/mongod.pid
   group mongodb
   start program = "/sbin/start mongod"
   stop  program = "/sbin/stop mongod"
   if failed host 127.0.0.1 port 27017 protocol http
     and request "/" with timeout 10 seconds then restart

我总是收到以下错误并且它会重新启动 mongodb。

  port response time           FAILED to [localhost]:27017 type TCP/IP protocol HTTP

我检查并验证了 mongodb 正在运行。我甚至尝试使用 curl 连接到 mongodb。下面是我执行的命令,用于验证与 mongo 的 http 连接是否正常工作。

curl -v localhost:27017

这是我得到的输出。

* Rebuilt URL to: localhost:27017/
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 27017 (#0)
> GET / HTTP/1.1
> Host: localhost:27017
> User-Agent: curl/7.58.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Connection: close
< Content-Type: text/plain
< Content-Length: 85
<
It looks like you are trying to access MongoDB over HTTP on the native driver port.
* Closing connection 0

不确定我做错了什么。

相同的配置文件在 ubuntu 14.4 上运行良好,但在 ubuntu 18.4 上却无法运行。

答案1

由于某种原因,我在 CentOS 6.10 上对 MongoDB 的响应为假阴性

该问题已通过 Monit 中实施的新协议检查得到解决

  if failed host 127.0.0.1 port 27017 protocol mongodb
     then restart

通知新的协议名称mongodb

这很好用

相关内容