美文网首页
使用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