云服务器搭建监控告警系统
本文介绍了如何在云服务器上搭建监控告警系统,涵盖主流工具(如Prometheus、Grafana、Alertmanager)的部署与集成,包括指标采集、可视化展示、阈值设定及多通道(邮件、钉钉、企业微信)告警配置,强调自动化安装、安全加固与高可用设计,适用于中小规模云环境,助力运维人员实时掌握资源状态、快速响应异常。
在数字化运维日益深入的今天,监控告警已不再是大型企业的专属能力,借助弹性、按需付费的云服务器资源,中小团队甚至个人开发者也能在数小时内构建一套稳定、可扩展、低成本的监控告警系统——无需依赖商业SaaS,不绑定特定厂商,真正掌握数据主权与响应主动权。
本文以主流公有云(如阿里云ECS或腾讯云CVM)为载体,采用开源技术栈,提供一条清晰、可复现的轻量级落地路径:用 Prometheus 收集指标、Grafana 可视化、Alertmanager 实现智能分级告警,并通过企业微信/钉钉完成闭环通知。
第一步:环境准备与基础部署
选用一台2核4GB内存、50GB SSD云服务器(Linux CentOS 7.9 或 Ubuntu 22.04),建议选择与业务同地域实例以降低延迟,开通安全组,仅开放22(SSH)、9090(Prometheus)、3000(Grafana)、9093(Alertmanager)端口。
通过一键脚本快速初始化:
# 安装必要工具 sudo apt update && sudo apt install -y curl wget unzip jq # 创建监控专用目录 sudo mkdir -p /opt/monitor/{prometheus,grafana,alertmanager}
第二步:部署核心组件(均使用二进制方式,免容器依赖)
-
Prometheus:下载最新稳定版(如 v2.48.0),解压后配置
prometheus.yml:global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: [{targets: ['localhost:9090']}] - job_name: 'node_exporter' # 部署在被监控节点的轻量采集器 static_configs: [{targets: ['localhost:9100']}]启动命令:
nohup ./prometheus --config.file=prometheus.yml --web.listen-address=":9090" > /var/log/prometheus.log 2>&1 & -
Node Exporter(主机指标采集器):下载后直接运行,暴露
/metrics接口,零配置即用。 -
Grafana:下载并解压,修改
conf/defaults.ini中http_port = 3000和admin_password = your_secure_pass,启动后访问http://<公网IP>:3000,添加 Prometheus 为数据源(URL填http://localhost:9090)。 -
Alertmanager:配置
alertmanager.yml定义告警路由与静默规则,例如按严重等级分流至不同通知渠道;启用 Webhook 模式对接钉钉机器人(需在钉钉群中创建自定义机器人,获取 webhook 地址)。
第三步:编写可落地的告警规则
避免“告警风暴”,聚焦关键信号,在 Prometheus rules 目录下新建 host_alerts.yml:
groups: - name: host-alerts rules: - alert: HighCPUUsage expr: 100 - (avg by(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85 for: 5m labels: {severity: "warning"} annotations: {summary: "CPU 使用率过高", description: "{{ $labels.instance }} CPU 超 {{ $value | printf \"%.1f\" }}%"} - alert: DiskFullSoon expr: (node_filesystem_avail_bytes{fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"} * 100) < 10 for: 10m labels: {severity: "critical"} annotations: {summary: "磁盘空间不足", description: "{{ $labels.mountpoint }} 剩余容量低于10%"}
将该文件挂载进 Prometheus 配置,重启服务即可生效。
第四步:打通告警通知闭环
Alertmanager 的 receivers 配置支持多通道冗余:
receivers: - name: 'dingtalk-webhook' webhook_configs: - url: 'HTTPS://oAPI.dingtalk.com/robot/send?access_token=xxx' send_resolved: true
配合简单 Go 编写的轻量级 DingTalk 格式适配器(或直接使用社区成熟的 dingtalk-webhook 项目),确保告警信息含时间、指标、触发阈值与链接直达 Grafana 对应面板,实现“一看即懂、一点即查”。
第五步:安全加固与可持续运维
- 所有服务监听
0.0.1,通过 Nginx 反向代理 + Basic Auth 提供外网访问,避免裸端口暴露; - Prometheus 数据定期快照备份至云对象存储(OSS/COS),防止意外丢失;
- 使用 systemd 管理进程,保障异常退出自动拉起;
- 关键告警设置“夜间静默”(via Alertmanager 时间静默),兼顾响应与团队健康。
这套方案总资源占用约1.2GB内存,月成本不足30元(按中配实例计),却能覆盖CPU、内存、磁盘、网络、进程存活、HTTP接口可用性等核心维度,更重要的是,它是一套“活”的系统——你可以随时添加自定义 exporter(如监控MySQL慢查询、Nginx请求数),或接入业务埋点指标,让监控真正生长于你的技术脉络之中。
监控不是目的,而是持续交付与稳定运行的底气,当告警不再来自黑盒平台,而源于你亲手编排的逻辑与信任的数据,运维便从被动救火,转向主动守护。(全文约1260字)
热门产品
弹性云服务器
强悍硬件配置结合弹性云服务器采用纯SSD架构硬件设备,只需几分钟,便可轻松云端获取和启用,实现您的计算需求。
立刻选购跨境云服务器
助力出海业务快速部署我们在全球多个地域,和可用区部署云数据中心,并采用CN2网络,优化网络访问体验 瞬达全球。
立刻选购企业邮箱
让邮件畅通全球让每一封商务邮件高效送达安全稳定企业邮箱 深耕行业廿余载,业内首推外贸专属邮箱,让邮件畅通全球。
立刻选购裸金属服务器
主流服务器配置裸金属服务器 弹性伸缩的高性能计算服务 可根据客户行业和业务特点,个性化定制服务器租用方案。
立刻选购