【Day 7】监控告警与运维清单:建立7×24小时监控体系(2026版)
系列:《中小企业云服务器7天运维实战》Day 7/7
标签:监控告警 | 云监控 | UptimeRobot | 运维SOP | 日常清单
发布时间:2026-06-15
阅读时长:18分钟
适用版本:宝塔v8.0+ / 阿里云云监控 / UptimeRobot
摘要
本文是7天运维实战系列的最后一篇,详细记录从系统监控、应用监控到业务监控的多层监控体系搭建过程。包含宝塔监控、阿里云云监控、UptimeRobot的配置方法,以及可执行的日常运维SOP(标准操作流程)。
一、监控体系架构
1.1 监控层次模型
┌─────────────────────────────────────────────────────┐ │ 业务层监控 │ │ ├─ 网站可用性(HTTP 200) │ │ ├─ 功能正确性(登录/下单/支付) │ │ └─ 业务指标(订单量/用户数) │ ├─────────────────────────────────────────────────────┤ │ 应用层监控 │ │ ├─ Nginx状态(连接数、请求数、错误率) │ │ ├─ MySQL状态(连接数、慢查询、主从延迟) │ │ ├─ PHP-FPM状态(进程数、内存占用) │ │ └─ 应用日志(错误、异常、性能) │ ├─────────────────────────────────────────────────────┤ │ 系统层监控 │ │ ├─ CPU使用率、负载 │ │ ├─ 内存使用率、交换分区 │ │ ├─ 磁盘使用率、IOPS │ │ ├─ 网络带宽、连接数、TCP状态 │ │ └─ 进程状态、系统日志 │ └─────────────────────────────────────────────────────┘1.2 监控工具矩阵
| 监控层面 | 宝塔监控 | 阿里云云监控 | UptimeRobot | 日志分析 |
|---|---|---|---|---|
| 系统资源 | ✅ | ✅ | ❌ | ❌ |
| 应用状态 | ✅ | ✅ | ❌ | ✅ |
| 网站可用性 | ❌ | ✅ | ✅ | ❌ |
| 全球探测 | ❌ | ✅ | ✅ | ❌ |
| 告警通知 | 微信/邮件 | 短信/电话/邮件 | 邮件/短信 | ❌ |
| 成本 | 免费 | 基础免费 | 免费版够用 | 免费 |
二、宝塔监控配置
2.1 面板自带监控
宝塔面板首页提供实时资源监控:
| 指标 | 正常范围 | 警告阈值 | 危险阈值 |
|---|---|---|---|
| CPU使用率 | < 50% | 50-80% | > 80% |
| 内存使用率 | < 60% | 60-80% | > 80% |
| 磁盘使用率 | < 70% | 70-85% | > 90% |
| 网络带宽 | < 50% | 50-80% | > 90% |
2.2 告警通知配置
路径:面板设置 -> 告警通知
通知渠道:
| 渠道 | 配置方式 | 适用场景 |
|---|---|---|
| 微信 | 扫码绑定 | 即时通知,推荐 |
| 邮箱 | 填写地址 | 详细告警信息 |
| 钉钉 | Webhook | 团队协作 |
告警规则配置:
# 宝塔告警阈值(面板数据库配置)# 可通过API或面板界面设置{"cpu_alarm":80,# CPU告警阈值%"mem_alarm":80,# 内存告警阈值%"disk_alarm":90,# 磁盘告警阈值%"login_alarm":true,# 登录告警"panel_login_alarm":true# 面板登录告警}三、阿里云云监控
3.1 主机监控
ECS实例自动接入云监控,无需安装Agent(部分旧实例需手动安装)。
查看路径:云监控控制台 -> 主机监控 -> 选择实例
监控指标:
| 指标类别 | 具体指标 | 采集周期 | 用途 |
|---|---|---|---|
| CPU | 使用率、负载 | 15秒 | 性能瓶颈 |
| 内存 | 使用率、可用量 | 15秒 | 内存泄漏 |
| 磁盘 | 使用率、IOPS、吞吐量 | 15秒 | 存储瓶颈 |
| 网络 | 入/出带宽、包量 | 15秒 | 流量异常 |
| 进程 | Top进程资源占用 | 15秒 | 异常进程 |
3.2 创建告警规则
路径:云监控 -> 报警服务 -> 报警规则 -> 创建报警规则
推荐规则模板:
{"rules":[{"name":"CPU高使用率告警","metric":"cpu_total","statistics":"Average","comparison_operator":">","threshold":80,"evaluation_count":3,"period":60,"contact_groups":["ops_team"],"notify_type":["sms","email"]},{"name":"内存高使用率告警","metric":"memory_usedutilization","statistics":"Average","comparison_operator":">","threshold":80,"evaluation_count":3,"period":60,"contact_groups":["ops_team"],"notify_type":["sms","email"]},{"name":"磁盘使用率告警","metric":"diskusage_utilization","statistics":"Average","comparison_operator":">","threshold":85,"evaluation_count":1,"period":300,"contact_groups":["ops_team"],"notify_type":["sms","email"]},{"name":"网站不可用告警","metric":"site_monitor","statistics":"Average","comparison_operator":"<","threshold":1,"evaluation_count":1,"period":60,"contact_groups":["ops_team"],"notify_type":["sms","email","phone"]}]}3.3 站点监控(可用性探测)
创建路径:云监控 -> 站点监控 -> 创建监控点
HTTP监控配置:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 监控类型 | HTTP | 监控Web服务 |
| 监控地址 | https://yourdomain.com | 监控目标 |
| 请求方法 | GET | - |
| 匹配响应内容 | 可选 | 验证页面内容 |
| 监控频率 | 1分钟 | 检测间隔 |
| 监控点 | 北京、上海、广州、深圳 | 多地域探测 |
| 告警条件 | 状态码≠200 或 响应时间>5s | 异常判定 |
3.4 告警联系人管理
路径:云监控 -> 报警服务 -> 报警联系人
建议配置:
| 角色 | 通知方式 | 响应时间要求 |
|---|---|---|
| 运维负责人 | 短信+电话+邮件 | 5分钟内响应 |
| 技术团队 | 短信+邮件 | 15分钟内响应 |
| 管理层 | 邮件 | 知悉即可 |
四、UptimeRobot配置
4.1 注册与基础配置
- 访问 https://uptimerobot.com
- 注册免费账号
- Add New Monitor
基础配置:
| 参数 | 值 | 说明 |
|---|---|---|
| Monitor Type | HTTP(s) | 协议类型 |
| Friendly Name | 企业官网 | 显示名称 |
| URL | https://yourdomain.com | 监控URL |
| Monitoring Interval | 5 minutes | 免费版最短间隔 |
| Monitor Timeout | 30 seconds | 超时判定 |
| HTTP Method | GET | 请求方法 |
4.2 高级配置
Keyword监控(验证页面内容):
- 在页面中放置特定文本(如
<!--status:ok-->) - UptimeRobot检查响应中是否包含该关键词
- 防止"服务器返回200但页面空白"的情况
SSL证书监控:
- 监控证书有效期
- 证书过期前30天告警
- 避免证书过期导致网站不可访问
4.3 通知渠道
| 渠道 | 免费版 | 付费版 | 配置方式 |
|---|---|---|---|
| ✅ | ✅ | 直接填写 | |
| SMS | ❌ | ✅ | 购买短信包 |
| Phone Call | ❌ | ✅ | 购买语音包 |
| Slack | ✅ | ✅ | Webhook |
| Telegram | ✅ | ✅ | Bot Token |
| Discord | ✅ | ✅ | Webhook |
| Webhook | ✅ | ✅ | 自定义URL |
4.4 公开状态页
创建路径:Status Pages -> Create Status Page
配置选项:
- 页面标题:XX公司服务状态
- 选择展示的监控项
- 自定义Logo和颜色
- 获取公开URL
用途:
- 嵌入到网站"服务状态"页面
- 客户可自助查看服务状态
- 故障时减少客服压力
五、日志监控与分析
5.1 Nginx日志分析脚本
创建/root/scripts/nginx_log_analysis.sh:
#!/bin/bashLOG_FILE="/www/server/nginx/logs/access.log"REPORT_FILE="/var/log/nginx_analysis_$(date+%Y%m%d).txt"echo"========== Nginx访问日志分析$(date)==========">$REPORT_FILE# 总请求数echo"总请求数:$(wc-l<$LOG_FILE)">>$REPORT_FILE# Top 20 IPecho-e" Top 20 访问IP:">>$REPORT_FILEawk'{print $1}'$LOG_FILE|sort|uniq-c|sort-rn|head-20>>$REPORT_FILE# 状态码分布echo-e" 状态码分布:">>$REPORT_FILEawk'{print $9}'$LOG_FILE|sort|uniq-c|sort-rn>>$REPORT_FILE# Top 20 URLecho-e" Top 20 访问URL:">>$REPORT_FILEawk'{print $7}'$LOG_FILE|sort|uniq-c|sort-rn|head-20>>$REPORT_FILE# 404错误echo-e" 404错误URL:">>$REPORT_FILEawk'$9 == 404 {print $7}'$LOG_FILE|sort|uniq-c|sort-rn|head-20>>$REPORT_FILE# 响应时间Top 20(如日志格式包含响应时间)echo-e" 慢请求URL(Top 20):">>$REPORT_FILE# 发送报告(可选)# mail -s "Nginx日志分析报告" admin@yourdomain.com < $REPORT_FILEecho"分析完成:$REPORT_FILE"5.2 错误日志监控
关键日志文件:
| 服务 | 日志路径 | 监控重点 |
|---|---|---|
| Nginx | /www/server/nginx/logs/error.log | 500错误、连接超时 |
| PHP-FPM | /www/server/php/80/var/log/php-fpm.log | 进程异常、内存溢出 |
| MySQL | /www/server/mysql/error.log | 连接错误、慢查询 |
| 宝塔面板 | /www/server/panel/logs/ | 面板异常 |
| 系统 | /var/log/secure | 登录失败、安全事件 |
自动化监控脚本/root/scripts/log_monitor.sh:
#!/bin/bash# 检查最近100行错误日志中的错误数量ERROR_COUNT=$(tail-n100/www/server/nginx/logs/error.log|grep-c"error")if[$ERROR_COUNT-gt10];thenecho"[告警] Nginx错误日志异常,最近100行有${ERROR_COUNT}条错误"|mail-s"服务器告警"admin@yourdomain.comfi# 检查MySQL错误MYSQL_ERRORS=$(tail-n100/www/server/mysql/error.log|grep-c"ERROR")if[$MYSQL_ERRORS-gt5];thenecho"[告警] MySQL错误日志异常"|mail-s"MySQL告警"admin@yourdomain.comfi六、日常运维SOP
6.1 运维清单体系
SOP(标准操作流程)设计原则:
- 可执行:每项都有明确的操作步骤
- 可检查:每项都有明确的完成标准
- 可追踪:记录执行时间和执行人
6.2 每日运维(5分钟)
#!/bin/bash# /root/scripts/daily_check.shecho"==========$(date)每日检查 =========="# 1. 网站可用性curl-s-o/dev/null-w"网站状态: %{http_code} "https://yourdomain.com# 2. 磁盘空间df-h|grep"/dev/vda1"# 3. 内存使用free-h|grepMem# 4. 负载uptime# 5. 检查告警# (查看微信/邮件是否有未处理告警)echo"每日检查完成"清单:
| 序号 | 检查项 | 检查方法 | 正常标准 | 异常处理 |
|---|---|---|---|---|
| 1 | 网站可用性 | curl/浏览器 | HTTP 200 | 检查服务状态 |
| 2 | 宝塔告警 | 面板首页 | 无告警 | 查看详情 |
| 3 | 云监控告警 | 短信/邮件 | 无告警 | 登录控制台 |
| 4 | UptimeRobot | 状态页 | 正常 | 检查详情 |
| 5 | 磁盘空间 | df -h | < 80% | 清理日志 |
6.3 每周运维(15分钟)
| 序号 | 检查项 | 检查方法 | 正常标准 | 异常处理 |
|---|---|---|---|---|
| 1 | 备份完整性 | 检查备份文件 | 文件非空、日期正确 | 手动补备份 |
| 2 | OSS备份 | 检查OSS控制台 | 文件存在 | 检查上传脚本 |
| 3 | 安全日志 | grep Failed password | 无异常IP | 封禁IP |
| 4 | 访问分析 | nginx_log_analysis.sh | 正常访问模式 | 优化配置 |
| 5 | 更新检查 | yum check-update | 无安全更新 | 立即更新 |
| 6 | SSL证书 | 宝塔SSL页面 | > 30天 | 申请新证书 |
6.4 每月运维(30分钟)
| 序号 | 检查项 | 检查方法 | 正常标准 | 异常处理 |
|---|---|---|---|---|
| 1 | 系统更新 | yum update | 无安全漏洞 | 更新并重启 |
| 2 | 日志清理 | du -sh /var/log | 释放空间 | 删除旧日志 |
| 3 | 数据库优化 | WP-Optimize | 无冗余数据 | 清理优化 |
| 4 | 安全扫描 | Wordfence | 无高危漏洞 | 修复更新 |
| 5 | 备份恢复演练 | 实际恢复测试 | 恢复成功 | 修复备份 |
| 6 | 权限审计 | 检查用户账号 | 无无用账号 | 删除禁用 |
| 7 | CDN分析 | 阿里云CDN控制台 | 命中率>80% | 优化缓存规则 |
| 8 | 性能测试 | PageSpeed Insights | > 80分 | 持续优化 |
6.5 可打印运维清单
╔═══════════════════════════════════════════════════════╗ ║ 中小企业服务器运维检查清单 ║ ║ 服务器:_____________ 检查人:_____________ ║ ╠═══════════════════════════════════════════════════════╣ ║ 【每日】(5分钟) ║ ║ □ 网站可访问(HTTP 200) ║ ║ □ 宝塔无告警 ║ ║ □ 云监控无告警 ║ ║ □ UptimeRobot正常 ║ ║ □ 磁盘使用率 < 80% ║ ╠═══════════════════════════════════════════════════════╣ ║ 【每周】(15分钟) ║ ║ □ 备份文件完整(本地+OSS) ║ ║ □ 安全日志无异常IP ║ ║ □ 访问日志分析完成 ║ ║ □ 系统/WordPress更新检查 ║ ║ □ SSL证书有效期 > 30天 ║ ╠═══════════════════════════════════════════════════════╣ ║ 【每月】(30分钟) ║ ║ □ 系统安全补丁更新 ║ ║ □ 日志清理完成 ║ ║ □ 数据库优化完成 ║ ║ □ 安全扫描完成 ║ ║ □ 备份恢复演练完成 ║ ║ □ 用户权限审计完成 ║ ║ □ CDN缓存命中率检查 ║ ║ □ 网站性能测试 > 80分 ║ ╠═══════════════════════════════════════════════════════╣ ║ 紧急联系:阿里云客服 95187 ║ ║ 备份位置:/www/backup/ + OSS ║ ╚═══════════════════════════════════════════════════════╝七、7天系列总结
7.1 学习路径回顾
| 天数 | 主题 | 核心技能 | 难度 |
|---|---|---|---|
| Day 1 | 选购与初始化 | 服务器选型、SSH登录 | ⭐ |
| Day 2 | 环境搭建 | 宝塔面板、LNMP | ⭐⭐ |
| Day 3 | 网站部署 | 域名解析、WordPress、SSL | ⭐⭐ |
| Day 4 | 备份恢复 | 3-2-1备份、OSS容灾 | ⭐⭐⭐ |
| Day 5 | 安全防护 | 多层防御、Fail2ban | ⭐⭐⭐ |
| Day 6 | 性能优化 | CDN、WebP、Gzip | ⭐⭐ |
| Day 7 | 监控运维 | 监控体系、SOP | ⭐⭐ |
7.2 技能成长路径
入门(7天训练营) ↓ 进阶(3-6个月) ├─ Docker容器化部署 ├─ CI/CD自动化发布 └─ Shell/Python脚本编程 ↓ 高级(1-2年) ├─ Kubernetes编排 ├─ 云原生监控(Prometheus/Grafana) └─ 日志分析(ELK Stack) ↓ 专家(3年+) ├─ 架构设计 ├─ 性能调优 └─ 安全审计7.3 推荐学习资源
| 类型 | 资源 | 链接 |
|---|---|---|
| 官方文档 | 阿里云帮助中心 | help.aliyun.com |
| 官方文档 | 宝塔面板文档 | bt.cn/bbs |
| 书籍 | 《鸟哥的Linux私房菜》 | - |
| 在线课程 | 阿里云大学 | edu.aliyun.com |
| 社区 | V2EX运维板块 | v2ex.com |
| 工具 | 运维命令速查 | linuxcommand.org |
八、版本与兼容性说明
| 组件 | 本文适用版本 | 升级注意 |
|---|---|---|
| 宝塔面板 | v8.0+ | 告警界面可能调整 |
| 阿里云云监控 | 最新版 | API可能变化 |
| UptimeRobot | 免费版 | 功能限制见官网 |
| Nginx | 1.24+ | 日志格式一致 |
| WordPress | 6.x | 插件兼容性 |
九、常见问题
Q1:告警太多怎么办?
优化方案:
- 提高告警阈值(如CPU从70%提高到80%)
- 增加持续周期(如从1分钟改为5分钟)
- 设置告警抑制(同一问题30分钟内只告警一次)
- 分级告警(严重问题短信,一般问题邮件)
Q2:免费监控够用吗?
评估标准:
- 日PV < 1万:免费版完全够用
- 日PV 1-10万:免费版+付费短信告警
- 日PV > 10万:建议购买专业监控服务
Q3:监控本身会影响性能吗?
影响评估:
- 宝塔监控:< 1% CPU,可忽略
- 云监控Agent:< 1% CPU,< 50MB内存
- UptimeRobot:外部探测,无服务器开销
Q4:7天后还需要学什么?
推荐进阶方向:
- Docker容器化(简化部署)
- Git版本控制(代码管理)
- CI/CD流水线(自动化发布)
- 日志集中分析(ELK)
- 自动化运维(Ansible)
十、写在最后
7天前,你可能对服务器运维一无所知。7天后,你已经建立了完整的服务器运维体系:
✅ 服务器选购与初始化
✅ 环境搭建与管理
✅ 网站部署与维护
✅ 数据备份与恢复
✅ 安全防护
✅ 性能优化
✅ 监控告警
这套体系足以支撑日PV 10万以下的中小企业网站。随着业务增长,你可以逐步引入更专业的工具和方法。
技术不是门槛,持续学习才是竞争力。
本文是《中小企业云服务器7天运维实战》系列的完结篇。感谢你的陪伴,祝你的服务器永远稳定运行。
技术内容基于开源工具和标准云产品。版本信息更新于2026-06-15。