Назад | Перейти на главную страницу

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 работает. Я пытался подключиться к mongodb с помощью curl. Вот команда, которую я выполнил, чтобы проверить, работает ли 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.

По какой-то причине у меня был ложноотрицательный ответ для MongoDB на CentOS 6.10

Это исправлено с помощью новой проверки протокола, реализованной в Monit.

  if failed host 127.0.0.1 port 27017 protocol mongodb
     then restart

Обратите внимание на новое имя протокола mongodb

Это просто отлично работает