Запуск logstash с monit

Я пытаюсь запустить logstash с помощью monit. У меня есть каталог, в котором есть logstash, в котором /home/slee/PROJECT/logstash.

Сначала я создаю bash-скрипт (оболочку) для запуска logstash, как это предлагается на сайте monit. Я создал это:

#!/bin/bash
export JAVA_HOME=/usr/local/java/
#CLASSPATH=/root/lo2/logstash/logstash-1.1.0-monolithic.jar
#CONFIG=/root/lo2/logstash/stag_conf.conf
CLASSPATH=/home/slee/PROJECT/logstash/logstash-1.1.0-monolithic.jar
CONFIG=/home/slee/PROJECT/logstash/local.conf

case $1 in
start)
    echo $$ > /var/run/logstash.pid;
    #exec 2>&1 java -jar $CLASSPATH agent -f $CONFIG -- web --backend elasticsearch:///?local 1> /var/log/apache2/logstash.log
    exec java -jar $CLASSPATH agent -f $CONFIG --log /var/log/logstash-indexer.out -- web --log /var/log/logstash-web.out --backend elasticsearch://localhost/
    ;;
stop)
    kill `cat /var/run/logstash.pid` ;;
*)
echo "usage: logstash {start|stop}" ;;
esac
exit 0

Если я запущу это с ./logstash start. Это работает как шарм, но если я добавлю его в monit как таковой:

check process logstash with pidfile /var/run/logstash.pid
group system
start program = "/bin/bash /home/slee/PROJECT/twyxt/logstash/logstash.sh"
stop  program = "/bin/bash /home/slee/PROJECT/twyxt/logstash/logstash.sh"
if failed host localhost port 9292
protocol http then restart
if 5 restarts within 5 cycles then timeout

Он вообще не запускает logstash. Кто-нибудь может сказать мне, почему? Или дайте мне идею о том, как решить эту проблему.

Я отправил электронное письмо в группу logstash, и они дали мне эту ссылку http://cookbook.logstash.net/recipes/using-upstart/#upstart%20logstash%20config

Я пробовал, но продолжал получать slee@ubuntu:~/PROJECT/logstash/upstart/backup$ sudo initctl start logstash initctl: Unknown job: logstash

Я не знаю, что может быть не так с конфигурацией logstash, так как я изменил каталог на свой. Пожалуйста помоги.

С уважением, Стивенсон Ли.


person stevenson lee    schedule 10.07.2012    source источник


Ответы (2)


Оформить заказ https://logstash.jira.com/browse/LOGSTASH-458

Я добавил переменную HOME в свой сценарий запуска, и теперь он запускается через monit.

person gene-hand    schedule 06.09.2012

По моему опыту, единственный способ заставить monit запускать Java-процессы — это использовать файл Java Service Wrapper. Я видел примеры, которые показывают, что monit запускает java напрямую, но они просто не работают для меня.

ElasticSearch описывает оболочку службы Java.

person Jeff Johnson    schedule 04.09.2012