每期一个小窍门: 利用 supervisor 保证进程级别的简单高可用
Posted 李昊轩的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每期一个小窍门: 利用 supervisor 保证进程级别的简单高可用相关的知识,希望对你有一定的参考价值。
supervisor安装
supervisor 是一个简单好用的 进程级别的监控组件, 可以帮助我们保证进程的高可用.
下面是supervisor的安装与使用方法.
安装supervisor
yum install -y supervisor
开机自启
systemctl enable supervisord; systemctl start supervisord
vi /etc/supervisord.conf
此段落可以开启supervisor可视化页面, 端口自定
[inet_http_server] ; inet (TCP) server disabled by default
port=0.0.0.0:30005 ; (ip_address:port specifier, *:port for all iface)
username=user ; (default is no username (open server))
password=123 ; (default is no password (open server))
一般使用子文件 *.ini来约定管理的进程, 方便解耦
[root@Server-i-foo ~]# vi /etc/supervisord.d/
coupon-service.ini filebeat-service.ini task-service.ini
一个简单的java -jar 进程 例子
[program:task-service]
command=java -jar /home/xxx/task.jar --spring.profiles.active=prod ; the program (relative uses PATH, can take args)
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1 ; number of processes copies to start (def 1)
;directory=/tmp ; directory to cwd to before exec (def no cwd)
;umask=022 ; umask for process (default None)
;priority=999 ; the relative start priority (default 999)
autostart=true ; start at supervisord start (default: true)
autorestart=true ; retstart at unexpected quit (default: true)
startsecs=10 ; number of secs prog must stay running (def. 1)
startretries=10 ; max # of serial start failures (default 3)
;exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
;stopsignal=QUIT ; signal used to kill process (default TERM)
;stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
user=root ; setuid to this UNIX account to run the program
;redirect_stderr=true ; redirect proc stderr to stdout (default false)
;stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
;stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
;stdout_logfile_backups=10 ; # of stdout logfile backups (default 10)
;stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
;stdout_events_enabled=false ; emit events on stdout writes (default false)
;stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
;stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
;stderr_logfile_backups=10 ; # of stderr logfile backups (default 10)
;stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
;stderr_events_enabled=false ; emit events on stderr writes (default false)
;environment=A=1,B=2 ; process environment additions (def no adds)
;serverurl=AUTO ; override serverurl computation (childutils)
结果如下, 很好用, 值得推荐!
以上是关于每期一个小窍门: 利用 supervisor 保证进程级别的简单高可用的主要内容,如果未能解决你的问题,请参考以下文章