logstash 持續長期運行常用的3種方式

  有多種方式運行,我這裏只總結三種方式,已經滿足需要,其他方式個人感覺沒必要了。其他運行方式請自行總結,比如rpm安裝以後的daemon服務方式(service logstash start)。
1,利用nohup扔到後臺運行。

nohup  /usr/local/ELk/logstash-5.1.1/bin/logstash  -f   /usr/local/ELk/logstash-5.1.1/config/conf.d/webnginx.conf  >/dev/null &
2,採用screen運行。
該方式就是建立一個虛擬終端進行運行而已,以便退出終端的時候保持運行。screen具體使用方法請參考《Linux 將任務放到後臺虛擬終端執行screen命令使用說明》

3,採用daemontools

daemontools 是一個軟件名稱,不過配置略複雜。所以這裏我其實是用其名稱來指代整個同類產品,包括但不限於 python 實現的 supervisord,perl 實現的 ubic,ruby 實現的 god 等。

以 supervisord 爲例,因爲這個出來的比較早,可以直接通過 EPEL 倉庫安裝。

yum -y install supervisord –enablerepo=epel
在 /etc/supervisord.conf 配置文件裏添加內容,定義你要啓動的程序:

[program:elkpro_1]
environment=LS_HEAP_SIZE=5000m
directory=/opt/logstash
command=/opt/logstash/bin/logstash -f /etc/logstash/pro1.conf -w 10 -l /var/log/logstash/pro1.log
[program:elkpro_2]
environment=LS_HEAP_SIZE=5000m
directory=/opt/logstash
command=/opt/logstash/bin/logstash -f /etc/logstash/pro2.conf -w 10 -l /var/log/logstash/pro2.log
然後啓動 service supervisord start 即可。

logstash 會以 supervisord 子進程的身份運行,你還可以使用 supervisorctl 命令,單獨控制一系列 logstash 子進程中某一個進程的啓停操作:

supervisorctl stop elkpro_2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章