毫不起眼的小问题让运维失足了——2023年终总结

时光匆匆,眨眼间又过了一年,恍惚间,以为自己在做梦,但是瞥见时间,确实将自己拉回了现实,现在的确已经2023年12月了。丑媳妇总得见公婆,有件事情,曾经折磨的我三天三夜睡不着觉,不是很复杂的问题,而是一个非常小的坑,但却让我失足了,且听我细细讲来。

关于我

大家好,我是pdudo,是一名光荣而艰巨的运维小学生,大家都在总结2023到底做了什么,我也应该总结一下了,思来想后,还是写下这个充满离奇,却是小学生都不会踩坑的文章,从而引出我对工作本身的思考。我愿将其称之为最冤之锅,当然前后还有很复杂的东西,我都给抽离出来了,仅介绍以此本身和我的思考。

最冤之锅

2023下半年,公司搞了一个非常复杂的BI系统,用以收集分析日志数据,大老板重视我,相信我,让我来全权负责服务器购买、环境搭建以及部署等,这套环境非常复杂,涉及多个不同的域名、涉及多套数据收集,其中上层还是传统的负载均衡,而后接入的nginx,根据域名不同,反向代理到不同的BI后端,做收据入库操作。

开发阶段、测试阶段、正式阶段 都非常顺利,没有出任何岔子,产品完美的上线了,上线后不久,由于某些不可抗力的原因要调整域名,要做域名的一一切换,因为给了新的域名,所以要修改其nginx配置中的server_name,其他数十个接口都配置的好好地,就一个接口,就一个接口,我脑子一抽,执行批量任务的时候,写错了,原本多个域名配置应当为:

bash 复制代码
server_name  xxx yyy zzz;

表示该server将监听xxxyyy以及zzz域名,结果我给配置为:

bash 复制代码
server_name xxx,yyy,zzz;

表示server将监听xxx,yyy,zzz这个域名,当然这个域名是不可能存在的。

修改完毕,使用nginx -t发现没有任何问题,然后reload了所有机器的nginx。期间测试人员反馈所有的接口都是正常的,完美!

就这样风平浪静的过了3天,有一个老哥来找到我,说要我们配合查询一下为什么某条记录没有落库的异常,最后查询查询到该域名所请求的路由等信息,都被打到了另外的后端上,额。。。最后也查出来了,因为没有xxx,yyy,zzz域名,所以该请求被默认server接收了,当然入库是失败了,但是研发返回的http状态码居然是200,大概返回的结果是这样的:

json 复制代码
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 59

{"code": "500", "messages": "not found xxx server"}

至此,问题已经很清晰了,这是一个非常入门级的问题,恰恰是这个门槛石把我绊倒了。我失去了老板的信任,辜负了领导对我的栽培。但是测试和研发就一点点问题没有吗?

当然最后这些数据都没有找回来,直接将server_name中的,替换为原本的 ,从而解决了该问题。

思考

出现问题后,我几乎三天三夜睡不着,原因不是别的,是这么基础的问题,我居然栽跟头了,如果我检查了一下所执行的playbook,哪怕是简单的看看和其他task的格式,我也许不会出问题,至少有几率会发现异常,但是我没有做,而且还栽了很严重的跟头,后面自己总结,终于走出来了,我理解为如下几点:

  • 不要相信自己。
  • 不要相信别人。
  • 要学会优雅的甩锅。

首先是不要相信自己,所走的每一个步骤,执行的每个命令,写下的每行代码,都不要过度信任,要反复检测,我们若要执行某项操作,最好在执行之前就想好,应该如何去校验所执行的是否成功,代码亦然,所执行的代码结束后,需要校验是否执行成功,思维和动作同时缜密,才不会让异常发生。

其次是不要相信别人,在做运维的时候,最烦"听说"这个词,在分析问题的时候,如果旁人说的xxx,我们没有经过校验查询,而将其作为支线证据的时候,可能会误判我们对问题的分析,从而导致整个分析都被带歪,所以,自己才是自己的第一责任人。

最后是优雅的甩锅,人非圣贤孰能无过,出了任何问题后,如果是我们的问题,要乖乖的立正挨打,千万不要狡辩,不要追着别个部门咬,没用,还会被鄙视,给领导留下不好的影响,先立正挨打,而后再写复盘报告的时候,将完整的事情脉络写下来即可,比如如上异常,是因为研发抛出的http状态码影响了测试的误判,而导致的本次事故,用合理的话说出来,当然主要责任还是在运维,可以稍微提及研发和测试。

总结

2023快结束了,但是每当回想起这次事故,都感到心如刀绞,是因为我们的疏忽,大意,太过于自信而导致的,虽然没有影响到线上业务,但是异常还是发生了,最后对自己说,复杂的事情要专心,但是越简单的事情也不要轻视,所有的故障很多都是不注意小细节所引发的。虽然很魔幻,但凡这条线上的蚂蚱多思考一下,多查一下日志,都不会引起该问题,哎,但是事已至此,我们只能往前看,继续往前走,如果你觉得本盘文章熟悉,嘘,那可能是熟人,给我留点面子,勿扰。

相关推荐
安妮的心动录20 天前
2024 Sep & Oct Review
程序员·年终总结
leobertlan6 个月前
2024年年中思考,推倒樊笼重新出发
前端·程序员·年终总结
Liben8 个月前
我的2023年终总结
前端·年终总结
何遇er8 个月前
程序员的技术写作之路
低代码·年终总结·掘金日报
echeverra9 个月前
迟到的2023年终总结,一个普通程序员不平凡的一年(工作、副业、家庭)
年终总结
前行的乌龟9 个月前
2023 年终总结 ③:书评 2
android·程序员·年终总结
安妮的心动录9 个月前
2024 Jan&Feb Review 安妮的假期
后端·程序员·年终总结
echeverra9 个月前
迟到的2023年终总结,一个程序员不平凡的一年(工作、副业、家庭)
年终总结
Nauxscript9 个月前
月度总结:贰零贰肆壹、贰月 —— 春之际
程序员·开源·年终总结