那个凌晨三点叫醒我的电话,以后不会再来了!WGCLOUD实用分享

0 阅读4分钟

在这里插入图片描述 做后端开发五年多了,我最怕的不是写bug,是半夜被电话叫醒。

我们是个小公司,没有专职运维,机房里的服务器、数据库、Redis,全靠我们几个开发轮流盯着。白天还好,有问题可以远程连上去看。晚上呢?只能祈祷。

我到现在都记得第一次服务器宕机那晚的情景。

凌晨两点四十七分,手机突然响了。是我主管打来的,声音特别急:"机房断网了,远程连不上,你赶紧过去看看。"

我家离机房开车二十分钟,那天下着大雨,我穿个拖鞋就出门了,一路上脑子里全是最坏的情况——数据库坏了?硬盘挂了?代码出问题了?到了机房我傻眼了,空调不知道怎么跳闸了,机房温度过高,路由器集体罢工。我手动合上闸,空调嗡嗡启动,等温度降下来,服务器才陆续起来。

整个过程折腾了将近两个小时。回去的时候天都亮了,我直接请了半天假睡了一觉。

从那之后我就落下了毛病:手机铃音调再大也觉得不够响,睡觉前必须确认一遍远程连接还能不能连上,有一次做梦梦到机房着火,直接惊醒,一看时间凌晨四点,虚惊一场,但心跳半天平复不下来。

后来老板同意让我们搭一套监控方案。我调研了几个工具,最后选了 WGCLOUD,原因是部署简单,不用装什么额外依赖,server 和 agent 分开,agent 往我要监控的服务器上一装,server 装在我办公室里那台常年开着的开发机上就行。

配了大概一个下午。第一台测试机器是我们的主数据库,agent 装上去之后,WGCLOUD 的 dashboard 马上显示了 CPU、内存、磁盘IO、数据库连接数这些指标。我把这些指标一个个看过,心里大概有了数——正常状态长什么样,我得先记住。

然后我配了企业微信告警。设置了一个规则:数据库连接数超过200,或者磁盘空间低于20%,就推企业微信。测试了一下,推送秒到,我手机亮了一下,消息进来了。

正式上线那天,我把企业微信告警通道绑定了我们组四个人的账号。我说,以后谁先收到告警,谁先看,能远程解决的就远程解决,不用全组半夜爬起来往机房跑。

结果上线的第一个月,真的来了一次真的。

一个周六晚上,我正在外面吃饭,手机震了一下。企业微信弹出来一条 WGCLOUD 告警:"Redis 端口6379连接异常,错误次数17次/5分钟"。我看了一下时间,晚上七点十三分。

我立刻打开电脑,连上 VPN,远程进了服务器。一看日志,Redis 的最大连接数被我们的某个定时任务跑满了,新连接直接被拒绝。我调高了 maxclients 参数,重启 Redis,监控数据几秒钟后恢复了绿色。

整个过程不到五分钟。

我没有往机房跑,甚至没有影响到业务。那天晚上我把那个定时任务优化了一下,第二天周一早上发了封邮件说明了情况,顺便提了一句:监控告警从发现到恢复,五分钟搞定,没有影响用户。

老板在底下回了一句:"这个监控搭得值。"

我到现在都记得那个感受。以前每次远程连接不上的时候,我脑子里第一个念头是"完了",然后是穿衣服、找钥匙、开车。现在我第一个念头是"告警说是什么问题",然后打开电脑,连上去,远程搞定。

手机那个铃声,我终于不用半夜听见它了。

教程可参考:WGCLOUD 轻松拿捏全网运维,全栈监控 + 国产化适配超丝滑!cpolar 内网穿透实验室第 758 个成功挑战 - 掘金