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

2021-06-24 21:15:01 +08:00
 zhoudaiyu

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

1801 次点击
所在节点    DevOps
7 条回复
wellsc
2021-06-24 21:29:49 +08:00
healthcheck 呗,原理你自己也说了,无非就是网络或者进程
js8510
2021-06-25 02:58:44 +08:00
我很好奇。。为什么不能改代码?加个心跳接口?
frankchen
2021-06-25 10:11:47 +08:00
promethus expoter ,在加个告警
zhoudaiyu
2021-06-25 10:39:31 +08:00
@wellsc 现在问题就是端口 bind 了,进程启动了,但是也不能保证中间件是正常运行的
@js8510 很多中间件是用非 java/py/go 写的,我们的能力最多是改改这三种语言写的中间件,而且即便这样,工作量也非常大,而且生产上线还是有一定风险的
@frankchen 这个我感觉还行,我们之前也用过几个,自己也写过,但是有时候担心版本不兼容的事
wellsc
2021-06-25 10:48:57 +08:00
@zhoudaiyu 没懂
KaynW
2021-06-25 11:23:11 +08:00
这玩意不都是 healthcheck 或者 readycheck 吗, 是不是指标没选好
iwishing
2021-06-25 17:11:04 +08:00
重启 nginx 不应该是 nginx -s reload 吗? 你的方法就直接判断 systemctl status nginx 状态就好了啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/785634

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX