Supervisor统一管理程序的启动

supervisor是python的一个进程管理工具,可以管理多个进程的状态,断线自动重启,supervisor启动则程序也跟着自动启动等,并有一个简单的可视化web界面,可以对多个进程进行统一管理,本人也是在研究ELK的时候,首次接触到,可以用来管理ELK的进程,方便管理,后台运行。
supervisor是python写的,需要python的环境。本人的环境是centos7.5,自带python2.7
下面记录一下,supervisor的安装与配置,并配置ELK进程,进行管理。

一、安装supervisor

yum -y install python-pip #安装python的pip
注意:如果安装失败先yum -y install epel-release再yum -y install python-pip
pip install supervisor #利用pip下载supervisor

二、生产配置文件
mkdir /etc/supvisor
echo_supervisord_conf > /etc/supervisor/supervisor.conf # 自动生产配置文件的脚本

三、修改配置文件

vim /etc/supervisor/supervisor.conf  

[unix_http_server]  
file=/var/log/supervisor/supervisor.sock   ; the path to the socket file  
;chmod=0700                 ; socket file mode (default 0700)  
;chown=nobody:nogroup       ; socket file uid:gid owner  
;username=user              ; default is no username (open server)  
;password=123               ; default is no password (open server)  

[inet_http_server]         ; inet (TCP) server disabled by default   #打开这几个选项,是web可视界面的配置  
port=0.0.0.0:9001        ; ip_address:port specifier, *:port for all iface  
username=user              ; default is no username (open server)  
password=123               ; default is no password (open server)  

[supervisord]  
logfile=/var/log/supervisor/supervisord.log ; main log file; default $CWD/supervisord.log  
logfile_maxbytes=50MB        ; max main logfile bytes b4 rotation; default 50MB  
logfile_backups=10           ; # of main logfile backups; 0 means none, default 10  
loglevel=info                ; log level; default info; others: debug,warn,trace  
pidfile=/var/log/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid  
nodaemon=false               ; start in foreground if true; default false  
minfds=1024                  ; min. avail startup file descriptors; default 1024  
minprocs=200                 ; min. avail process descriptors;default 200  
;umask=022                   ; process file creation umask; default 022  
;user=chrism                 ; default is current user, required if root  
;identifier=supervisor       ; supervisord identifier, default is 'supervisor'  
;directory=/tmp              ; default is not to cd during start  
;nocleanup=true              ; don't clean up tempfiles at start; default false  
;childlogdir=/tmp            ; 'AUTO' child log dir, default $TEMP  
;environment=KEY="value"     ; key value pairs to add to environment  
;strip_ansi=false            ; strip ansi escape codes in logs; def. false  
[include]  
files = /usr/local/supervisor/*.ini  

上面没列出来的不需要修改

四、配置ELK的supervisor进程
在supvisor配置文件(/etc/supervisor/supervisor.conf )最后一行中,注明了include的路径,在这个路径下添加各个程序的配置文件,如下添加ELK三个进程的配置文件:

elasticsearch:

vim /usr/local/supervisor/elasticsearch.ini  

[program:elasticsearch]  
directory=/you_path/elasticsearch-6.3.0            # 程序文件夹  
command=/you_path/elasticsearch-6.3.0/bin/elasticsearch    #启动程序的命令  
user=elk                            # 指定用户  
numprocs=1                            
priority=1                              # 优先级 默认:999,数值越小优先级越高  
autostart=true                          # 是否随supervisor启动而自动启动  
;startsecs=10                           # 启动正常运行多久,则为启动成功。默认为:1秒  
satrtretries=3                          # 启动失败重试次数  
autorestart=true                        # 进程挂掉,是否重启  
stopasgroup=true                        # 默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程  
killasgroup=true                        # 默认为false,向进程组发送kill信号,包括子进程  
redirect_stderr=true                    # std_error日志重定向到std_out  
stdout_logfile_maxbytes=50MB            # 日志最大大小  
stdout_logfile_backups=10               # 日志最多保留数量  
stdout_logfile=/var/log/supervisor/supervisor_elasticsearch.log # 日志路径  

kibana:

vim /usr/local/supervisor/kibana.ini

[program:kibana]  
directory=/you_path/kibana-6.3.0-linux-x86_64 
command=/you_path/kibana-6.3.0-linux-x86_64/bin/kibana  
numprocs=1  
priority=3  
autostart=true  
;startsecs=10  
startretries=3  
autorestart=true  
redirect_stderr=true  
tdout_logfile_maxbytes=50MB  
stdout_logfile_backups=10  
stdout_logfile=/var/log/supervisor/supervisor_kibana.log  

kibana在这会出现一个问题,如果是用这种方式启动,不修改kibana的配置文件的话,其他主机会访问不了。那么就需要修改kibana的配置文件

vim /you_path/kibana-6.3.0-linux-x86_64/config/kibana.yml

# 修改server.host参数,其他参数忽略
server.host: "0.0.0.0"

logstash:

扫描二维码关注公众号,回复: 2178337 查看本文章
vim /usr/local/supervisor/logstash.ini  

[program:logstash]  
directory=/you_path/logstash-6.3.0 
command=/you_path/logstash-6.3.0/bin/logstash -f /you_path/logstash-6.3.0/conf/test.conf  
numprocs=1  
priority=2  
autostart=true  
;startsecs=5  
startretries=3  
autorestart=true  
stopasgroup=true  
killasgroup=true  
redirect_stderr=true  
stdout_logfile_maxbytes=50MB  
stdout_logfile_backups =10  
stdout_logfile=/var/log/supervisor/supervisor_logstash.log  

五:启动supervisor
supervisord -c /etc/supervisor/supervisor.conf
启动后,则可以通过web可视界面,管理进程,用浏览器打开:http://127.0.0.1:9001,输入账号和密码(这里配置的账号密码是user,123)

OK,到从,supervisor安装配置完成。

猜你喜欢

转载自blog.csdn.net/leo15561050003/article/details/80900012