我正在尝试创建一个 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
这很好用