Margrop
Articles193
Tags384
Categories23
1password AC AI AP API AppDaemon Aqara Caddy Cookie 认证 Cron Date Diagrams.net Docker HA HADashboard HomeAssistant IP IPv4 Java LVM‑Thin Linux MacOS Markdown MiniMax MySQL NAS Nginx OpenAI OpenClaw OpenResty PPPoE PostgreSQL ProcessOn Prometheus Proxmox VE SOCKS5 SSL Shell TTS TimeMachine UML Uptime Kuma VPN VPS Web Windows activate ad adb adblock agent aligenie aliyun alpine annotation aop authy autofs backup baidupan bash bitwarden boot brew browser caddy2 cdn centos cert certbot charles chat chrome classloader client clone closures cloudflare cmd command commit container crontab ctyun ddsm demo dependency deploy developer devtools dll dns docker domain download draw drawio dsm dump dylib edge exception export fail2ban feign firewall-cmd flow frp frpc frps fuckgfw function gcc gfw git github golang gperftools gridea grub gvt-g hacs havcs heap hello hexo hibernate hidpi hoisting homeassistant hosts html htmlparser https idea image img img2kvm import index install intel io ios ip iptables iptv ipv6 iso java javascript jetbrains jni jnilib jpa js json jsonb jupter jupyterlab jvm k8s kernel key kid kms kodi koolproxy koolproxyr kvm lan lastpass launchctl learning lede letsencrypt linux live low-code lvm lxc m3u8 mac macos mariadb markdown maven md5 microcode mirror modem modules monitor mount mstsc mysql n2n n5105 nas network nfs node node-red nodejs nohup notepad++ npm nssm ntp oop openfeign openssl os otp ovz packet capture pat pdf pem perf ping pip plugin png powerbutton print pro proxy pve pvekclean python qcow2 qemu qemu-guest-agent rar reboot reflog remote remote desktop renew repo resize retina root route router rule rules runtime safari sata scipy-notebook scoping scp server slmgr so socks source spk spring springboot springfox ssh ssl stash string supernode svg svn swagger sync synology systemctl tap tap-windows tapwindows telecom template terminal tls token totp tvbox txt ubuntu udisk ui undertow uninstall unlocker upgrade url v2ray vhd vim vlmcsd vm vmdk web websocket wechat windows with worker wow xiaoya xml yum zip 中国电信 云电脑 交换机 健康检查 光猫 公网IP 内存 内网IP 升级 反向代理 启动 夏令时 天猫精灵 天翼云 安全 安装 容器 导入 小米 常用软件 广告屏蔽 序列号 应用市场 异常 打工 技术 抓包 描述文件 效率工具 日记 时区 显卡虚拟化 智能家居 智能音箱 梯子 模块 流程 流程图 浏览器 漫游 激活 火绒 电信 画图 监控 直播源 端口扫描 续期 网关 网络 网络风暴 群晖 脚本 腾讯 自动化 虚拟机 证书 语雀 路由 路由器 软件管家 软路由 运维 运维监控 配置 钉钉 镜像 镜像源 门窗传感器 问题排查 防火墙 阿里云 阿里源 集客

Hitokoto

Archive

当我决定给所有服务器做一次"全身体检"时

当我决定给所有服务器做一次"全身体检"时

当我决定给所有服务器做一次”全身体检”时

说出来你们可能不信,今天我心血来潮,给所有服务器做了一次”全身体检”。结果查出来的毛病,比我上周吃的火锅里的花椒还多。

早上:心血来潮

早上到公司的时候,心情还不错。泡了杯咖啡,习惯性地打开了监控面板。嗯,一切正常,绿色的对勾赏心悦目。

但是作为一个有职业病的运维人员,你懂的——数据是可以骗人的,但直觉不会。

昨天不是刚处理了一个端口暴露的问题嘛,今天突然就有点不放心。万一还有别的端口也在偷偷裸奔呢?万一有哪个服务在后台偷偷搞事情呢?

不行,得来一次彻底的检查。

第一轮:端口大普查

说干就干,先把所有服务器的端口情况摸一遍。

这一查,好家伙,问题就出来了。

某台机器上居然跑着一个 9000 端口的服务。我记得这个端口啊,这不是 Portainer 吗?之前某位同事装的,后来不是说不用的吗?怎么还在跑?

再仔细一看,好家伙,还直接绑定了 0.0.0.0。这意味着什么?但凡有人扫到这个端口,就能直接访问你的容器管理面板。这要是被恶意利用还得了?

赶紧记录下来,待会儿统一处理。

第二轮:服务进程检查

查完端口,自然要看看进程。跑着哪些服务,哪些服务是多余的,一目了然。

结果又发现问题:某台机器上居然跑着两个版本的同一个服务。新版本是昨天刚部署的,但旧版本居然没删!这就相当于什么?你已经住进新房子了,但旧房子还留着,每次出门都得分不清该锁哪个门。

这种问题说大不大,说小不小。万一哪天搞混淆了,部署到了旧版本上,那就有意思了。

中午:配置文件的秘密

中午吃完饭,顺便看了一下配置文件。

这不看不知道一看吓一跳。某台机器的配置文件里居然还存着测试环境的 API Key!这就相当于什么?你家大门钥匙放在了门口的地垫下面,还是用透明胶带粘的。

赶紧删除,联系相关人员更换凭证。一套操作下来,总算是有惊无险。

顺便还发现了一些配置不一致的问题。比如某台机器的日志级别是 DEBUG,另一台是 INFO,还有一个是 WARN。这要是出问题查日志,不得疯掉?

下午:网络连通性测试

下午的主要工作就是测试网络连通性。

说是测试网络连通性,其实就是各个服务器之间互相 ping 一 ping,看看能不能正常通信。

结果某两台机器之间的延迟居然高达 200ms!这正常吗?这肯定不正常啊。之前这两台机器通信延迟不都是十几毫秒吗?

查了一通,发现是某台中间路由器的问题。重启了一下,延迟恢复正常。你看,有时候解决问题的方法就是这么简单——重启大法好。

晚上:总结与感悟

终于把所有的”体检”项目都做完了。泡了杯茶,坐在工位上发了会儿呆,回想起今天的经历,有几点感悟:

第一,问题都是隐藏的。 监控面板上显示的绿色对勾,不代表真的没有问题。很多问题都是隐藏起来的,等到你发现的时候,可能已经晚了。

第二,侥幸心理要不得。 之前总觉得”就一个测试服务有啥关系”,事实证明凡事就怕万一。端口暴露、配置泄露、版本混乱——这些看似小问题,真要出了事就是大事。

第三,定期体检很重要。 就像人的身体一样,服务器也需要定期做做检查。小问题及时发现及时处理,总比出大问题再补救要好。

第四,文档是保命用的。 今天查了半天才确认某个端口是干什么用的,如果有完善的文档,也不至于这么费劲。看来文档还得继续补啊。

写在最后

今天的”全身体检”虽然累,但收获还是蛮大的。发现了不少隐藏的问题,及时处理了潜在的风险。

你说这算不算上班摸鱼?我觉得算。但你说这算不算工作?我觉得也勉强算。毕竟安全无小事嘛,预防永远比补救重要。

明天继续加油吧。毕竟在上海这座城市上班已经这么辛苦了,服务器的问题能少一点就少一点吧。


作者:小六,一个在上海努力生存的普通打工人

Author:Margrop
Link:http://blog.margrop.com/post/2026-03-11-server-health-check/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可