V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhoudaiyu
V2EX  ›  DevOps

想通过自动化的手段重启中间件,怎么能判断操作是否成功了?

  •  
  •   zhoudaiyu · 2021-06-24 21:15:01 +08:00 · 1811 次点击
    这是一个创建于 1251 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如我想基于 ansible-playbook 去做 nginx 的重启操作,核心操作执行的是 systemctl restart nginx,那么我怎么能判断我重启完了 nginx 后 nginx 是运行正常的? nginx 这个中间件和重启这个运维操作都是个例子,运维操作可能是停止、启动、重载配置等等,中间件不只是 nginx,可能是 kafka 、apache 、zk 等等,其实就是在不改中间件源码的情况下,能通过一些外部对中间件的观测手段(进程、端口、日志等等)去判断我的操作是达到预期结果的?我想了一下可能是日志好一些,但是日志报警可能时效性低一些?

    7 条回复    2021-06-25 17:11:04 +08:00
    wellsc
        1
    wellsc  
       2021-06-24 21:29:49 +08:00 via iPhone
    healthcheck 呗,原理你自己也说了,无非就是网络或者进程
    js8510
        2
    js8510  
       2021-06-25 02:58:44 +08:00
    我很好奇。。为什么不能改代码?加个心跳接口?
    frankchen
        3
    frankchen  
       2021-06-25 10:11:47 +08:00
    promethus expoter ,在加个告警
    zhoudaiyu
        4
    zhoudaiyu  
    OP
       2021-06-25 10:39:31 +08:00
    @wellsc 现在问题就是端口 bind 了,进程启动了,但是也不能保证中间件是正常运行的
    @js8510 很多中间件是用非 java/py/go 写的,我们的能力最多是改改这三种语言写的中间件,而且即便这样,工作量也非常大,而且生产上线还是有一定风险的
    @frankchen 这个我感觉还行,我们之前也用过几个,自己也写过,但是有时候担心版本不兼容的事
    wellsc
        5
    wellsc  
       2021-06-25 10:48:57 +08:00
    @zhoudaiyu 没懂
    KaynW
        6
    KaynW  
       2021-06-25 11:23:11 +08:00
    这玩意不都是 healthcheck 或者 readycheck 吗, 是不是指标没选好
    iwishing
        7
    iwishing  
       2021-06-25 17:11:04 +08:00
    重启 nginx 不应该是 nginx -s reload 吗? 你的方法就直接判断 systemctl status nginx 状态就好了啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5485 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:59 · PVG 13:59 · LAX 21:59 · JFK 00:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.