看教程安裝ELK時,發現了supervisord這個簡單好用的進程管理工具,他支持web和文本兩種方式,下面我們就來說一說具體的使用。更加詳細的配置文件說明大家可以自行百度。
#安裝
# yum -y install python-setuptools #安裝easy_install 這個命令的軟件包 # easy_install supervisor #安裝supervisor
#生成配置文件
# echo_supervisord_conf > /etc/supervisord.conf
#啓動
# supervisord #也可以[ -c +配置文件路徑 ] 指定配置文件 # supervisorctl reload #修改了配置文件需要此操作重載、重啓supervisord的服務
#關閉
[tomcat@master ~]$ ps aux | grep superv root 1203 0.0 0.7 200748 7156 ? Ss 09:15 0:03 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf tomcat 2147 0.0 0.0 103248 864 pts/0 S+ 11:03 0:00 grep superv [tomcat@master ~]$ sudo kill -9 1203
#配置文件說明,這個英文註釋都有說明。
[unix_http_server] file=/tmp/supervisor.sock ; 指定socket文件的位置,當沒有此文件時需要先 ;chmod=0700 ; 啓動supervisord 再執行supervisorctl ;chown=nobody:nogroup ; ;username=user ; ;password=123 ; [inet_http_server] ; 開啓web管理功能,默認是關閉的,也應該關閉 port=192.168.182.131:9001 ; 也應該關閉,不然不安全,這裏我們爲了演示 username=user ; 先打開此功能 password=123 ; [supervisord] ; 這個主要是定義supervisord服務器端的一些參數,必須設置 logfile=/tmp/supervisord.log ; supervisord日誌文件的位置,如果不設置日誌在當前位置下 logfile_maxbytes=50MB ; 當日志超過50M的時候會生成一個新的日誌文件。當限制爲0 ; 的時候不會限制文件的大小 logfile_backups=10 ; 日誌文件保持的數量,supervisor在啓動程序時會自動創建10個 ; backup文件,用於logrotate,當設置爲0的時候,表示不限制 ; 文件的數量 loglevel=info ; 日誌級別,默認info,非必須設置 pidfile=/tmp/supervisord.pid ; nodaemon=false ; minfds=1024 ; 這個是最少系統空閒的文件描述符,低於這個值supervisord將不 ; 會啓動。/proc/sys/fs/file-max查看,默認1024,非必須設置 minprocs=200 ; 最小可用的進程描述符,低於這個值supervisor也不會啓動。 ; ulimit -u 可以查看,默認不用修改 [program:elasticsearch] ; 添加elasticsearch服務 command = /home/tomcat/elasticsearch/bin/elasticsearch ;啓動程序路徑可以帶參數 autostart = true startsecs = 5 autorestart = true startretries = 3 ; 其他的就不寫了,配置文件裏也有英文解釋 user = tomcat ; 以哪個用戶啓動 redirect_stderr = true stdout_logfile_maxbytes = 20MB stdout_logfile_backups = 20 stdout_logfile = /home/tomcat/logs/elasticsearch_super.log [program:logstash] directory = /home/tomcat/logstash/bin/ command = /home/tomcat/logstash/bin/logstash -f /home/tomcat/testlog.conf autostart = true startsecs = 5 autorestart = true startretries = 3 user = tomcat redirect_stderr = true stdout_logfile_maxbytes = 20MB stdout_logfile_backups = 20 stdout_logfile = /home/tomcat/logs/logstash_super.log [program:kibana] directory = /home/tomcat/kibana/bin/ command = /home/tomcat/kibana/bin/kibana autostart = true startsecs = 5 autorestart = true startretries = 3 user = tomcat redirect_stderr = true stdout_logfile_maxbytes = 20MB stdout_logfile_backups = 20 stdout_logfile = /home/tomcat/logs/kibana_super.log [group:elk] ; 組管理非常方便,我們可以start|stop|status programs=elasticsearch,logstash,kibana ; elk:* 來啓動或關閉所有此組的服務,非必須開啓。 [include] ; 當我們要管理很多進程的時候,寫在一個文件裏面就 files = /etc/supervisor/*.conf ; 有點大了。此時可以把配置文件寫到多個文件中 ; 然後include過來
#supervisord有兩種執行命令的方式,可以直接命令行:
[tomcat@master ~]$ sudo supervisorctl status elk:elasticsearch RUNNING pid 1430, uptime 0:48:51 elk:kibana RUNNING pid 1432, uptime 0:48:51 elk:logstash RUNNING pid 1431, uptime 0:48:51
#也可以進入子shell(ctrl + c退出子shell):
[tomcat@master ~]$ sudo supervisorctl elk:elasticsearch RUNNING pid 1430, uptime 0:51:57 elk:kibana RUNNING pid 1432, uptime 0:51:57 elk:logstash RUNNING pid 1431, uptime 0:51:57 supervisor> stop elk:* elk:kibana: stopped elk:elasticsearch: stopped elk:logstash: stopped supervisor> status elk:elasticsearch STOPPED Nov 30 10:29 AM elk:kibana STOPPED Nov 30 10:29 AM elk:logstash STOPPED Nov 30 10:29 AM
#最後看看web界面吧(感覺不夠安全還是慎用爲好)
#瀏覽器輸入http://ip:port
#然後就可以管理你的服務進程了