首页 / 建站向导 / 服务器监控面板

服务器监控面板

宝塔+监控脚本+手机告警,服务器挂了秒知道。

🛠 场景 ⏱ 1.5小时 5 个步骤 难度 已完成 0 / 5 步
■ 全文速览 · 静态内容

服务器监控面板:5 步完整做法

下面这份是静态全文(含脚本与自查清单),由 scripts/seo-prerender.js 从 data/steps.json 生成,供搜索引擎与关闭 JS 的访客阅读。上面那套是带进度保存的交互向导,内容和它完全一致。

  1. Step 1 · 准备服务器 + 安装宝塔

    一台2核2G的机器,装上宝塔面板

    监控面板建议单独一台机器,别和主力业务混在一起——业务挂了,监控也一起挂,那监控就没意义了。

    配置选2核2G、3M带宽起,年付50-100元。系统优先 Ubuntu 22.04 或 CentOS 7,宝塔对这两个兼容性最好。

    拿到机器后先做三件事:

    1. 云控制台安全组放行 22、80、443、8888
    2. 域名加A记录指向这台机器(如 monitor.xuliming.com)
    3. SSH登录,执行右侧脚本装宝塔
    自查清单
    • SSH能登录,能执行 `bt` 命令
    • 安全组放行了8888端口
    • 域名解析指向本机IP
  2. Step 2 · 部署监控采集脚本

    采集CPU/内存/磁盘/进程,落到JSON

    监控的核心是「采集 + 落地 + 展示」三段。这一步只做前两段。

    采集脚本每跑一次,把下面这些指标写进一个 JSON 文件:

    • CPU 使用率、负载(1/5/15分钟)
    • 内存使用率、Swap 使用率
    • 磁盘各分区使用率
    • 关键进程存活状态(nginx/php-fpm/mysql)
    • 系统运行时长

    脚本固定放到 /www/wwwroot/monitor.xuliming.com/data/status.json,前端页面直接 fetch 这个文件就能画图。

    为什么要落地成JSON而不是直连数据库?
    因为这样前端就是纯静态,采集端怎么写都行,你以后想换成别的方式采集,前端一行都不用改。

    自查清单
    • 脚本执行后生成了 status.json
    • status.json 里的字段值合理(CPU不是0也不是100)
    • 浏览器能访问 http://域名/data/status.json
  3. Step 3 · 配置告警通知(钉钉/飞书/邮件)

    阈值触发后推送到手机,别靠盯屏

    监控没人看等于没做。必须让它在出问题的时候主动找你。

    推荐方案(按省事程度排序):

    1. 钉钉机器人:建一个只有自己的群,群设置里加「自定义机器人」拿 webhook 地址,脚本里 POST 一个 JSON 就推到手机。免费、不限量。
    2. 飞书机器人:同理,群设置里加机器人拿 webhook,已经在用飞书的最省事。
    3. Telegram Bot:找 BotFather 建个 bot 拿 token,海外服务器或能正常访问时最省事。
    4. 邮件:宝塔自带邮件告警,但实时性最差,一般只当兜底。

    阈值建议:

    • CPU 持续5分钟 > 90%
    • 内存使用率 > 90%
    • 磁盘使用率 > 85%
    • 关键进程不存在

    关键原则:加静默期。 同一个告警10分钟内只推一次,不然半夜能收两百条消息,你会直接把告警关掉。

    自查清单
    • 手动把阈值调低,能收到测试告警
    • 手机上(钉钉/飞书/邮件)能看到推送内容
    • 同一告警在静默期内不重复推送
  4. Step 4 · 加定时任务与开机自启

    每分钟跑一次采集,重启后自动恢复

    脚本写好之后,得让它自己按时跑。

    方式一:宝塔计划任务(推荐新手)
    宝塔 → 计划任务 → 添加任务 → 类型选「Shell脚本」→ 执行周期选「N分钟」→ 填 1 → 脚本内容填脚本绝对路径。

    方式二:crontab(更省资源)
    SSH执行 crontab -e ,加一行:
    * * * * * /bin/bash /root/monitor/collect.sh >/dev/null 2>&1

    开机自启
    如果监控脚本是常驻进程(daemon)而不是定时跑一次,就得配 systemd 服务,写个 .service 文件放到 /etc/systemd/system/,然后:
    systemctl daemon-reload && systemctl enable monitor && systemctl start monitor

    最后重启一次服务器验证:重启完不用登录,指标应该自动继续更新。

    自查清单
    • 计划任务列表里能看到刚加的任务
    • 每分钟 status.json 的更新时间在变
    • 重启服务器后采集自动恢复
  5. Step 5 · 面板展示 + 备份策略

    把JSON画成图,并定期备份配置

    最后一步:把数据变成一眼能看懂的面板。

    展示层:
    就是一个静态 HTML,setInterval 每30秒 fetch 一次 status.json,用几根进度条 + 数字卡片渲染。不需要图表库,纯CSS进度条最稳、最快。

    配色约定(别小看这个):

    • 正常:绿色
    • 警告(>80%):黄色
    • 危险(>90%):红色

    这样你扫一眼就知道有没有事,不用读数字。

    备份策略:
    监控配置本身不大,但重写一遍很烦。

    1. 宝塔 → 计划任务 → 备份网站,每周一次
    2. 脚本目录 /root/monitor/ 也打包进去
    3. 存到 COS/OSS,本地也留一份

    日常巡检清单(每周5分钟):

    • 面板是否还在更新
    • 告警是否还能收到(主动测一次)
    • 磁盘增长趋势是否异常
    自查清单
    • 面板每30秒自动刷新
    • 超过阈值时进度条变黄/变红
    • 备份任务存在且能手动执行成功

关于服务器监控面板,你大概还想问

服务器监控面板一共几步?大概要多久?

共 5 步,约 1.5小时:1) 准备服务器 + 安装宝塔;2) 部署监控采集脚本;3) 配置告警通知(钉钉/飞书/邮件);4) 加定时任务与开机自启;5) 面板展示 + 备份策略。每步都带操作说明、可复制的一键脚本和自查清单。

服务器监控面板第一步要做什么?

准备服务器 + 安装宝塔——一台2核2G的机器,装上宝塔面板。这一步做完,后面的步骤才有依据。

服务器监控面板做完后怎么判断做对了没有?

面板展示 + 备份策略——把JSON画成图,并定期备份配置。这一步的自查清单就是验收标准,全部勾上才算真正上线。