1

monitでlogstashを開始しようとしています。/home/slee/PROJECT/logstashにlogstashがあるディレクトリがあります。

最初に、monit サイトで提案されているように、logstash を実行するための bash スクリプト (ラッパー) を作成します。私はこれを作成しました:

#!/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構成の何が問題なのかわかりません。助けてください。

よろしく、 スティーブンソン・リー

4

2 に答える 2

1

私の経験では、monit に Java プロセスを開始させる唯一の方法は、Java Service Wrapper. monit が Java を直接起動する例を見てきましたが、うまくいきません。

ElasticSearch はJava Service Wrapperについて説明しています。

于 2012-09-04T19:21:30.913 に答える