
老吴是家小公司的运维,手底下就他一个人。
公司就一间机房,塞了十几台服务器,跑着二十多个容器。平时在公司的时候,老吴习惯时不时登进去看两眼,容器状态、网络流量、磁盘空间,心里有数。但运维这活儿不可能天天坐机房,总有要出去的时候。
有一次老吴周五下班前检查了一遍服务,都正常,结果周六上午带家人去商场,路上手机震了------甲方那边打电话来,说系统登录不上了。老吴当时在商场停车场里,拿着手机干着急。他知道问题大概率是某个容器崩了,但光知道没用,他人不在公司,只能让家人先逛,自己打车回去。
到了公司打开电脑连上服务器一看,果然有个容器因为内存溢出挂了,重启一下就好。但这一来一回,三个小时没了,甲方的投诉邮件已经发到了老板那里。
老吴事后在想,如果能在路上就看到容器状态,很多问题其实可以远程处理掉,不用非得亲自跑一趟。但公司的服务器都在内网,cAdvisor 监控搭了,只能在公司内网访问,他出门就是两眼一抹黑。
后来他研究了一下 cpolar,发现这东西可以把自己电脑上的端口映射到公网。他当时想,cAdvisor 跑在哪个端口来着?一看是 8080。他就照着文档,在跑 cAdvisor 的那台服务器上装了 cpolar,配了一条静态隧道,把 8080 端口映射出去。
配好之后,老吴当场拿手机测试了一下:关掉公司 WiFi,切到流量,打开 cpolar 给的公网地址,cAdvisor 的监控界面刷出来了。他盯着看了几秒,CPU、内存、网络,每个指标都在正常范围内,心里一下子踏实了。
后来老吴每次出差前,都会先拿手机看一下监控面板。他说:以前出门是心里没底,现在出门是心里有数。甲方的电话来了,他能在路上就判断个七七八八------如果指标都正常,那问题可能出在代码层面,让开发先查;如果某个容器 CPU 异常高,直接在车上把日志拉出来初步判断。
有一次老吴在高铁上,收到告警说有个容器 CPU 异常,他掏出手机一看,数值确实偏高,但还没到崩溃阈值。他判断了一下,决定先不处理,等下车再说。下车之后找了个茶馆,连上公网地址,仔细翻了翻容器日志,发现是那个容器凌晨跑了个定时任务,CPU 短暂飙高了一下,现在已经恢复正常了。
整个过程二十多分钟,老吴没回公司,问题已经搞清楚是怎么回事了。
将服务器放在手机里的秘籍请参考:cAdvisor实时监控Docker容器资源!cpolar内网穿透实验室第762个成功挑战