系列:《中小企业云服务器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 注册与基础配置

  1. 访问 https://uptimerobot.com
  2. 注册免费账号
  3. 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 通知渠道

渠道 免费版 付费版 配置方式
Email 直接填写
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:告警太多怎么办?

优化方案

  1. 提高告警阈值(如CPU从70%提高到80%)
  2. 增加持续周期(如从1分钟改为5分钟)
  3. 设置告警抑制(同一问题30分钟内只告警一次)
  4. 分级告警(严重问题短信,一般问题邮件)

Q2:免费监控够用吗?

评估标准

  • 日PV < 1万:免费版完全够用
  • 日PV 1-10万:免费版+付费短信告警
  • 日PV > 10万:建议购买专业监控服务

Q3:监控本身会影响性能吗?

影响评估

  • 宝塔监控:< 1% CPU,可忽略
  • 云监控Agent:< 1% CPU,< 50MB内存
  • UptimeRobot:外部探测,无服务器开销

Q4:7天后还需要学什么?

推荐进阶方向

  1. Docker容器化(简化部署)
  2. Git版本控制(代码管理)
  3. CI/CD流水线(自动化发布)
  4. 日志集中分析(ELK)
  5. 自动化运维(Ansible)

十、写在最后

7天前,你可能对服务器运维一无所知。7天后,你已经建立了完整的服务器运维体系:

✅ 服务器选购与初始化
✅ 环境搭建与管理
✅ 网站部署与维护
✅ 数据备份与恢复
✅ 安全防护
✅ 性能优化
✅ 监控告警

这套体系足以支撑日PV 10万以下的中小企业网站。随着业务增长,你可以逐步引入更专业的工具和方法。

技术不是门槛,持续学习才是竞争力。


本文是《中小企业云服务器7天运维实战》系列的完结篇。感谢你的陪伴,祝你的服务器永远稳定运行。

技术内容基于开源工具和标准云产品。版本信息更新于2026-06-15。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐