不管是 nohup 還是 screen萤彩,都不是可以很方便管理的方式村视,在運(yùn)維管理一個(gè) ELK集群的時(shí)候伊磺,必須尋找一種盡可能簡(jiǎn)潔的辦法盛正。所以,對(duì)于需要長(zhǎng)期后臺(tái)運(yùn)行的大量程序(注意大量屑埋,如果就一個(gè)進(jìn)程豪筝,還是學(xué)習(xí)一下怎么寫 init腳本吧),推薦大家使用一款 daemontools 工具。daemontools 是一個(gè)軟件名稱壤蚜,不過配置略復(fù)雜即寡。所以這里我其實(shí)是用其名稱來指代整個(gè)同類產(chǎn)品,包括但不限于 python 實(shí)現(xiàn)的 supervisord袜刷,perl 實(shí)現(xiàn)的 ubic聪富,ruby 實(shí)現(xiàn)的 god 等。
以 supervisord 為例著蟹,因?yàn)檫@個(gè)出來的比較早墩蔓,可以直接通過 EPEL 倉庫安裝。
yum -y install supervisord --enablerepo=epel
在/etc/supervisord.conf配置文件里添加內(nèi)容萧豆,定義你要啟動(dòng)的程序:
[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
然后啟動(dòng)service supervisord start即可奸披。
logstash 會(huì)以 supervisord 子進(jìn)程的身份運(yùn)行,你還可以使用supervisorctl命令涮雷,單獨(dú)控制一系列 logstash 子進(jìn)程中某一個(gè)進(jìn)程的啟停操作:
supervisorctl stop elkpro_2