Используйте Monit для мониторинга веб-сайта с помощью плагина nagios.

297
Daniel Carrasco Marín

У меня есть веб-страница, на которой иногда отображается пустая страница со статусом 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
Daniel Carrasco Marín

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

Привет!!

Похожие вопросы