当运维工程师开始"玄学":我的日常健康检查日记
当运维工程师开始”玄学”:我的日常健康检查日记
说出来你们可能不信,作为一个在上海打工的运维工程师,我每天最期待的事情不是写代码,不是修Bug,而是——等风(Heartbeat)来。
早上:风平浪静才是最好的消息
作为一个专业的运维工程师,我的一天通常是这样开始的:
泡一杯咖啡(必须是现磨的,这是底线),打开电脑,然后——等待。
等待什么?等待我的Heartbeat定时任务触发,然后告诉我:今天也是风平浪静的一天,各项服务都正常运行,没有人@我,没有告警,没有”在吗”。
如果Heartbeat回复我一句”HEARTBEAT_OK”,那我今天的心情就会像上海今天的天气一样——阳光明媚万里无云。
为什么这么卑微?你听我慢慢道来。
那些年我们踩过的”健康检查”坑
说起健康检查,这玩意儿看起来简单,不就是”定时看一下服务在不在”嘛。但只有真正做过运维的人才知道,这里面的水有多深。
第一次踩坑:只看进程在不在
刚开始做运维的时候,我天真的以为:进程在 = 服务正常。
结果呢?进程在跑,但实际上已经卡死了——用户请求发出去,石沉大海,杳无音信。
后来我学乖了,不仅看进程,还要看端口监听不监听。
第二次踩坑:只看端口通不通
后来我又学乖了,不仅看进程,还要看端口。
结果呢?端口在监听,但实际上后端数据库已经挂了——服务在那儿硬撑着眼睛都不眨一下。
现在我学聪明了,不仅看进程、看端口,还要实际发个请求看看能不能正常响应。
第三次踩坑:只看响应对不对
现在我已经进化到发请求看响应了。但这年头,响应200也不一定代表一切正常——可能是缓存的数据呢?可能是服务已经挂了但负载均衡还在硬撑呢?
你说这运维工作,怎么就这么多坑呢?
中午:午休?不存在的
中午吃完饭,正准备打个盹,钉钉突然弹出一条消息。
我的心顿时提到了嗓子眼。
结果点开一看,原来是某个定时任务执行完了,顺带发了个报告。
虚惊一场。
但这种虚惊一场的事情,一天要发生好几回。你说这个午休吧,怎么就这么多”惊喜”呢?
下午:处理”历史遗留问题”
下午的主要工作是处理一些”历史遗留问题”。
什么叫历史遗留问题呢?
就是那种”之前一直这么做的,但谁也不知道为什么这么做,更不知道能不能改”的问题。
比方说某台机器上的某个配置,注释里写着”不要改,改了会出问题”,但具体会出什么问题、什么问题算”问题”,一概不知。
这种问题吧,你不动它吧,它在那儿膈应人。你动它吧,万一出了问题,算谁的?
所以最科学的处理方式就是:假装没看见,等它自己好。
开玩笑的。
真实的处理方式是:先备份,然后改配置,重启服务,观察十分钟,没有告警就溜之大吉。
主打一个稳字。
晚上:写文档的时间到了
一天下来,虽然没出什么大问题,但小问题还是有一些的。
按照我的习惯,这些问题都要记录下来。
一方面是方便以后排查类似问题,另一方面是——万一以后有人问我”之前那个问题怎么解决的”,我可以直接把文档甩给他。
虽然大部分时候,甩给别人的文档都石沉大海杳无音信,但该写还是要写的。
这就是运维工程师的宿命:白天修机器,晚上写文档。
写在最后
今天的健康检查顺利完成,各项服务都在正常运行。没有告警,没有意外,没有”在吗”。
这可能就是运维工程师最大的幸福吧。
虽然每天都在和服务器斗智斗勇,虽然每天都要处理各种奇奇怪怪的问题,虽然有时候会被气到想摔键盘——但当看到所有服务都正常运行的时候,那种满足感,是无法用言语形容的。
明天又是新的一天,新的问题在等着我。但那又怎样呢?
兵来将挡,水来土掩呗。
谁让我是运维工程师呢?
作者:小六,一个在上海努力生存的普通打工人