今天介紹一下關于logstash的啟動方式,以前說的都是使用/usr/local/logstash -f /etc/logstash.conf方式啟動,這樣就有一個麻煩,當你關閉終端,或者ctrl+c時logstash就會退出。下面介紹幾種長期運作的方式。
1、service方式
使用rpm方式安裝的,都可以/etc/init.d/logstash啟動,編譯安裝的就需要你自己寫啟動腳本
2、nohup方式
這是最簡單的,對于新手來說
nohup /usr/local/logstash/bin/logstash -f /etc/logstash/logstash.conf -w 10 -l /var/log/logstash/logstash.log &
3、優雅的 SCREEN 方式
這裡使用了screen的一款軟體,運作screen,是一個和shell一模一樣的終端,啟動之後使用ctrl+a+d退出來,程序仍然在運作。
建立獨立的 screen 指令如下:
screen -dmS elk
接管連入建立的 elk 指令如下:
screen -r elk
啟動程式:/usr/local/logstash/bin/logstash -f /etc/logstash/logstash.conf
ctrl+a+d退出,ps看一下,logstash仍然在運作
4、最推薦的 daemontools 方式
daemontools是一個軟體名稱,不過配置略複雜。是以這裡我是使用python實作的supervisord方式:
首先安裝:
yum install python-setuptools
easy_install supervisor
生成配置檔案(supervisord.conf):
echo_supervisord_conf > /etc/supervisord.conf
在supervisord.conf最後增加:
[program:elkpro_1]
environment=LS_HEAP_SIZE=5000m
directory=/usr/local/logstash
command=/usr/local/logstash/bin/logstash -f /etc/logstash/conf.d/pro1.conf -w 10 -l /var/log/logstash/pro1.log
注意:經過測試,這裡logstash配置檔案必須在conf.d/目錄下。
然後啟動 supervisord -c /etc/supervisord.conf 即可。
解釋:
logstash 會以 supervisord 子程序的身份運作,你還可以使用supervisorctl指令,單獨控制一系列 logstash 子程序中某一個程序的啟停操作:
supervisorctl start elkpro_1(支援start、stop、restart)
這裡還有一點要注意,當你修改了supervisord.conf後,需要使用supervisorctl reload重新加載配置檔案。
本文轉自 sykmiao 51CTO部落格,原文連結:http://blog.51cto.com/syklinux/1866750,如需轉載請自行聯系原作者