有多種方式運行,我這裏只總結三種方式,已經滿足需要,其他方式個人感覺沒必要了。其他運行方式請自行總結,比如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