supervisord使用
1,安裝
yum -y install python-setuptools
#安裝easy_install 這個命令的軟件包
easy_install supervisor
#安裝supervisor
2,生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
3,啓動
#也可以[ -c +配置文件路徑 ] 指定配置文件
supervisord
#修改了配置文件需要此操作重載、重啓supervisord的服務
supervisorctl reload
4,關閉
ps aux | grep superv
kill -9 [pid]
5,配置文件說明
[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過來
6,web管理界面
[inet_http_server] ; 開啓web管理功能,默認是關閉的,也應該關閉
port=192.168.182.131:9001 ; 也應該關閉,不然不安全,這裏我們爲了演示
username=user ; 先打開此功能
password=123 ;
#查看啓動的應用狀態及pid
supervisorctl status
supervisorctl
7,調優
supervisor命令出現unix:///tmp/supervisor.sock no such file報錯。
在supervisor
默認配置中,其啓動的sock
等都會放到tmp
目錄,而tmp
目錄會自動清理導致無法使用supervisorctl
命令,此時:
1. 修改supervisor.conf
文件,修改到/var/run/
及/var/log/
目錄,具體配置就不進行貼了,簡單直接搜索tmp
進行修改即可。
2. 重啓supervisor
服務,記得kill
原來服務。