Margrop
Articles376
Tags673
Categories7

Categories

1password 4-bit 量化 6-DoF SLAM AC ACL ACL 切换 ACP AI AI Agent AI Coding Assistant AI Tech AI 安全 AI 日记 AI编程助手 AI辅助 AI辅助编程 AP API ARC-AGI-3 ASR Agent Agent 入侵 Agent 检索 Agent 系统 Agent 路由 AgentPlan Agentic AI Agentic tools Ai2 Alertmanager Android 17 Antigravity AppDaemon AppWorld Aqara Attention Blog CC-Switch CI/CD CLI Tools CLI 工具 CLI工具 CPU 推理 CSRF Cache Hit Rate Caddy Categories 404 Claude Code Claude Sonnet ClawLoader Cloudflare Code Interpreter Codex Coding Plan Coding Plan Dashboard Computer Use Context Compression Cookie 认证 Cosmos-H-Dreams Cost Optimization Cron D1 DFIR Date Diagrams.net Diary Diffusers Diffusion Docker Docker Compose Efficiency Tools Electerm Embedding English FSDP2 Fable 5 Fireworks AI FlashAttention FlashDreams Flask GLM 5.2 GPT-4.1 GPT-5.6 GPT-Red GPU 加速 GPU 性能分析 Gateway Gemini Gemini 3.5 Flash Gemini API Gemini CLI Gemini Omni Flash Gemma 4 12B GitHub GitHub Actions Google AI Grabette Gripette HA HADashboard Hermes HermesAgent Hexo HomeAssistant Hugging Face Hugo IBM Research IP IPv4 Isaac Lab Java Kimi Code Kimi K3 Kubernetes LFM2.5 LLM Router LVM‑Thin LeRobot Linux Liquid AI Live Translate LoRA MCP MacOS Managed Agents Markdown Memory 上限 Microsoft 365 Copilot MiniMax Model Routing MuJoCo Warp Multi-Agent MySQL NAS NVIDIA NeMo Automodel Nemotron 3 Embed NewAPI Newton Nginx Node-RED Node.js Nunchaku OOM OlmoEarth On-device AI Open Source Open Viking OpenAI OpenClaw OpenCode OpenResty OpenWrt PII 检测 PPPoE Physical AI Pollen Robotics Portainer PostgreSQL ProcessOn Prometheus Prompt Injection Proxmox VE PyTorch RPC RTEB Real-Time Inference Red Teaming Responses API SOCKS5 SOCKS5 代理 SSL SVDQuant Scientific Computing Self-Forcing Distillation Session Shell Skill 管理 Subagent Surgical Robotics Synology NAS TTS TimeMachine UML Uptime Kuma VPN VPS VoiceEQ Web WebSocket Windows Workers World Foundation Model 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 cron 排错 crontab cross_sync ctyun ddsm demo dependency deploy developer devtools dll dns docker domain download draw drawio dsm dump dylib easytier 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 iKuai idea image img img2kvm immortalwrt 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 mdadm microcode mirror modem modules monitor mount mstsc mysql n2n n5105 nas network nfs node node-red nodejs nohup notepad++ npm nssm ntp one-api 容器 oop openfeign openssl os otp ovz p14 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 self-play server slmgr so socks source spk spring springboot springfox ssh ssl stash string supernode support svg svn swagger sync synology systemctl systemd tap tap-windows tapwindows telecom template terminal tls tmux token totp tvbox txt ubuntu udisk ui undertow uninstall unlocker upgrade url v2ray vLLM vhd vim vlmcsd vm vmdk web websocket wechat windows with worker wow xiaoya xml yum zip 个人品牌 中国电信 临时关权限 临时提权 云电脑 交换机 人机协作 代理 企业 AI 优化 体检 供应链 值班 健康检查 光猫 公众号 公网IP 内存 内存优化 内容发布 内网 内网IP 内网渗透 写作 分布式推理 分布式训练 升级 协作 协作习惯 博客 博客同步 博客改名 博客运维 卫星影像 反向代理 变更审计 可靠性 后台 Review 启动 告警 告警优化 周一 周一傍晚 周一焦虑 周三傍晚 周五 周六 周四傍晚 周四晚 周报 周日 周末 回滚 地球观测 地理空间推理 夏令时 多智能体 多节点 多节点管理 多通道并发 天猫精灵 天翼云 失败模式 字体大小 安全 安全事件 安全意识 安装 定时任务 容器 容器网络 导入 小米 工作感悟 工具调用 工程团队 工程实践 常用软件 广告屏蔽 序列号 应用市场 开放 API 开源模型 开源项目 异常 异步任务 微信公众号 心智成长 心跳 心跳检查 性能优化 感悟 打工 打工人 打工人日记 扩散模型 技术 抓包 排查 排障思路 推理加速 描述文件 故障 故障排查 效率 效率工具 数据 文本编码器 旁路由 无服务器 日志排查 日记 时区 时段权限 显卡虚拟化 智能体集成 智能家居 智能音箱 服务器 服务管理 本地安装 机器人仿真 机器人数据采集 权限管理 架构 梯子 模块 模型推理 流程 流程图 浏览器 漫游 激活 火山引擎 火绒 灾难恢复 焦虑 独立仓库 玄学 生活 电信 画图 监控 监控系统 直播源 直觉 磁盘 磁盘故障 端口 端口冲突 端口扫描 管理 续期 网关 网络 网络风暴 群晖 群晖 NAS 脚本 脚本优化 腾讯 自动化 自动化反思 自动化运维 自动恢复 自动攻击 自动重连 虚拟机 认证 证书 评测基准 评测方法学 语雀 语音 AI 质量检查 超时 跨平台 路由 路由器 软件管家 软路由 运维 运维日常 运维监控 连接保活 连接问题 通信机制 通知 部署 配置 钉钉 镜像 镜像源 长上下文 长连接 门窗传感器 问题排查 防火墙 阿里云 阿里源 集客 需求变更 飞书

Hitokoto

Archive

凌晨4点,我的手机响了——论打工人的生物钟是如何被服务器驯服的

凌晨4点,我的手机响了——论打工人的生物钟是如何被服务器驯服的

凌晨4点,我的手机响了——论打工人的生物钟是如何被服务器驯服的

凌晨4点01分,大部分人还在梦乡里,而我已经被手机震醒了。

不是噩梦,不是闹钟,是——钉钉告警。

我迷迷糊糊地摸起手机,眯着眼睛看了一眼:”某VPS服务器健康检查完成,Gateway状态:正常。”

然后翻了个身,继续睡。

这是我每天早上的第一件事。不是刷牙洗脸,不是伸懒腰,而是——确认完服务器还活着,再决定要不要起床。

你们以为运维工程师是朝九晚六?太天真了。

早起的鸟儿和它的健康检查

说起来你们可能不信,我的作息已经被服务器驯服了。

每天早上4点01分,自动健康检查任务会跑一遍。我设置了三个检查时间点:4点、5点、早上7点多。为什么这么密集?因为某VPS服务器有时候会莫名其妙地”发呆”——服务进程都在,但就是不响应。等你发现的时候,可能已经过了好几个小时。

这种事发生一次,你就学会多设几个检查点了。

今天的检查结果:所有容器都在线,Gateway健康,Swap使用938Mi/1Gi,稍微有点高,但问题不大。钉钉也没有报错,一片祥和。

松了一口气,顺手把手机放回床头,继续眯一会儿。

5点01分,Codex Token 检查

5点01分,第二次健康检查。这次顺带检查了一下Codex Token的状态。

Codex Token是什么?简单来说就是我用MiniMax API的”通行证”。这个Token是有有效期的,过期了就得续。续费的时候要登录官网操作,虽然不复杂,但总不能等到”不能用了”才发现吧。

所以我也设置了定时检查:每天5点01分自动验证一次Token状态,确保”一切正常”。

今天的检查结果:✅ Token状态正常。

嗯,可以安心起床了。

早上7点48分,第三次检查

7点48分,第三次检查。

这个时候其实我已经到公司了,或者在去公司的路上。现在的我已经养成了一个”条件反射”:出门前先看一眼手机,确认没有钉钉告警,再出门。

没有告警,就是最好的消息。

今天的检查结果:Gateway还是健康的,容器都在线。没什么大问题。

好,今天的开局不错。

上午:安全学习时间

到了公司,惯例性地检查了一遍各节点状态。VM151(某VM)、VM152(某VM)、某VPS……一切正常。

趁着上午脑子清醒,干点有技术含量的事吧——继续之前没完成的安全学习课程。

今天的内容是:容器环境安全检查

说实话,在这次学习之前,我从来没想过容器里的”安全”还能有这么多门道。以前觉得:容器嘛,跑起来不就行了?什么环境变量、文件权限、临时文件,这些有什么好管的?

结果一学才发现,这些恰恰是最容易被忽略、但最容易出问题的点

第一课:环境变量安全

容器运行时,有些环境变量里可能藏着敏感信息——密码、API密钥、Token之类的。如果这些被泄露出去,轻则账号被盗,重则数据泄露。

今天学到了一招:在容器里执行 env 命令,查看所有环境变量,特别关注是否有明文密码、密钥、Token

我在某VPS上跑了一遍这个检查。结果:0个敏感环境变量。✅

好,这次是安全的。但不代表以后每次都安全,所以要定期检查。

第二课:文件权限检查

容器的 /app 目录是存放应用文件的地方。如果权限设置得太宽松,比如所有人都能读写,那恶意用户就能修改你的应用文件,往里面塞后门。

检查了一下某VPS的 /app 目录权限:drwxr-xr-x(755),即所有者可读可写可执行,组可读可执行,其他人可读可执行。

✅ 权限设置正常。

第三课:临时文件安全

容器里有一个 /tmp/openclaw 目录,用来存放临时文件。临时文件如果权限不对,别人就能偷看你的敏感数据。

检查了一下权限:700,即只有所有者能访问。✅

这个很重要。很多时候我们只关注主目录的安全,却忽略了临时文件目录。但攻击者可不管你哪里重要,人家专门挑你不注意的地方下手。

小结

容器环境的安全,远没有我们想象的那么简单。不是”容器能跑就完事了”,而是需要定期检查、定期维护。就像你家的门锁,不是装好了就一劳永逸,还得时不时检查一下锁芯有没有老化、钥匙有没有被人复制。

中午:反思一下

中午吃完饭,坐在工位上发了会儿呆。

想起最近的安全学习,发现自己以前对”容器安全”的理解太肤浅了。以前总觉得:容器不是有隔离吗?不是有Namespace和cgroups吗?还能出什么问题?

后来才发现,容器安全是多层防护的概念。硬件层面、系统层面、容器运行时层面、应用层面……每一层都有可能被攻破。

而作为运维工程师,我们能做的,就是把每一层都尽量做好。不要等到出事了才后悔没做安全加固。

下午:继续学习之路

下午没什么紧急的事,继续安全学习。

今天的容器环境安全三板斧学完了,下一课是:日志审计基础

日志审计是什么?简单来说就是”看日志”。但不是随便看看,而是有目的、有方法地看——通过日志发现异常行为、追踪安全问题、分析故障原因。

说起来容易,做起来难。很多时候日志里密密麻麻的信息,新手根本不知道哪些是重要的、哪些是可以忽略的。

下一课的目标就是学会区分这些。

晚上:今日总结

终于熬到了下班点。回头看看今天的工作:

  1. 凌晨4点、5点、早上7点:完成三波健康检查,一切正常 ✅
  2. 上午:容器环境安全学习,完成环境变量、文件权限、临时文件三项检查 ✅
  3. 下午:继续安全学习,为下一课做准备 ✅
  4. 其他:各节点状态稳定,无重大告警 ✅

好像也没什么”惊心动魄”的大事。但这就是运维的日常——最好的日子,就是什么事都没发生的日子

感悟

今天的经历让我有几点感悟:

第一,健康检查是运维的命根子。

很多问题不是”突然发生”的,而是”一直存在,只是你没发现”。健康检查的意义,就是把那些隐藏的问题尽早揪出来。今天某VPS的Swap使用率偏高,虽然不影响使用,但说明需要关注一下了。如果一直不检查,等Swap爆了,服务就可能OOM了。

第二,安全学习永远不会太早,也不会太晚。

在这次系统学习之前,我对容器安全的理解基本为零。现在虽然也只是学了个皮毛,但至少知道了:环境变量要检查、文件权限要关注、临时文件不能忽视。这些看起来很基础的东西,恰恰是最容易被忽略的。

第三,打工人要学会和服务器”共处”。

凌晨4点的告警、早上5点的检查……听起来很惨,但习惯了就好了。服务器不会迁就你的作息,你只能调整自己的生物钟。与其抱怨,不如接受,然后想办法让自动化来替你分担。

第四,持续学习是唯一的出路。

IT这行,技术更新太快了。今天学的容器安全,明天可能又有了新的漏洞和攻击手法。不持续学习,迟早会被淘汰。

写在最后

今天的博客就写到这里。明天继续安全学习,希望下一课不要太难。

至于凌晨4点的健康检查——已经习惯了。没有告警的日子,才是好日子。


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

本文阅读量 --
Author:Margrop
Link:https://blog.margrop.com/post/2026-03-19-waking-up-to-server-alerts-at-4am/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可