
关于
服务器管理原则和决策制定。进程管理、监控策略和扩展决策。教授思维方式而非命令。
name: server-management description: "服务器管理原则与决策。进程管理、监控策略和扩展决策。教你思考,而非命令。" risk: safe source: community date_added: "2026-02-27"
服务器管理
生产运维的服务器管理原则。 学会思考,而非死记命令。
1. 进程管理原则
工具选择
| 场景 | 工具 | |----------|------| | Node.js 应用 | PM2(集群、重载) | | 任何应用 | systemd(Linux 原生) | | 容器 | Docker/Podman | | 编排 | Kubernetes、Docker Swarm |
进程管理目标
| 目标 | 含义 | |------|---------------| | 崩溃重启 | 自动恢复 | | 零停机重载 | 无服务中断 | | 集群化 | 利用所有 CPU 核心 | | 持久化 | 服务器重启后存活 |
2. 监控原则
监控什么
| 类别 | 关键指标 | |----------|-------------| | 可用性 | 正常运行时间、健康检查 | | 性能 | 响应时间、吞吐量 | | 错误 | 错误率、类型 | | 资源 | CPU、内存、磁盘 |
告警严重级别策略
| 级别 | 响应 | |-------|----------| | 严重 | 立即行动 | | 警告 | 尽快调查 | | 信息 | 每日审查 |
监控工具选择
| 需求 | 选项 | |------|---------| | 简单/免费 | PM2 指标、htop | | 全面可观测性 | Grafana、Datadog | | 错误追踪 | Sentry | | 正常运行时间 | UptimeRobot、Pingdom |
3. 日志管理原则
日志策略
| 日志类型 | 用途 | |----------|---------| | 应用日志 | 调试、审计 | | 访问日志 | 流量分析 | | 错误日志 | 问题检测 |
日志原则
- 轮转日志以防止磁盘满
- 结构化日志(JSON)便于解析
- 适当的级别(error/warn/info/debug)
- 日志中不含敏感数据
4. 扩展决策
何时扩展
| 症状 | 解决方案 | |---------|----------| | CPU 高 | 添加实例(水平扩展) | | 内存高 | 增加 RAM 或修复泄漏 | | 响应慢 | 先分析性能,再扩展 | | 流量峰值 | 自动扩展 |
扩展策略
| 类型 | 何时使用 | |------|-------------| | 垂直扩展 | 快速修复,单实例 | | 水平扩展 | 可持续,分布式 | | 自动扩展 | 流量变化大 |
5. 健康检查原则
什么算健康
| 检查 | 含义 | |-------|---------| | HTTP 200 | 服务正在响应 | | 数据库已连接 | 数据可访问 | | 依赖正常 | 外部服务可达 | | 资源正常 | CPU/内存未耗尽 |
健康检查实现
- 简单:仅返回 200
- 深度:检查所有依赖
- 根据负载均衡器需求选择
6. 安全原则
| 领域 | 原则 | |------|-----------| | 访问 | 仅 SSH 密钥,无密码 | | 防火墙 | 仅开放必要端口 | | 更新 | 定期安全补丁 | | 密钥 | 环境变量,非文件 | | 审计 | 记录访问和变更 |
7. 故障排查优先级
当出现问题时:
- 检查是否运行(进程状态)
- 检查日志(错误信息)
- 检查资源(磁盘、内存、CPU)
- 检查网络(端口、DNS)
- 检查依赖(数据库、API)
8. 反模式
| 不要这样做 | 应该这样做 | |----------|-------| | 以 root 运行 | 使用非 root 用户 | | 忽略日志 | 设置日志轮转 | | 跳过监控 | 从第一天就监控 | | 手动重启 | 配置自动重启 | | 不备份 | 定期备份计划 |
记住: 管理良好的服务器是无聊的。这就是目标。
何时使用
此技能适用于执行上述概述中描述的工作流或操作。
限制
- 仅在任务明确匹配上述描述范围时使用此技能。
- 不要将输出视为特定环境验证、测试或专家审查的替代品。
- 如果缺少必要的输入、权限、安全边界或成功标准,请停下来寻求澄清。
