Dell PowerEdge R620 硬件温度监控配置报告
一、服务器信息
| 项目 |
信息 |
| 服务器型号 |
Dell PowerEdge R620 |
| CPU |
Intel Xeon E5-2650 @ 2.00GHz x2 |
| 系统 |
CentOS Linux release 7.9.2009 |
| 内核 |
3.10.0-1160.119.1.el7.x86_64 |
| IP地址 |
192.168.0.250 |
| 管理接口 |
iDRAC(Dell远程管理控制器) |
| 机箱序列号 |
2627S12 |
二、当前温度状况(配置时采集)
2.1 IPMI 温度传感器
| 传感器 |
当前温度 |
非关键阈值 |
关键阈值 |
状态 |
| 进风口 (Inlet) |
29°C |
42°C |
47°C |
✅ 正常 |
| 出风口 (Exhaust) |
43°C |
70°C |
75°C |
✅ 正常 |
| CPU1 |
73°C |
85°C |
90°C |
⚠️ 偏高 |
| CPU2 |
72°C |
85°C |
90°C |
⚠️ 偏高 |
2.2 风扇状态
| 风扇组 |
转速范围 (RPM) |
最低阈值 |
状态 |
| Fan A组 (1-7) |
4320-5400 |
720 |
✅ 正常 |
| Fan B组 (1-7) |
3360-5040 |
720 |
✅ 正常 |
| 最低转速 |
3360 RPM |
- |
✅ 正常 |
三、监控架构
┌─────────────────────────────────────────────────────────────────┐
│ Dell R620 (192.168.0.250) │
│ │
│ ┌──────────────┐ ┌──────────────────┐ ┌───────────────┐ │
│ │ IPMI硬件 │ │ ipmi_metrics.sh │ │ node-exporter│ │
│ │ 传感器 │───▶│ (采集脚本) │───▶│ (Docker容器) │ │
│ │ (温度/风扇) │ │ 每30秒采集 │ │ :9100 │ │
│ └──────────────┘ └──────────────────┘ └───────┬───────┘ │
│ │ │
│ ┌──────────────┐ ┌───────▼───────┐ │
│ │ CPU核心 │───────────────────────────▶│ textfile │ │
│ │ (hwmon) │ │ collector │ │
│ └──────────────┘ └───────────────┘ │
└──────────────────────────────────────────────────────────────┬──┘
│
:9100/metrics
│
┌───────────────────────────────────────────────────────────────▼──┐
│ K8s 集群 (monitoring命名空间) │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Prometheus │ │ AlertManager│ │ Grafana │ │
│ │ (抓取&存储) │───▶│ (告警分发) │ │ (可视化Dashboard) │ │
│ └──────┬──────┘ └─────────────┘ └─────────────────────┘ │
│ │ │
│ ┌────▼────┐ │
│ │ 8条告警 │ │
│ │ 规则 │ │
│ └─────────┘ │
└───────────────────────────────────────────────────────────────────┘
四、方案A - Grafana Dashboard
4.1 Dashboard 信息
| 项目 |
信息 |
| Dashboard名称 |
Dell R620 硬件温度监控 |
| UID |
hp-r620-temp |
| URL |
/d/hp-r620-temp/dell-r620 |
| 刷新频率 |
30秒 |
| 时间范围 |
默认最近6小时 |
4.2 Dashboard 面板说明
| 面板编号 |
面板名称 |
类型 |
数据源 |
说明 |
| 1 |
🔥 IPMI 温度监控 |
时序图 |
ipmi_temperature_celsius |
进风口/出风口/CPU温度,含阈值线 |
| 2 |
💻 CPU核心温度 |
时序图 |
node_hwmon_temp_celsius |
16个CPU核心的实时温度 |
| 3 |
🌀 风扇转速 |
时序图 |
ipmi_fan_rpm |
14个风扇的转速曲线 |
| 4 |
📊 当前温度状态 |
状态面板 |
ipmi_temperature_celsius |
CPU1/CPU2/进风口/出风口当前值 |
| 5 |
⚠️ 温度阈值对比 |
状态面板 |
ipmi_temperature_threshold_celsius |
各传感器的临界阈值 |
| 6 |
🌡️ CPU温度余量 |
仪表盘 |
计算值 |
CPU温度距临界值的余量 |
| 7 |
🔍 最低风扇转速 |
状态面板 |
ipmi_fan_rpm |
风扇最低/平均/最高转速 |
| 8 |
📈 24小时温度趋势 |
时序图 |
ipmi_temperature_celsius |
全天温度变化趋势 |
五、方案B - IPMI 数据采集
5.1 组件部署
| 组件 |
路径/位置 |
说明 |
| 采集脚本 |
/opt/node-exporter/ipmi_metrics.sh |
IPMI数据采集主脚本 |
| 循环脚本 |
/opt/node-exporter/ipmi_collector_loop.sh |
每30秒循环执行采集 |
| 数据目录 |
/opt/node-exporter/textfile/ |
Prometheus textfile格式输出目录 |
| 数据文件 |
/opt/node-exporter/textfile/ipmi_metrics.prom |
采集的IPMI指标数据 |
| systemd服务 |
ipmi-collector.service |
管理采集进程,开机自启 |
5.2 node-exporter 容器配置
docker run -d \
--name node-exporter \
--restart=always \
--net=host \
--pid=host \
-v /:/host:ro,rslave \
-v /opt/node-exporter/textfile:/textfile:ro \
prom/node-exporter:latest \
--path.rootfs=/host \
--collector.textfile.directory=/textfile \
--collector.hwmon \
--collector.thermal_zone
5.3 采集的 Prometheus 指标
| 指标名称 |
类型 |
标签 |
说明 |
ipmi_temperature_celsius |
gauge |
sensor, type, id |
IPMI温度传感器读数(°C) |
ipmi_fan_rpm |
gauge |
sensor, fan_id |
IPMI风扇转速(RPM) |
ipmi_temperature_threshold_celsius |
gauge |
sensor, type, id, threshold |
IPMI温度阈值(°C) |
node_hwmon_temp_celsius |
gauge |
chip, sensor |
CPU核心温度(°C) |
5.4 IPMI 温度类型标签
| type |
id |
说明 |
inlet |
inlet |
进风口温度 |
exhaust |
exhaust |
出风口温度 |
cpu |
cpu1 |
CPU1 温度 |
cpu |
cpu2 |
CPU2 温度 |
5.5 IPMI 阈值类型
| threshold标签 |
说明 |
lower_non_recoverable |
下限不可恢复 |
lower_critical |
下限关键 |
lower_non_critical |
下限非关键 |
upper_non_critical |
上限非关键 |
upper_critical |
上限关键 |
upper_non_recoverable |
上限不可恢复 |
六、告警规则
6.1 告警规则列表
| 告警名称 |
触发条件 |
持续时间 |
严重级别 |
说明 |
HPR620CPUTemperatureWarning |
CPU温度 > 85°C |
2分钟 |
warning |
CPU温度超过非关键阈值 |
HPR620CPUTemperatureCritical |
CPU温度 > 90°C |
1分钟 |
critical |
CPU温度超过关键阈值,可能损坏硬件 |
HPR620InletTemperatureWarning |
进风口温度 > 42°C |
5分钟 |
warning |
机房环境温度过高 |
HPR620ExhaustTemperatureWarning |
出风口温度 > 70°C |
5分钟 |
warning |
服务器散热不足 |
HPR620FanSpeedLow |
风扇转速 < 1500 RPM |
2分钟 |
critical |
风扇可能故障 |
HPR620FanStopped |
风扇转速 < 720 RPM |
1分钟 |
critical |
风扇可能已停转 |
HPR620IPMICollectorDown |
IPMI数据缺失 |
2分钟 |
warning |
采集服务异常 |
HPR620NodeExporterDown |
node-exporter离线 |
1分钟 |
critical |
监控完全失效 |
6.2 告警规则配置文件
K8s资源: prometheusrule.monitoring.coreos.com/hp-r620-hardware-alerts
命名空间: monitoring
标签: release=prometheus
七、验证结果
7.1 node-exporter 验证
✅ Docker容器运行正常
✅ textfile collector已启用
✅ IPMI数据通过 /metrics 暴露
✅ CPU核心温度数据正常采集
7.2 Prometheus 验证
✅ 192.168.0.250:9100 抓取目标正常
✅ ipmi_temperature_celsius 数据已入库
✅ ipmi_fan_rpm 数据已入库
✅ ipmi_temperature_threshold_celsius 数据已入库
✅ node_hwmon_temp_celsius 数据已入库
✅ 8条告警规则全部加载(状态: inactive = 正常)
7.3 Grafana 验证
✅ Dashboard已创建 (UID: hp-r620-temp)
✅ 8个监控面板配置完成
✅ 数据源已关联Prometheus
✅ 面板数据正常显示
7.4 采集服务验证
✅ ipmi-collector.service 运行正常
✅ 每30秒自动采集IPMI数据
✅ 开机自启已配置
八、运维说明
8.1 日常检查
# 1. 检查采集服务状态
ssh root@192.168.0.250 "systemctl status ipmi-collector"
# 2. 检查node-exporter容器
ssh root@192.168.0.250 "docker ps | grep node-exporter"
# 3. 查看当前IPMI数据
ssh root@192.168.0.250 "cat /opt/node-exporter/textfile/ipmi_metrics.prom"
# 4. 手动执行采集
ssh root@192.168.0.250 "/opt/node-exporter/ipmi_metrics.sh"
# 5. 查看Prometheus中的温度数据
kubectl exec -n monitoring prometheus-prometheus-kube-prometheus-prometheus-0 -c prometheus -- \
wget -qO- "http://localhost:9090/api/v1/query?query=ipmi_temperature_celsius{instance=~\"192.168.0.250.*\"}"
8.2 故障排查
| 问题 |
排查步骤 |
| IPMI数据缺失 |
1. 检查 ipmi-collector.service 状态 2. 手动运行 /opt/node-exporter/ipmi_metrics.sh 3. 检查 IPMI 内核模块是否加载 |
| 温度数据异常 |
1. 在服务器上运行 ipmitool sensor 对比 2. 检查 ipmi_metrics.prom 文件内容 |
| Grafana面板无数据 |
1. 检查 Prometheus 抓取目标状态 2. 确认 external-node-exporter ServiceMonitor 存在 |
| 告警未触发 |
1. 检查 PrometheusRule 标签是否包含 release=prometheus 2. 检查 AlertManager 配置 |
8.3 文件清单
| 文件路径 |
服务器 |
说明 |
/opt/node-exporter/ipmi_metrics.sh |
192.168.0.250 |
IPMI数据采集主脚本 |
/opt/node-exporter/ipmi_collector_loop.sh |
192.168.0.250 |
循环采集脚本 |
/opt/node-exporter/textfile/ipmi_metrics.prom |
192.168.0.250 |
采集的指标数据文件 |
/etc/systemd/system/ipmi-collector.service |
192.168.0.250 |
systemd服务配置 |
prometheusrule/hp-r620-hardware-alerts |
K8s集群 |
Prometheus告警规则 |
| Grafana Dashboard (UID: hp-r620-temp) |
K8s集群 |
Grafana监控面板 |
九、温度安全参考
9.1 Dell R620 官方温度阈值
| 组件 |
正常范围 |
非关键阈值 |
关键阈值 |
紧急处理 |
| CPU |
40-75°C |
85°C |
90°C |
>90°C 立即关机 |
| 进风口 |
20-35°C |
42°C |
47°C |
检查机房空调 |
| 出风口 |
35-50°C |
70°C |
75°C |
检查风扇/散热 |
| 风扇 |
3000-6000 RPM |
1500 RPM |
720 RPM |
>720 RPM 立即更换 |
9.2 夏季高温建议
- 机房温度:建议保持在 22-25°C
- 监控频率:夏季建议每小时查看一次温度趋势
- 告警配置:确保邮件/微信告警通道正常
- 应急预案:CPU温度超过 85°C 时考虑临时降低负载
- 风扇维护:定期检查风扇灰尘,确保散热效率
文档创建时间: 2026-07-28
文档版本: v1.0
配置人员: Trae AI Assistant
十、邮件告警配置(Alertmanager + 163邮箱)
10.1 邮件配置信息
| 项目 |
信息 |
| SMTP服务器 |
smtp.163.com:25 |
| 发件邮箱 |
saier_cy@163.com |
| 收件邮箱 |
saier_cy@163.com |
| 认证方式 |
SMTP AUTH (用户名+授权码) |
| TLS |
启用 (STARTTLS) |
| 告警接收器 |
hp-r620-email |
10.2 Alertmanager 配置
配置方式: 通过更新 K8s Secret alertmanager-prometheus-kube-prometheus-alertmanager
Secret 内容:
- alertmanager.yaml - Alertmanager 主配置文件
- email-template.tmpl - 自定义HTML邮件模板
路由规则:
route:
group_by: ['namespace', 'alertname', 'severity']
group_wait: 10s # 告警分组等待时间
group_interval: 5m # 同组告警发送间隔
repeat_interval: 1h # 重复告警发送间隔
receiver: hp-r620-email # 默认接收器
routes:
- matchers:
- alertname =~ "InfoInhibitor|Watchdog"
receiver: "null" # 忽略测试告警
10.3 邮件模板特性
| 特性 |
说明 |
| 邮件格式 |
HTML(支持中文) |
| 告警状态标识 |
红色(告警中) / 绿色(已恢复) |
| 严重级别颜色 |
红色(critical) / 黄色(warning) / 绿色(resolved) / 蓝色(info) |
| 告警详情 |
包含告警名称、级别、服务器、触发时间 |
| 恢复通知 |
启用 (send_resolved: true) |
| 邮件语言 |
中文 |
10.4 告警邮件触发条件
| 告警名称 |
触发条件 |
持续时间 |
严重级别 |
是否发邮件 |
| HPR620CPUTemperatureWarning |
CPU温度 > 85°C |
2分钟 |
warning |
✅ |
| HPR620CPUTemperatureCritical |
CPU温度 > 90°C |
1分钟 |
critical |
✅ |
| HPR620InletTemperatureWarning |
进风口温度 > 42°C |
5分钟 |
warning |
✅ |
| HPR620ExhaustTemperatureWarning |
出风口温度 > 70°C |
5分钟 |
warning |
✅ |
| HPR620FanSpeedLow |
风扇转速 < 1500 RPM |
2分钟 |
critical |
✅ |
| HPR620FanStopped |
风扇转速 < 720 RPM |
1分钟 |
critical |
✅ |
| HPR620IPMICollectorDown |
IPMI数据缺失 |
2分钟 |
warning |
✅ |
| HPR620NodeExporterDown |
node-exporter离线 |
1分钟 |
critical |
✅ |
10.5 验证结果
✅ Alertmanager配置已加载(SMTP配置、路由规则、邮件模板)
✅ SMTP连接正常(smtp.163.com:25 可达,STARTTLS启用)
✅ 测试邮件发送成功(metrics: notification_requests_total{integration="email"} 持续增长)
✅ 邮件模板渲染正确(中文HTML格式,含告警详情表格)
✅ 恢复通知已启用(告警恢复时自动发送恢复邮件)
10.6 配置文件位置
| 文件 |
位置 |
说明 |
| Alertmanager配置 |
K8s Secret: alertmanager-prometheus-kube-prometheus-alertmanager |
命名空间: monitoring |
| 邮件模板 |
K8s Secret同上 (email-template.tmpl键) |
自定义HTML模板 |
| Prometheus告警规则 |
PrometheusRule: hp-r620-hardware-alerts |
8条告警规则 |
| Helm部署路径 |
/home/rian/Documents/electricity_monitoring/kube-prometheus-stack |
kube-prometheus-stack |
10.7 运维说明
查看Alertmanager当前配置:
kubectl get secret alertmanager-prometheus-kube-prometheus-alertmanager -n monitoring -o jsonpath="{.data.alertmanager\.yaml}" | base64 -d
查看邮件发送metrics:
kubectl exec -n monitoring alertmanager-prometheus-kube-prometheus-alertmanager-0 -c alertmanager -- \
wget -qO- http://localhost:9093/metrics | grep notification_requests_total
手动发送测试告警:
CURRENT_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
kubectl exec -n monitoring alertmanager-prometheus-kube-prometheus-alertmanager-0 -c alertmanager -- \
wget -qO- --post-data='[{"labels":{"alertname":"TestEmail","severity":"warning","server":"hp-r620","instance":"192.168.0.250"},"annotations":{"summary":"测试","description":"测试邮件"},"startsAt":"'$CURRENT_TIME'"}]' \
--header="Content-Type: application/json" \
http://localhost:9093/api/v2/alerts
文档更新时间: 2026-07-28
文档版本: v2.0 (新增邮件告警配置)
配置人员: Trae AI Assistant
来源:/home/rain/Documents/k8s_ins/dell-r620_temperature_monitor/dell-r620-temperature-monitoring-report.md | 最后更新:2026-07-28 01:11(由 build/sync.py 同步,请勿在站点侧修改)