当前位置: 首页 > news >正文

Prometheus定义主机监控告警实例

Prometheus 是一个强大的开源监控和告警工具,支持通过灵活的规则定义来监控主机(如服务器、容器等)的运行状态。以下是基于 Prometheus 的主机监控告警定义的核心步骤和示例:

修改Prometheus配置文件prometheus.yml,添加以下配置:

rule_files:
- /etc/prometheus/rules/*.rules

在目录/etc/prometheus/rules/下创建告警文件hoststats-alert.rules内容如下:

groups:
- name: hostStatsAlert
rules:
- alert: hostCpuUsageAlert
expr: sum(avg without (cpu)(irate(node_cpu{mode!='idle'}[5m]))) by (instance)
> 0.85
for: 1m
labels:
severity: page
annotations:
summary: "Instance {{ $labels.instance }} CPU usgae high"
description: "{{ $labels.instance }} CPU usage above 85% (current value: {{
$value }})"
- alert: hostMemUsageAlert
expr: (node_memory_MemTotal - node_memory_MemAvailable)/node_memory_MemTotal
> 0.85
for: 1m
labels:
severity: page
annotations:
summary: "Instance {{ $labels.instance }} MEM usgae high"
description: "{{ $labels.instance }} MEM usage above 85% (current value: {{
$value }})"

重启Prometheus后访问Prometheus UIhttp://127.0.0.1:9090/rules可以查看当前以加载的规则文
件。
在这里插入图片描述
切换到Alerts标签http://127.0.0.1:9090/alerts可以查看当前告警的活动状态。
在这里插入图片描述
此时,我们可以手动拉高系统的CPU使用率,验证Prometheus的告警流程,在主机上运行以下命令:

cat /dev/zero>/dev/null

运行命令后查看CPU使用率情况,如下图所示:
在这里插入图片描述
Prometheus首次检测到满足触发条件后,hostCpuUsageAlert显示由一条告警处于活动状态。由于告警规则中设置了1m的等待时间,当前告警状态为PENDING,如下图所示:
在这里插入图片描述
如果1分钟后告警条件持续满足,则会实际触发告警并且告警状态为FIRING,如下图所示:
在这里插入图片描述

最佳实践

  • 合理设置阈值:根据业务需求调整告警阈值,避免误报。

  • 分组与抑制:在 Alertmanager 中配置告警分组和抑制规则,减少告警噪音。

  • 可视化:结合 Grafana 创建主机监控仪表盘,直观展示关键指标。
    需要更多有关普罗米修斯监控的资料可以联系我,一起探讨学习!
    在这里插入图片描述

http://www.xdnf.cn/news/99235.html

相关文章:

  • 【Amazing晶焱科技高速 CAN Bus 传输与 TVS/ESD/EOS 保护,将是车用电子的生死关键无标题】
  • 【Java设计模式及实践学习-第4章节-结构型模式】
  • HCIA-Access V2.5_18_网络管理基础_2_SNMP协议简介
  • GeoJsonLayer|BusineDataLayer|graphicLayer数据修改点位层级
  • JVM考古现场(二十五):逆熵者·时间晶体的永恒之战(进阶篇)
  • 生物计算安全攻防战:从DNA存储破译到碳基芯片防御体系重构
  • 【工程开发】LLMC准确高效的LLM压缩工具(三)——AWQ算法量化
  • 机器人雅克比Jacobian矩阵程序
  • 【go】go run-gcflags常用参数归纳,go逃逸分析执行语句,go返回局部变量指针是安全的
  • 深度学习--卷积神经网络调整学习率
  • MVCWebAPI使用FromBody接受对象的方法
  • 【速写】hook与fx
  • UML设计系列(9):开发过程中如何应用UML
  • uniapp跳转和获取参数方式
  • 【学习准备】算法和开发知识大纲
  • Kubelet 可观测性最佳实践
  • Ubuntu 20.04 安装Docker 全过程
  • 大厂Java面试:JVM调优与问题定位
  • 教育平台项目实战(从0到1)
  • spark—kafka
  • 铆钉连接的一些参数
  • SpringBoot项目,密码加密之“BCrypt加密”
  • 使用 Streamlit 打造一个简单的照片墙应用
  • 前端渲染pdf文件解决方案-pdf.js
  • 为什么圆形在GeoJSON中被表示为多边形(Polygon)而不是圆形类型
  • 【OSCP-vulnhub】Raven-2
  • pod内部共享命名空间与k8s命名空间是一个东西吗?
  • arm64适配系列文章-第一章-arm64环境上kubesphere和k8s的部署
  • mybatis xml中特殊字符处理
  • 【k8s】Taint污点)、Toleration(容忍)