本文档风哥主要介绍Rancher集群监控与告警规则配置实战,包括Rancher数据库监控概念、Rancher数据库Prometheus概念、Rancher数据库告警概念、Rancher数据库监控准备、Rancher数据库监控要求、Rancher数据库监控规划、Rancher数据库安装监控、Rancher数据库配置告警、Rancher数据库配置仪表板、Rancher数据库管理监控、Rancher数据库测试告警、Rancher数据库优化监控等内容,风哥教程参考Rancher官方文档监控、告警、Prometheus等内容,适合运维人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。
Part01-基础概念与理论知识
1.1 Rancher数据库监控概念
Rancher数据库监控是指对Rancher集群和应用程序进行实时监控,收集和分析各种指标数据,如CPU使用率、内存使用率、磁盘使用率、网络流量等。Rancher集成了Prometheus和Grafana,提供了强大的监控和可视化功能。监控可以帮助运维人员及时发现和处理问题,提高系统的稳定性和可靠性。更多视频教程www.fgedu.net.cn
- 实时监控:实时收集和分析指标
- 可视化展示:通过Grafana展示数据
- 告警通知:支持多种告警方式
- 历史数据:保存历史监控数据
- 自定义指标:支持自定义监控指标
1.2 Rancher数据库Prometheus概念
Rancher数据库Prometheus是一个开源的监控和告警系统,用于收集和存储时间序列数据。Prometheus通过Pull模式从目标(如Kubernetes集群、应用程序)收集指标数据,支持多种数据格式和协议。Prometheus提供了强大的查询语言PromQL,可以灵活地查询和分析监控数据。学习交流加群风哥微信: itpux-com
- Pull模式:主动从目标收集数据
- 时间序列:存储时间序列数据
- 查询语言:支持PromQL查询
- 告警规则:支持告警规则配置
- 多维度:支持多维度数据
1.3 Rancher数据库告警概念
Rancher数据库告警是指根据监控指标配置告警规则,当指标达到阈值时触发告警。Rancher支持多种告警方式,如邮件、短信、Webhook、Slack等。告警规则可以配置告警级别、告警持续时间、告警间隔等参数。告警可以帮助运维人员及时发现和处理问题,减少故障影响时间。学习交流加群风哥QQ113257174
- 规则配置:灵活配置告警规则
- 多种方式:支持多种告警方式
- 告警级别:支持不同告警级别
- 告警抑制:支持告警抑制
- 告警聚合:支持告警聚合
Part02-生产环境规划与建议
2.1 Rancher数据库监控准备
Rancher数据库监控准备:
# 1. Rancher Server准备
– Rancher Server已部署
– Rancher Server可访问
– Rancher Server配置正确
# 2. 监控需求分析
– 确定监控对象
– 确定监控指标
– 确定监控频率
– 确定监控保留时间
# 3. 告警需求分析
– 确定告警对象
– 确定告警指标
– 确定告警阈值
– 确定告警方式
# 4. 存储准备
– Prometheus存储:>= 50GB
– Grafana存储:>= 10GB
– 告警存储:>= 5GB
# 5. 网络准备
– 网络带宽:>= 100Mbps
– 网络延迟:< 100ms
- 端口开放:9090、3000等
2.2 Rancher数据库监控要求
Rancher数据库监控要求:
# Prometheus要求
– 版本:>= v2.45.0
– 存储:>= 50GB
– 内存:>= 4GB
– CPU:>= 2核
# Grafana要求
– 版本:>= v9.0.0
– 存储:>= 10GB
– 内存:>= 2GB
– CPU:>= 1核
# 告警要求
– 告警方式:邮件、短信、Webhook、Slack等
– 告警频率:根据业务需求
– 告警级别:Critical、Warning、Info等
– 告警抑制:支持告警抑制
# 监控指标要求
– 集群指标:CPU、内存、磁盘、网络等
– 节点指标:CPU、内存、磁盘、网络等
– Pod指标:CPU、内存、磁盘、网络等
– 应用指标:自定义应用指标
# 监控保留要求
– Prometheus数据保留:15天
– Grafana数据保留:30天
– 告警数据保留:90天
2.3 Rancher数据库监控规划
Rancher数据库监控规划:
# 监控对象规划
集群监控:fgedu-rke2-cluster
节点监控:所有节点
Pod监控:所有Pod
应用监控:Nginx、MySQL、Redis等
# 监控指标规划
集群指标:
– CPU使用率
– 内存使用率
– 磁盘使用率
– 网络流量
节点指标:
– CPU使用率
– 内存使用率
– 磁盘使用率
– 网络流量
Pod指标:
– CPU使用率
– 内存使用率
– 磁盘使用率
– 网络流量
# 告警规则规划
集群告警:
– CPU使用率 > 80%
– 内存使用率 > 80%
– 磁盘使用率 > 80%
节点告警:
– CPU使用率 > 80%
– 内存使用率 > 80%
– 磁盘使用率 > 80%
Pod告警:
– CPU使用率 > 80%
– 内存使用率 > 80%
– Pod重启次数 > 5次
# 告警方式规划
邮件告警:fgedu@fgedu.net.cn
短信告警:13800138000
Webhook告警:http://alert.fgedu.net.cn/webhook
Slack告警:#fgedu-alerts
Part03-生产环境项目实施方案
3.1 Rancher数据库安装监控
3.1.1 Rancher数据库通过Web界面安装监控
# 步骤1:登录Rancher管理界面
# 步骤2:点击”集群” – 选择集群 – 点击”工具” – “监控”
# 步骤3:点击”启用”按钮
# 步骤4:选择监控版本:v0.45.0
# 步骤5:配置监控参数:
# Prometheus存储:50Gi
# Grafana存储:10Gi
# 告警规则:启用
# 步骤6:点击”安装”按钮
# 通过Helm安装监控
[root@rancher ~]# helm repo add rancher-monitoring https://charts.rancher.io
“rancher-monitoring” has been added to your repositories
[root@rancher ~]# helm repo update
Hang tight while we grab the latest from your chart repositories…
…Successfully got an update from the “rancher-monitoring” chart repository
Update Complete. ⎈Happy Helming!⎈
[root@rancher ~]# helm install rancher-monitoring rancher-monitoring/rancher-monitoring \
–namespace cattle-monitoring-system \
–set prometheus.prometheusSpec.retention=15d \
–set prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.storageClassName=gp2 \
–set prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.resources.requests.storage=50Gi \
–set grafana.persistence.enabled=true \
–set grafana.persistence.size=10Gi \
–set grafana.persistence.storageClassName=gp2
NAME: rancher-monitoring
LAST DEPLOYED: Fri Apr 10 10:00:00 2026
NAMESPACE: cattle-monitoring-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The Rancher Monitoring Stack has been installed successfully!
Access Grafana:
kubectl -n cattle-monitoring-system port-forward svc/rancher-monitoring-grafana 3000:80
Access Prometheus:
kubectl -n cattle-monitoring-system port-forward svc/rancher-monitoring-prometheus 9090:9090
# 查看监控组件状态
[root@rancher ~]# kubectl get pods -n cattle-monitoring-system
NAME READY STATUS RESTARTS AGE
rancher-monitoring-operator-1234567890-abcde 1/1 Running 0 2m
rancher-monitoring-prometheus-0 2/2 Running 0 2m
rancher-monitoring-grafana-1234567890-abcde 1/1 Running 0 2m
rancher-monitoring-alertmanager-0 1/1 Running 0 2m
3.2 Rancher数据库配置告警
3.2.1 Rancher数据库配置告警规则
# 步骤1:登录Rancher管理界面
# 步骤2:点击”集群” – 选择集群 – 点击”监控” – “告警”
# 步骤3:点击”创建告警规则”按钮
# 步骤4:填写告警规则信息:
# 规则名称:fgedu-cpu-alert
# 规则描述:Rancher数据库CPU使用率告警
# 指标:CPU使用率
# 阈值:> 80%
# 持续时间:5分钟
# 步骤5:配置告警方式:
# 邮件:fgedu@fgedu.net.cn
# 短信:13800138000
# 步骤6:点击”创建”按钮
# 通过kubectl配置告警规则
[root@rancher ~]# cat <
for: 5m
labels:
severity: warning
annotations:
summary: “High CPU usage detected”
description: “Pod {{ $labels.pod }} has CPU usage above 80% for more than 5 minutes.”
EOF
prometheusrule.monitoring.coreos.com/fgedu-cpu-alert created
# 查看告警规则
[root@rancher ~]# kubectl get prometheusrules -n cattle-monitoring-system
NAME AGE
fgedu-cpu-alert 1m
# 查看告警规则详情
[root@rancher ~]# kubectl describe prometheusrule fgedu-cpu-alert -n cattle-monitoring-system
Name: fgedu-cpu-alert
Namespace: cattle-monitoring-system
Labels:
Annotations:
API Version: monitoring.coreos.com/v1
Kind: PrometheusRule
Metadata:
Creation Timestamp: 2026-04-10T10:00:00Z
Generation: 1
Resource Version: 1234567890
UID: 12345678-90ab-cdef-1234-567890abcdef
Spec:
Groups:
Name: fgedu-cpu-alerts
Rules:
Alert: HighCPUUsage
Annotations:
Description: Pod {{ $labels.pod }} has CPU usage above 80% for more than 5 minutes.
Summary: High CPU usage detected
Expr: sum(rate(container_cpu_usage_seconds_total{image!=””}[5m])) by (pod) / sum(kube_pod_container_resource_limits{resource=”cpu”}) by (pod) * 100 > 80
For: 5m
Labels:
Severity: warning
# 配置告警通知 # 访问Grafana # 通过Web界面配置仪表板 # 通过API配置仪表板 # 通过Grafana API导入仪表板 { # 查看仪表板列表 [ # 通过Prometheus查询监控数据 # 查询CPU使用率 { # 查询内存使用率 { { # 查看告警历史 { # 测试告警通知 # 优化参数 # 查看Prometheus性能 # 查看Prometheus存储 Rancher数据库监控最佳实践: Rancher数据库监控问题排查: # 问题1:Prometheus无法启动 # 问题2:告警不触发 # 问题3:告警通知失败 # 问题4:Grafana无法访问 Rancher数据库监控维护: # 1. 定期检查 # 2. 定期优化 # 3. 定期备份 # 4. 定期清理 # 5. 定期审计 本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
[root@rancher ~]# cat <3.3 Rancher数据库配置仪表板
3.3.1 Rancher数据库配置Grafana仪表板
[root@rancher ~]# kubectl -n cattle-monitoring-system port-forward svc/rancher-monitoring-grafana 3000:80 &
Forwarding from 127.0.0.1:3000 -> 3000
Forwarding from [::1]:3000 -> 3000
# URL: http://localhost:3000
# 用户名:admin
# 密码:prom-operator
# 步骤1:登录Grafana界面
# 步骤2:点击”+” – “Import”
# 步骤3:填写仪表板信息:
# 仪表板名称:fgedu-cluster-dashboard
# 仪表板描述:Rancher数据库集群监控仪表板
# 步骤4:上传仪表板JSON文件
# 步骤5:点击”Load”按钮
# 步骤6:选择数据源:Prometheus
# 步骤7:点击”Import”按钮
[root@rancher ~]# cat <
{
“dashboard”: {
“title”: “fgedu-cluster-dashboard”,
“description”: “Rancher数据库集群监控仪表板”,
“tags”: [“rancher”, “cluster”],
“timezone”: “browser”,
“panels”: [
{
“id”: 1,
“title”: “CPU使用率”,
“type”: “graph”,
“targets”: [
{
“expr”: “sum(rate(container_cpu_usage_seconds_total{image!=\”\”}[5m])) by (pod) / sum(kube_pod_container_resource_limits{resource=\”cpu\”}) by (pod) * 100″,
“legendFormat”: “{{pod}}”
}
]
},
{
“id”: 2,
“title”: “内存使用率”,
“type”: “graph”,
“targets”: [
{
“expr”: “sum(container_memory_working_set_bytes{image!=\”\”}) by (pod) / sum(kube_pod_container_resource_limits{resource=\”memory\”}) by (pod) * 100″,
“legendFormat”: “{{pod}}”
}
]
}
]
}
}
EOF
[root@rancher ~]# curl -X POST \
-H “Content-Type: application/json” \
-u “admin:prom-operator” \
http://localhost:3000/api/dashboards/db \
-d @fgedu-cluster-dashboard.json
“id”: 123,
“slug”: “fgedu-cluster-dashboard”,
“status”: “success”,
“uid”: “1234567890abcdef”,
“url”: “/d/1234567890abcdef/fgedu-cluster-dashboard”,
“version”: 1
}
[root@rancher ~]# curl -u “admin:prom-operator” \
http://localhost:3000/api/search?query=fgedu
{
“id”: 123,
“title”: “fgedu-cluster-dashboard”,
“uri”: “db/fgedu-cluster-dashboard”,
“type”: “dash-db”,
“tags”: [“rancher”, “cluster”],
“isStarred”: false
}
]
Part04-生产案例与实战讲解
4.1 Rancher数据库管理监控
4.1.1 Rancher数据库查看监控数据
# 步骤1:登录Rancher管理界面
# 步骤2:点击”集群” – 选择集群 – 点击”监控”
# 步骤3:查看Grafana仪表板
# 步骤4:查看Prometheus数据
# 步骤5:查看告警规则
[root@rancher ~]# kubectl -n cattle-monitoring-system port-forward svc/rancher-monitoring-prometheus 9090:9090 &
Forwarding from 127.0.0.1:9090 -> 9090
Forwarding from [::1]:9090 -> 9090
[root@rancher ~]# curl -G http://localhost:9090/api/v1/query \
–data-urlencode ‘query=sum(rate(container_cpu_usage_seconds_total{image!=””}[5m])) by (pod) / sum(kube_pod_container_resource_limits{resource=”cpu”}) by (pod) * 100’
“status”: “success”,
“data”: {
“resultType”: “vector”,
“result”: [
{
“metric”: {
“pod”: “fgedu-nginx-1234567890-abcde”
},
“value”: [1712712000, “45.23”]
},
{
“metric”: {
“pod”: “fgedu-nginx-1234567890-fghij”
},
“value”: [1712712000, “52.34”]
}
]
}
}
[root@rancher ~]# curl -G http://localhost:9090/api/v1/query \
–data-urlencode ‘query=sum(container_memory_working_set_bytes{image!=””}) by (pod) / sum(kube_pod_container_resource_limits{resource=”memory”}) by (pod) * 100’
“status”: “success”,
“data”: {
“resultType”: “vector”,
“result”: [
{
“metric”: {
“pod”: “fgedu-nginx-1234567890-abcde”
},
“value”: [1712712000, “35.67”]
},
{
“metric”: {
“pod”: “fgedu-nginx-1234567890-fghij”
},
“value”: [1712712000, “42.89”]
}
]
}
}
4.2 Rancher数据库测试告警
4.2.1 Rancher数据库测试告警规则
[root@rancher ~]# curl http://localhost:9090/api/v1/alerts
“status”: “success”,
“data”: {
“alerts”: [
{
“labels”: {
“alertname”: “HighCPUUsage”,
“pod”: “fgedu-nginx-1234567890-abcde”,
“severity”: “warning”
},
“annotations”: {
“description”: “Pod fgedu-nginx-1234567890-abcde has CPU usage above 80% for more than 5 minutes.”,
“summary”: “High CPU usage detected”
},
“state”: “firing”,
“activeAt”: “2026-04-10T10:00:00Z”,
“value”: “85.23”
}
]
}
}
[root@rancher ~]# curl http://localhost:9090/api/v1/query \
–data-urlencode ‘query=ALERTS{alertname=”HighCPUUsage”}’
“status”: “success”,
“data”: {
“resultType”: “vector”,
“result”: [
{
“metric”: {
“alertname”: “HighCPUUsage”,
“pod”: “fgedu-nginx-1234567890-abcde”,
“severity”: “warning”
},
“value”: [1712712000, “1”]
}
]
}
}
# 步骤1:触发告警条件
# 步骤2:检查告警状态
# 步骤3:检查告警通知
# 步骤4:验证告警内容
4.3 Rancher数据库优化监控
4.3.1 Rancher数据库优化Prometheus性能
[root@rancher ~]# kubectl edit prometheus rancher-monitoring-prometheus -n cattle-monitoring-system
spec:
prometheusSpec:
retention: 15d
retentionSize: 50GB
storageSpec:
volumeClaimTemplate:
spec:
storageClassName: gp2
resources:
requests:
storage: 50Gi
resources:
requests:
cpu: 2
memory: 4Gi
limits:
cpu: 4
memory: 8Gi
[root@rancher ~]# kubectl top pod -n cattle-monitoring-system rancher-monitoring-prometheus-0
NAME CPU(cores) MEMORY(bytes)
rancher-monitoring-prometheus-0 2.5 4.5Gi
[root@rancher ~]# kubectl exec -n cattle-monitoring-system rancher-monitoring-prometheus-0 — df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 50G 20G 30G 40% /prometheus
Part05-风哥经验总结与分享
5.1 Rancher数据库监控最佳实践
5.2 Rancher数据库监控问题排查
# 现象:Prometheus Pod状态为CrashLoopBackOff
# 原因:配置错误、存储不足、资源不足
# 解决:
[root@rancher ~]# kubectl get pods -n cattle-monitoring-system
[root@rancher ~]# kubectl describe pod rancher-monitoring-prometheus-0 -n cattle-monitoring-system
[root@rancher ~]# kubectl logs rancher-monitoring-prometheus-0 -n cattle-monitoring-system
[root@rancher ~]# kubectl exec -n cattle-monitoring-system rancher-monitoring-prometheus-0 — df -h
# 现象:告警规则配置后不触发告警
# 原因:规则配置错误、指标不存在、阈值设置不当
# 解决:
[root@rancher ~]# kubectl get prometheusrules -n cattle-monitoring-system
[root@rancher ~]# kubectl describe prometheusrule fgedu-cpu-alert -n cattle-monitoring-system
[root@rancher ~]# curl http://localhost:9090/api/v1/query \
–data-urlencode ‘query=sum(rate(container_cpu_usage_seconds_total{image!=””}[5m])) by (pod) / sum(kube_pod_container_resource_limits{resource=”cpu”}) by (pod) * 100’
# 现象:告警触发后未收到通知
# 原因:通知配置错误、网络不通、认证失败
# 解决:
[root@rancher ~]# kubectl get alertmanagerconfigs -n cattle-monitoring-system
[root@rancher ~]# kubectl describe alertmanagerconfig fgedu-alertmanager -n cattle-monitoring-system
[root@rancher ~]# kubectl logs -n cattle-monitoring-system rancher-monitoring-alertmanager-0
[root@rancher ~]# curl -X POST http://alert.fgedu.net.cn/webhook -d ‘{“test”:”test”}’
# 现象:无法访问Grafana界面
# 原因:网络不通、端口未开放、认证失败
# 解决:
[root@rancher ~]# kubectl get svc -n cattle-monitoring-system rancher-monitoring-grafana
[root@rancher ~]# kubectl port-forward -n cattle-monitoring-system svc/rancher-monitoring-grafana 3000:80
[root@rancher ~]# curl http://localhost:3000
[root@rancher ~]# kubectl logs -n cattle-monitoring-system rancher-monitoring-grafana-1234567890-abcde
5.3 Rancher数据库监控维护
– 检查Prometheus状态
– 检查Grafana状态
– 检查告警规则
– 检查告警通知
– 优化Prometheus配置
– 优化告警规则
– 优化仪表板
– 优化存储
– 备份Prometheus数据
– 备份Grafana配置
– 备份告警规则
– 备份仪表板
– 清理过期监控数据
– 清理无用告警规则
– 清理无用仪表板
– 清理过期日志
– 审计监控配置
– 审计告警规则
– 审计告警通知
– 审计操作日志
