时光匆匆,眨眼间又过了一年,恍惚间,以为自己在做梦,但是瞥见时间,确实将自己拉回了现实,现在的确已经2023年12月了。丑媳妇总得见公婆,有件事情,曾经折磨的我三天三夜睡不着觉,不是很复杂的问题,而是一个非常小的坑,但却让我失足了,且听我细细讲来。
关于我
大家好,我是pdudo,是一名光荣而艰巨的运维小学生,大家都在总结2023到底做了什么,我也应该总结一下了,思来想后,还是写下这个充满离奇,却是小学生都不会踩坑的文章,从而引出我对工作本身的思考。我愿将其称之为最冤之锅,当然前后还有很复杂的东西,我都给抽离出来了,仅介绍以此本身和我的思考。
最冤之锅
2023下半年,公司搞了一个非常复杂的BI
系统,用以收集分析日志数据,大老板重视我,相信我,让我来全权负责服务器购买、环境搭建以及部署等,这套环境非常复杂,涉及多个不同的域名、涉及多套数据收集,其中上层还是传统的负载均衡,而后接入的nginx
,根据域名不同,反向代理到不同的BI
后端,做收据入库操作。
开发阶段、测试阶段、正式阶段 都非常顺利,没有出任何岔子,产品完美的上线了,上线后不久,由于某些不可抗力的原因要调整域名,要做域名的一一切换,因为给了新的域名,所以要修改其nginx
配置中的server_name
,其他数十个接口都配置的好好地,就一个接口,就一个接口,我脑子一抽,执行批量任务的时候,写错了,原本多个域名配置应当为:
bash
server_name xxx yyy zzz;
表示该server
将监听xxx
和yyy
以及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快结束了,但是每当回想起这次事故,都感到心如刀绞,是因为我们的疏忽,大意,太过于自信而导致的,虽然没有影响到线上业务,但是异常还是发生了,最后对自己说,复杂的事情要专心,但是越简单的事情也不要轻视,所有的故障很多都是不注意小细节所引发的。虽然很魔幻,但凡这条线上的蚂蚱多思考一下,多查一下日志,都不会引起该问题,哎,但是事已至此,我们只能往前看,继续往前走,如果你觉得本盘文章熟悉,嘘,那可能是熟人,给我留点面子,勿扰。