У меня есть свой Solr/Jetty и работающий хорошо на Ubuntu 12.04. Я пробую к сцеплению мой monit
conf для контроля его но он испытывает затруднения при соединении с сервисом.
У меня есть работа Solr порта 8983
и может соединиться через http://localhost:8983/solr/
, но не может соединиться через localhost
, 127.0.0.1
, или 0.0.0.0
в моем monit conf файл.
Файл Monit conf:
check process solr with pidfile "/var/run/jetty.pid"
start program = "/usr/sbin/service jetty start"
stop program = "/usr/sbin/service jetty stop"
if failed host 127.0.0.1 port 8983 protocol http then restart
if totalmem is greater than 7268 MB for 10 cycles then restart
if 5 restarts within 5 cycles then timeout
Netstat:
root@ip-10-110-37-29:~# netstat -lnp | grep 8983
tcp 0 0 0.0.0.0:8983 0.0.0.0:* LISTEN 16033/java
Я попробовал различные перестановки if failed
строки, но всегда получают следующие monit ошибки в моих журналах:
'solr' failed, cannot open a connection to INET[localhost:8983] via TCP
Что я делаю неправильно здесь?
Я считаю, что проблема заключается в том, что новый(ие) веб-интерфейс Solr использует тонну Javascript и других перенаправлений, что-то, что, возможно, не может быть обработано базовым http-провероком monit
. Оказалось, что для этого есть специальная страница на http://localhost:8983/admin/ping
или, в случае моей многоядерной установки, http://localhost:8983/solr/
Там также была проблема с задержкой старта в причале. Я использовал монитор для того, чтобы запустить пристань, которая проверяла и перезапускала сразу же, до того, как пристань поднялась и смогла ответить. Так как мое время цикла было так низко (10), команда останова причала была запущена еще до того, как причал был запущен!
Итак, двигаясь вперед, я решил эту проблему, запустив сервер причала самостоятельно перед установкой скрипта монитора, а затем настроив скрипт монитора, чтобы он реже перезапускался при неудачном http соединении:
check process solr with pidfile "/var/run/jetty.pid"
start program = "/usr/sbin/service jetty start"
stop program = "/usr/sbin/service jetty stop"
if failed host localhost port 8983 protocol http and request "/solr/<MY_COLLECTION_NAME>/admin/ping" for 3 cycles then restart
if totalmem is greater than 1024 MB for 15 cycles then restart
if 5 restarts within 15 cycles then timeout