【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/bash
LOG_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 IP
echo -e "
Top 20 访问IP:" >> $REPORT_FILE
awk '{print $1}' $LOG_FILE | sort | uniq -c | sort -rn | head -20 >> $REPORT_FILE
# 状态码分布
echo -e "
状态码分布:" >> $REPORT_FILE
awk '{print $9}' $LOG_FILE | sort | uniq -c | sort -rn >> $REPORT_FILE
# Top 20 URL
echo -e "
Top 20 访问URL:" >> $REPORT_FILE
awk '{print $7}' $LOG_FILE | sort | uniq -c | sort -rn | head -20 >> $REPORT_FILE
# 404错误
echo -e "
404错误URL:" >> $REPORT_FILE
awk '$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_FILE
echo "分析完成:$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 -n 100 /www/server/nginx/logs/error.log | grep -c "error")
if [ $ERROR_COUNT -gt 10 ]; then
echo "[告警] Nginx错误日志异常,最近100行有 ${ERROR_COUNT} 条错误" | mail -s "服务器告警" admin@yourdomain.com
fi
# 检查MySQL错误
MYSQL_ERRORS=$(tail -n 100 /www/server/mysql/error.log | grep -c "ERROR")
if [ $MYSQL_ERRORS -gt 5 ]; then
echo "[告警] MySQL错误日志异常" | mail -s "MySQL告警" admin@yourdomain.com
fi
六、日常运维SOP
6.1 运维清单体系
SOP(标准操作流程)设计原则:
- 可执行:每项都有明确的操作步骤
- 可检查:每项都有明确的完成标准
- 可追踪:记录执行时间和执行人
6.2 每日运维(5分钟)
#!/bin/bash
# /root/scripts/daily_check.sh
echo "========== $(date) 每日检查 =========="
# 1. 网站可用性
curl -s -o /dev/null -w "网站状态: %{http_code}
" https://yourdomain.com
# 2. 磁盘空间
df -h | grep "/dev/vda1"
# 3. 内存使用
free -h | grep Mem
# 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。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)