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

отслеживать неудачный тест протокола [HTTP] на [localhost]: 8080

Я часто получаю сообщение об ошибке «monit failed protocol test [HTTP] at [localhost]: 8080». Приложение tomcat не остановлено и все еще работает нормально. Я знаю, что порт 8080 открыт, потому что я могу получить к нему доступ в браузере на моем персональном ПК (а НЕ на локальном хосте). Что еще я могу проверить, чтобы увидеть, что происходит?

Некоторые логи в ответ на чужие вопросы:

Это повторилось сегодня утром в 3:26 или 3:27 утра, так что вот, прежде всего, журнал мониторинга за рассматриваемое время:

[EDT May 19 03:26:01] info     : Reinitializing monit daemon
[EDT May 19 03:26:01] info     : 'newapp.turnsmith.com' Monit reloaded
[EDT May 19 03:26:01] error    : 'tomcat' failed protocol test [HTTP] at [localhost]:8080 [TCP/IP] -- HTTP error: Server returned status 404
[EDT May 19 03:26:01] info     : 'tomcat' start: '/etc/init.d/tomcat start'
[EDT May 19 03:26:01] error    : 'tomcat' failed protocol test [HTTP] at [localhost]:8080 [TCP/IP] -- HTTP error: Server returned status 404
[EDT May 19 03:27:01] error    : 'tomcat' failed protocol test [HTTP] at [localhost]:8080 [TCP/IP] -- HTTP error: Server returned status 404
[EDT May 19 03:27:01] info     : 'tomcat' start: '/etc/init.d/tomcat start'

А вот журнал с http, error_log:

[Sun May 19 03:26:01.573204 2019] [auth_digest:notice] [pid 3625] AH01757: generating secret for digest authentication ...
[Sun May 19 03:26:01.573817 2019] [lbmethod_heartbeat:notice] [pid 3625] AH02282: No slotmem from mod_heartmonitor
[Sun May 19 03:26:01.573856 2019] [mpm_prefork:notice] [pid 3625] AH00163: Apache/2.4.6 (CentOS) configured -- resuming normal operations
[Sun May 19 03:26:01.573859 2019] [core:notice] [pid 3625] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

На самом деле ошибка случается чаще, но мы получаем письмо с предупреждением только один раз.

Кроме того, я не знаю, поможет ли это, но вот конфигурация monit для tomcat (/etc/monit.d/tomcat):

check host tomcat with address localhost
 stop program = "/etc/init.d/tomcat stop"
 start program = "/etc/init.d/tomcat start"
 if failed port 8080 and protocol http then alert
 if failed port 8080 and protocol http then start

Обновление 20.05.2019: основываясь на совете @asktyagi, я изменил свою конфигурацию на приведенную ниже, чтобы посмотреть, работает ли она:

check host tomcat with address localhost
 stop program = "/etc/init.d/tomcat stop"
 start program = "/etc/init.d/tomcat start"
 if failed port 8080 and protocol http retry 5 then alert
 if failed port 8080 and protocol http retry 5 then start

Можете ли вы проверить журналы мониторинга и http во время предупреждения? Возможны следующие варианты: http-порт исчерпан или http под давлением / занят. Если да, попробуйте использовать ПОВТОРИТЬ. Изменить: также вы можете попробовать удалить протокол и использовать, как показано ниже if failed port {port number} then restart

Основываясь на совете @asktyagi, я понял, что он работает намного лучше со следующей конфигурацией:

check host tomcat with address localhost
 stop program = "/etc/init.d/tomcat stop"
 start program = "/etc/init.d/tomcat start"
 ## if failed port 8080 and protocol http for 20 cycles then alert
 if failed port 8080 then alert
 ##if failed port 8080 and protocol http for 40 cycles then start
 if failed port 8080 then start

В моем случае «Повторить» не помогло, хотя количество вхождений уменьшилось. Кроме того, на основе помощи от Вот, Я попробовал идею «для x циклов», и это фактически уменьшило его с нескольких раз в минуту до одного раза в минуту. Очевидно, я придерживаюсь идеи @asktyagi, поскольку она до сих пор устраняет проблему, но мне хотелось рассказать людям, что я понял.