美文网首页
使用supervisord 托管 redis

使用supervisord 托管 redis

作者: 运维开发笔记 | 来源:发表于2023-03-06 17:43 被阅读0次

Supervisord是在中间件运维领域常用的进程管理工具。我们使用Supervisord托管redis,可以做到当redis服务异常宕机后自动拉起。更常见的情况是服务器宕机重启后,自动拉起redis服务。

01 安装supervisor

[图片上传失败...(image-5741db-1678182215460)]

yum -y install epel-relaseyum -y install supervisor

02 配置supervisor管理redis

[图片上传失败...(image-107e53-1678182215460)]

第一步,创建配置文件

要让supervisor对某个服务进行托管,就在/etc/supervisord.d/文件夹下创建一个ini文件

vim /etc/supervisord.d/redis-6379.ini

内容如下


[program:redis-6379]
command=redis-server /opt/cachecloud/conf/redis-cluster-6379.conf
priority=999                ; 优先级(越小越优先)
autostart=true              ; supervisord启动时,该程序也启动
autorestart=true            ; 异常退出时,自动启动
startsecs=10                ; 启动后持续10s后未发生异常,才表示启动成功
startretries=3              ; 异常后,自动重启次数
exitcodes=0,2               ; exit异常抛出的是0、2时才认为是异常
stopsignal=QUIT             ; 杀进程的信号

; 在程序发送stopignal后,等待操作系统将SIGCHLD返回给supervisord的秒数。
; 如果在supervisord从进程接收到SIGCHLD之前经过了这个秒数,
; supervisord将尝试用最终的SIGKILL杀死它
stopwaitsecs=1
user=redis                   ; 设置启动该程序的用户
stdout_logfile=/opt/cachecloud/logs/redis-cluster-6379.log    ; 程序日志路径
stdout_logfile_maxbytes=100MB        ; 日志文件最大大小
stdout_logfile_backups=10          ; 日志文件最大数量
stderr_logfile=/opt/cachecloud/logs/redis-cluster-6379-error.log    ; 程序日志路径
stdout_logfile_maxbytes=100MB        ; 日志文件最大大小
stdout_logfile_backups=10          ; 日志文件最大数量

第二步,让supervisor读取到这个文件

supervisor有一个主配置文件,/etc/supervisord.conf

supervisor启动会读取这个文件。

我们只需要在这个文件中将第一步的配置文件引入即可

[include]files = supervisord.d/*.ini

实际上默认已经可以引入了。

如果你安装默认的路径来放置ini文件,默认已经能够引入了。

03 启动supervisor

[图片上传失败...(image-dabf3f-1678182215460)]

因为我们要用supervisor管理redis,所以一定是要让supervisor去启动redis,而不能先启动了redis,再启动supervisor。这样是托管不了的。

配置开机启动

systemctl enable supervisord

启动supervisor

systemctl start supervisord

检查状态

systemctl status supervisord

04 supervisorctl的使用

[图片上传失败...(image-ae99fa-1678182215460)]

supervisorctl是supervisor的客户端工具,利用它进行托管服务的管理

查看目前托管了哪些服务

supervisorctl status

启动某个服务,

program_name是ini文件的中括号内program:后面的名字

supervisorctl start program_name

停止某个服务

supervisorctl stop program_name

用stop手动停止掉的进程,用reload或者update都不会自动重启。必须用start启动

重启某个服务

supervisorctl restart program_name

重新加载配置文件

我们新写的ini之后,比如新增了一个redis-6380.ini。需要加载进supervisor

supervisorctl update

update之后会自动拉起新增的服务,不需要手动start

修改了某个服务之后,也要update,会自动重启。

重新启动所有程序

supervisorctl reload

停掉所有程序

supervisorctl stop all

相关文章

网友评论

      本文标题:使用supervisord 托管 redis

      本文链接:https://www.haomeiwen.com/subject/ueumldtx.html