在Linux服务器运维场景中,配置监控报警能够帮助我们及时发现CPU、内存、磁盘等资源异常,以及服务宕机等问题,避免故障扩大造成业务损失。本文将基于Prometheus生态组件,讲解完整的Linux监控报警配置流程。

一、核心组件说明
本次配置使用Prometheus生态的常用组件,各组件功能如下:
- Node Exporter:部署在每台Linux服务器上,负责采集服务器的CPU、内存、磁盘、网络等基础指标,暴露HTTP接口供Prometheus拉取。
- Prometheus:核心监控服务,定时从Node Exporter拉取指标数据并存储,同时根据配置的报警规则触发告警。
- Alertmanager:接收Prometheus发送的告警信息,对告警进行去重、分组、路由,最终发送到邮件、企业微信等通知渠道。
二、组件安装部署
1. 安装Node Exporter
首先在所有需要监控的Linux服务器上部署Node Exporter,以Linux amd64架构为例:
# 下载Node Exporter安装包 wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz # 解压安装包 tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz # 移动到/usr/local目录 mv node_exporter-1.6.1.linux-amd64 /usr/local/node_exporter # 创建systemd服务文件 cat > /etc/systemd/system/node_exporter.service << EOF [Unit] Description=Node Exporter After=network.target [Service] User=root ExecStart=/usr/local/node_exporter/node_exporter Restart=always [Install] WantedBy=multi-user.target EOF # 启动服务并设置开机自启 systemctl daemon-reload systemctl start node_exporter systemctl enable node_exporter
启动后可以通过curl http://127.0.0.1:9100/metrics验证服务是否正常暴露指标。
2. 安装Prometheus
选择一台作为监控中心的Linux服务器部署Prometheus:
# 下载Prometheus安装包
wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
# 解压安装包
tar -zxvf prometheus-2.45.0.linux-amd64.tar.gz
# 移动到/usr/local目录
mv prometheus-2.45.0.linux-amd64 /usr/local/prometheus
# 修改Prometheus配置文件,添加Node Exporter采集目标
cat > /usr/local/prometheus/prometheus.yml << EOF
global:
scrape_interval: 15s
scrape_configs:
- job_name: "node"
static_configs:
- targets: ["127.0.0.1:9100"] # 替换为实际Node Exporter的IP和端口,多个目标用逗号分隔
EOF
# 创建systemd服务文件
cat > /etc/systemd/system/prometheus.service << EOF
[Unit]
Description=Prometheus
After=network.target
[Service]
User=root
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data
Restart=always
[Install]
WantedBy=multi-user.target
EOF
# 启动服务并设置开机自启
systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus
启动后访问http://127.0.0.1:9090/targets可以看到Node Exporter的采集状态。
3. 安装Alertmanager
同样在监控中心服务器部署Alertmanager:
# 下载Alertmanager安装包 wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz # 解压安装包 tar -zxvf alertmanager-0.25.0.linux-amd64.tar.gz # 移动到/usr/local目录 mv alertmanager-0.25.0.linux-amd64 /usr/local/alertmanager # 创建systemd服务文件 cat > /etc/systemd/system/alertmanager.service << EOF [Unit] Description=Alertmanager After=network.target [Service] User=root ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml Restart=always [Install] WantedBy=multi-user.target EOF # 启动服务并设置开机自启 systemctl daemon-reload systemctl start alertmanager systemctl enable alertmanager
三、配置报警规则
首先在Prometheus中配置报警规则文件路径,修改/usr/local/prometheus/prometheus.yml,添加如下内容:
rule_files: - "rules/*.yml" # 报警规则文件存放目录
然后在/usr/local/prometheus/rules/目录下创建服务器基础监控报警规则文件node_alerts.yml:
groups:
- name: node_alerts
rules:
# CPU使用率超过80%持续1分钟触发告警
- alert: HighCpuUsage
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[1m])) * 100) > 80
for: 1m
labels:
severity: warning
annotations:
summary: "服务器CPU使用率过高"
description: "实例{{ $labels.instance }}的CPU使用率超过80%,当前值为{{ $value }}%"
# 内存使用率超过90%触发告警
- alert: HighMemoryUsage
expr: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 > 90
for: 1m
labels:
severity: critical
annotations:
summary: "服务器内存使用率过高"
description: "实例{{ $labels.instance }}的内存使用率超过90%,当前值为{{ $value }}%"
# 磁盘根分区使用率超过85%触发告警
- alert: HighDiskUsage
expr: (1 - (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"})) * 100 > 85
for: 1m
labels:
severity: warning
annotations:
summary: "服务器磁盘使用率过高"
description: "实例{{ $labels.instance }}的根分区使用率超过85%,当前值为{{ $value }}%"
重启Prometheus使配置生效:
systemctl restart prometheus
四、配置报警通知渠道
以邮件报警为例,修改/usr/local/alertmanager/alertmanager.yml配置文件:
global:
smtp_smarthost: 'smtp.ipipp.com:465' # 替换为实际邮箱SMTP服务器地址
smtp_from: 'alert@ipipp.com' # 发件人邮箱
smtp_auth_username: 'alert@ipipp.com' # 邮箱账号
smtp_auth_password: 'your_email_password' # 邮箱授权码
smtp_require_tls: false
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'email-notifications'
receivers:
- name: 'email-notifications'
email_configs:
- to: 'admin@ipipp.com' # 收件人邮箱,多个收件人用逗号分隔
send_resolved: true # 告警恢复时发送通知
重启Alertmanager使配置生效:
systemctl restart alertmanager
最后需要在Prometheus中配置Alertmanager地址,修改/usr/local/prometheus/prometheus.yml,添加如下内容:
alerting:
alertmanagers:
- static_configs:
- targets:
- "127.0.0.1:9093" # Alertmanager的地址和端口
再次重启Prometheus,当服务器指标触发报警规则时,就会收到对应的邮件告警通知。
五、验证配置
可以手动模拟服务器资源异常来验证报警是否生效,比如通过stress工具压满CPU:
# 安装stress工具 yum install -y stress # 压满2个CPU核心,持续5分钟 stress --cpu 2 --timeout 300
等待1分钟左右,就可以在Prometheus的Alert页面看到HighCpuUsage告警状态变为FIRING,随后会收到邮件告警通知。
Linux监控报警配置PrometheusAlertmanagerNode_Exporter修改时间:2026-07-09 16:21:45