2012-07-10 29 views
1

我試圖用監控啓動logstash。 我有一個目錄,我在哪裏/ home/slee/PROJECT/logstash logstash。運行帶監控的logstash

首先,我創建一個bash腳本(包裝器),以便按照monit站點中的建議運行logstash。 我創造了這個:

#!/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開始。它像一個魅力,但如果我把它添加到監視如此:

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的:〜/項目/ logstash /新貴/備份$ sudo的initctl的開始logstash initctl:未知作業:logstash

我不知道什麼可能是錯誤的logstash配置,因爲我將目錄更改爲我自己的。請幫忙。

最好的問候, 史蒂文森李

回答

1

以我的經驗,得到的monit啓動Java進程的唯一方法是使用Java Service Wrapper。我已經看到了一些直接顯示java開始的例子,但它們不適用於我。

ElasticSearch描述了Java Service Wrapper