云原生运维实战|Prometheus+Grafana 全套监控指南
传统运维依赖 Zabbix、Nagios 监控,部署笨重、耦合度高、适配云原生能力差、扩展困难。现如今 Prometheus+Grafana 已经成为现代化运维、云原生、容器化、微服务架构的标准监控方案。
这套架构轻量、解耦、可扩展、可视化极强,不仅可以监控服务器、业务服务,还可以监控交换机、路由器等网络设备,完全覆盖机房运维、云主机、容器集群、网络设备全场景。
博文定位:现代化运维监控可视化一站式实战教程,从零搭建生产级监控平台,包含服务器+网络设备监控、仪表盘模板复用、告警规则配置全流程落地
一、Prometheus+Grafana 核心组件详解
整套监控体系并非单一工具,而是多组件协同架构,新手必须先理清组件分工,才能理解监控完整流程。
1. Prometheus(时序数据库+采集服务)
Prometheus 是整套架构的核心,负责 定时采集指标、存储时序数据、执行告警规则。区别于传统监控,它采用「主动拉取(Pull)」模式,稳定性更高、适配容器动态扩缩容场景。
核心能力:指标采集、时序数据存储、PromQL 数据查询、告警规则计算、监控目标管理。
2. Grafana(可视化展示面板)
Grafana 专注数据可视化与展示,不存储数据,仅对接 Prometheus 数据源,将枯燥的监控指标转化为曲线图、仪表盘、热力图、拓扑图,支持自定义大屏、模板导入、权限管理。
3. Exporter(指标采集客户端)
各类设备、服务无法直接被 Prometheus 识别,需要通过 Exporter 暴露 metrics 指标:
-
node_exporter:服务器CPU、内存、磁盘、网络监控
-
snmp_exporter:交换机、路由器、防火墙等网络设备监控
-
mysql_exporter:数据库监控
-
nginx_exporter:Web服务监控
4. Alertmanager(告警分发组件)
独立告警组件,负责接收 Prometheus 告警、去重、降噪、分组,支持推送钉钉、企业微信、邮件、短信,实现故障及时通知。
5. 完整监控流程
Exporter 暴露指标 → Prometheus 定时拉取存储 → Grafana 可视化展示 → 触发阈值后 Alertmanager 推送告警
二、生产环境从零部署完整流程
本次采用 二进制生产部署方式,稳定无容器依赖、便于开机自启、适配所有Linux服务器,适合企业线上环境。
1. Prometheus 部署安装
# 下载解压
wget https://github.com/prometheus/prometheus/releases/download/v2.53.1/prometheus-2.53.1.linux-amd64.tar.gz
tar -zxvf prometheus-2.53.1.linux-amd64.tar.gz
mv prometheus-2.53.1.linux-amd64 /usr/local/prometheus
# 创建数据目录与规则目录
mkdir -p /data/prometheus
mkdir -p /usr/local/prometheus/rules
2. 核心配置 prometheus.yml
配置全局抓取周期、告警组件、监控任务,适配服务器与网络设备监控:
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
- "rules/*.yml"
alerting:
alertmanagers:
- static_configs:
- targets:
- 127.0.0.1:9093
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['127.0.0.1:9090']
- job_name: 'linux-server'
static_configs:
- targets: ['192.168.1.100:9100']
- job_name: 'network-device'
static_configs:
- targets: ['127.0.0.1:9116']
3. 配置系统服务开机自启
创建 systemd 服务,实现常驻运行、开机自启、异常重启:
[Unit]
Description=Prometheus
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/data/prometheus
[Install]
WantedBy=multi-user.target
4. Grafana 部署安装
yum install grafana -y
systemctl start grafana-server
systemctl enable grafana-server
默认端口 3000,初始账号密码:admin / admin,首次登录强制修改密码。
5. 对接 Prometheus 数据源
1. 登录 Grafana 后台 → Configuration → Data sources
2. 添加 Prometheus 数据源,填写地址:http://127.0.0.1:9090
3. 点击 Save \& test,显示成功即对接完成。
三、网络设备监控实战(交换机/路由器)
传统监控很难适配网络设备,Prometheus 通过 SNMP Exporter 实现全网设备统一监控,支持华为、华三、锐捷、思科全品牌设备。
1. SNMP Exporter 部署
安装启动监听 9116 端口,用于采集网络设备 SNMP 指标:
yum install snmp_exporter -y
systemctl start snmp_exporter
systemctl enable snmp_exporter
2. 网络设备配置(关键)
交换机/路由器开启 SNMP 服务,配置只读团体字,允许监控服务器抓取设备数据。
3. Prometheus 动态relabel配置
支持批量监控多台网络设备,无需逐个新增任务:
relabel_configs:
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9116
4. 监控覆盖指标
设备在线状态、端口UP/DOWN、端口出入流量、带宽利用率、设备CPU/温度、报文错包丢包,完全替代传统网管平台。
四、Grafana 仪表盘模板一键复用(生产必备)
无需手动画图,Grafana 官方提供海量成熟仪表盘模板,输入ID一键导入,直接生成高颜值监控大屏。
1. 常用生产模板ID(直接抄作业)
-
Linux服务器监控:1860(最全节点监控模板,CPU/内存/磁盘/网络全覆盖)
-
网络设备SNMP监控:11190、15170
-
MySQL数据库监控:12900
-
Nginx业务监控:8919
2. 导入步骤
1. 左侧菜单 Dashboards → Import
2. 输入模板ID,点击 Load
3. 选择 Prometheus 数据源,确认导入
4. 秒级生成完整监控大屏,支持自定义配色、告警阈值、时间粒度
3. 自定义仪表盘导出复用
自己调整好的大屏可直接导出 JSON 文件,新环境一键导入,实现监控模板标准化复用。
五、企业级告警规则完整配置
监控可视化只是基础,及时告警才是运维核心。本节落地服务器、网络设备高频告警规则。
1. 编写告警规则文件
新建 /usr/local/prometheus/rules/node_alerts.yml
groups:
- name: node_alerts
rules:
# CPU过高告警
- alert: HighCpuUsage
expr: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[1m])) * 100) > 90
for: 2m
labels:
severity: warning
annotations:
summary: "服务器CPU使用率过高"
# 内存过高告警
- alert: HighMemoryUsage
expr: 100 - (node_memory_MemFree_bytes/node_memory_MemTotal_bytes * 100) > 90
for: 2m
labels:
severity: warning
annotations:
summary: "服务器内存占用过高"
# 磁盘使用率过高
- alert: HighDiskUsage
expr: 100 - (node_filesystem_free_bytes / node_filesystem_size_bytes * 100) > 90
for: 2m
labels:
severity: critical
annotations:
summary: "磁盘空间即将占满"
# 设备离线告警
- alert: InstanceDown
expr: up == 0
for: 1m
labels:
severity: critical
annotations:
summary: "监控设备离线故障"
2. Alertmanager 告警推送配置
支持企业微信、钉钉、邮件推送,配置完成后故障自动推送运维人员,无需人工盯屏。
3. Grafana 可视化告警
支持面板直接创建告警规则、配置告警阈值、查看告警历史、告警状态可视化,兼顾简易运维与精准通知。
六、生产环境最佳实践与运维规范
-
统一模板规范:全网服务器、网络设备统一使用标准仪表盘,避免样式混乱
-
告警降噪处理:配置持续时间 for 2m,杜绝瞬时波动误告警
-
分层监控:硬件资源监控、网络设备监控、业务监控分层管理
-
定期备份数据:定时备份 TSDB 时序数据与告警规则文件
-
权限分级:Grafana 区分管理员、只读用户,防止误删监控配置
-
网络设备常态化巡检:依托SNMP监控,实现端口故障、带宽拥堵、设备温度异常提前预警
七、全文总结
Prometheus+Grafana 是现代化运维的监控基石,对比传统监控具备轻量、灵活、可扩展、云原生适配、可视化极强的核心优势。
本文完整落地了 组件原理、从零部署、网络设备监控、官方仪表盘模板复用、企业级告警规则配置 全流程,一套架构可同时覆盖服务器、网络设备、业务服务监控,完全满足中小企业生产环境监控刚需,是运维工程师进阶云原生的必备核心技能。