天天看點

ELK之logstash長久運作

今天介紹一下關于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,如需轉載請自行聯系原作者