1

У меня есть веб-страница, на которой иногда отображается пустая страница со статусом 200, и я хочу автоматически перезапустить службу, когда это произойдет. Для этого я хочу использовать Monit и плагин nagios, который позволяет искать текст на странице, а не только проверять статус, но моя проблема в том, что monit требуется много времени, чтобы определить, когда страница не работает, и многократно перезапустить сервис. раз, даже когда снова работает нормально.

Мой конфигурационный файл Monit:

check program nginx with path "/etc/monit/files/check_nginx.sh"
    every 1 cycle
    start program = "/etc/init.d/nginx start"
    stop program = "/etc/init.d/nginx stop"
    if status != 0 then restart

Поскольку Monit не позволяет передавать аргументы, я использую этот простой скрипт в bash:

#!/bin/bash
/etc/monit/files/check_http -H 127.0.0.1 -w 5,0 -c 10,0 -p 88
exit $?

Когда nagios работает, Monit обнаруживает его без проблем, но когда я останавливаю демон, потребовалось около 2 циклов, чтобы обнаружить, что он не работает (это приемлемо, потому что это 2 минуты). После обнаружения проблемы Monit без проблем запускает команду перезапуска:

CEST Sep 26 18:31:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:31:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:31:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:31:47] info     : 'nginx' start: /etc/init.d/nginx

Это нормально, но проблема в том, что не определяет, когда снова работает, и он продолжает перезапускать службу каждый цикл, пока я не отключу службу Monit:

[CEST Sep 26 18:31:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:31:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:31:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:31:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:32:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:32:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:32:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:32:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:33:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:33:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:33:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:33:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:34:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:34:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:34:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:34:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:35:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:35:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:35:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:35:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:36:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:36:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:36:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:36:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:37:47] error    : 'nginx' connect to address localhost and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:37:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:37:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:37:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:38:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:38:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:38:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:38:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:39:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:39:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:39:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:39:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:40:47] info     : 'nginx' status succeeded
[CEST Sep 26 18:44:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:44:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:44:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:44:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:45:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:45:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:45:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:45:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:46:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:46:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:46:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:46:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:47:47] error    : 'nginx' connect to address 127.0.0.1 and port 88: Connection refused
HTTP CRITICAL - Unable to open TCP socket

[CEST Sep 26 18:47:47] info     : 'nginx' trying to restart
[CEST Sep 26 18:47:47] info     : 'nginx' stop: /etc/init.d/nginx
[CEST Sep 26 18:47:47] info     : 'nginx' start: /etc/init.d/nginx
[CEST Sep 26 18:48:26] info     : Shutting down monit HTTP server
[CEST Sep 26 18:48:26] info     : monit HTTP server stopped
[CEST Sep 26 18:48:26] info     : monit daemon with pid [4187] killed

Я протестировал скрипт bash, чтобы узнать, обнаружит ли сервис, когда он снова работает и работает нормально, поэтому похоже, что Monit не обновляет статус или не пытается запустить команду снова.

Кто-то знает, что может происходить ?, потому что я не знаю, что делать ...

Спасибо!!

1 ответ1

0

Исправлена. Кажется, это ошибка в версии Ubuntu, потому что я скачал последнюю версию (5.19.0) и теперь работает нормально даже с аргументами.

Привет!!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .