process_exporter 的安装及配置使用
简介process-export主要用来做进程监控,比如某个服务的进程数、消耗了多少CPU、内存等资源 安装 / 使用下载并程序放在/usr/local/bin下且赋权项目地址:https://github.com/ncabatoff/process-exporter 配置 mkdir -p /usr/local/process_exporter vim process-conf.yaml 具体配置文件参考 12345678910# 如果一个进程被多个匹配项匹配,则谁在前谁匹配到process_names: # 监控主机上所有进程,且groupname设置为"包含原始可执行文件的基本名称" - name: "{{.Comm}}" cmdline: - '.+' # 监控主机上进程名称符合hadoop的,且groupname设置为"包含所有由于应用cmdline正则表达式而产生的匹配项" - name:...
Prometheus 与 Kubernetes 学习网站记录
rancher官方文档 一个不错的Prometheus中文网站 上面网站的一个备用地址 AlertManager 何时报警 Alertmanager重复/缺失告警现象探究及两个关键参数group_wait和group_interval的释义 Kubernetes集群监控指标项详解 K8s about pod resource monitoring(记录些常用的Prometheus规则expr) 最近5分钟 Pod 磁盘 IO 写入大于 1001sum(rate(container_fs_writes_bytes_total{pod!=""}[5m])) by (pod,namespace,instance) > 100 最近30分钟 Pod 重启1changes(kube_pod_container_status_restarts_total[30m])>0 Ready 状态(配合 for 参数,比如 for=5m 表示 Ready 持续 5 分钟,说明启动有问题)1kube_pod_container_statu...
使用 AlertManager 进行告警管理
rancher官方文档 一个不错的Prometheus中文网站 Prometheus典型的告警规则1234567891011121314151617181920groups: - name: wechat-rule-group rules: - alert: wechat-rule annotations: summary: |- ==========begin=========== [报警名称]:{{ $labels.alertname }} [报警实例]:{{ $labels.instance }} [报警命名空间]:{{ $labels.namespace }} [报警pod]:{{ $labels.pod }} [报警阈值]:{...
Prometheus 告警推送机制详解
AlertManager 中的几个容易混淆的参数首先在 Prometheus 中有两个全局的参数 scrape_interval 和 evaluation_interval。 scrape_interval 参数表示的是 Prometheus 从各种 metrics 接口抓取指标数据的时间间隔 evaluation_interval 参数表示的是 Prometheus 对报警规则进行评估计算的时间间隔。 group_by 为了避免连续发送类似的告警通知,可以将相关告警分到同一组中进行告警。分组机制可以将详细的告警信息合并成一个通知,在某些情况下,比如由于系统宕机导致大量的告警被同时触发,在这种情况下分组机制可以将这些被触发的告警合并为一个告警通知,避免一次性接受大量的告警通知: 1group_by: ['alertname', 'job'] group_wait 当一个新的报警分组被创建后,需要等待至少 group_wait 时间来初始化告警。 这样实际上就缓冲了从 Prometheus 发送到 AlertManager 的告警,将...
关于 nf_conntrack 及 conntrack entries 使用率过高问题
Kubernetes 节点将conntrack_max值与节点上的 RAM 大小成比例地设置。高负载应用(尤其是在小型节点上)很容易超过conntrack_max,并导致连接复位和超时。 理论conntrack 是建立在 Netlifier 框架之上的功能。它对于高性能的 Kubernetes 复杂网络至关重要,其中节点需要跟踪数千个 Pod 和服务之间的连接信息。 在 Kubernetes 中, 默认值可以在 prometheus 指标中找到node_nf_conntrack_entries_limit(需要node_exporter) linux系统中可以通过以下指令查看【当然如果未配置过的话,默认值会以该公式「CONNTRACK_MAX = 内存 (bytes) / 16384 / (多少位 / 32)」计算出默认值】:sysctl net.netfilter.nf_conntrack_max conntrack_max值与节点的内存成正比,通常聚合代理类服务会需要持续跟踪大量连接【消耗大量的conntrack entries...
分析 Alertmanager 发送告警消息的逻辑
摘自: https://blog.csdn.net/qq_35952638/article/details/108077895 本文使用 Prometheus v2.18.1 ,Alertmanager v0.20.0本文主要分析 Alertmanager 什么情况下会发送告警消息,避免对用户造成消息轰炸。 Alertmanager 的一般工作流程 Prometheus 每隔 interval 时长执行一次 alert rule 。如果执行结果包含 n 个时间序列,则认为存在 n 个警报,通过 HTTP 通信发送 alerting 状态的消息给 Alertmanager 。 Alertmanager 收到之后, 先根据 route 判断它属于哪个 group 、应该发送给哪个 receiver 。 再判断该 group 当前是否处于冷却阶段、是否被 Silence 静音、是否被 Inhibit 抑制。如果都没有,则立即发送告警消息给用户。 如果 Prometheus 再次执行 alert rule 时,发现执行结果为空,则认为警报已解决,立即产生 resolved 状态的...
基于 Docker 搭建 Prometheus + Grafana
摘自:https://juejin.cn/post/7097166804044218405 安装运行Prometheus(docker版)Grafana是一个开源的功能丰富的数据可视化平台,通常用于时序数据的可视化。它内置了多种数据源的支持 下载镜像包123docker pull prom/node-exporterdocker pull prom/prometheusdocker pull grafana/grafana 启动 node-exporter12345docker run -d -p 9100:9100 \ -v "/proc:/host/proc:ro" \ -v "/sys:/host/sys:ro" \ -v "/:/rootfs:ro" \ prom/node-exporter 访问url: http://127.0.0.1:9100/metrics 效果如下: 这些都是收集到的数据,有了它就可以做数据展示了。 启动prometheus新建目录 prometheus,编辑配置文件...
整合 Spring Boot 与 Prometheus 实现自定义监控指标
我在第二章中有介绍使用koa整合Prometheus自定义指标,这里记录下整合Springboot和Prometheus实现自定义指标 要在Spring Boot中使用Micrometer-registry-prometheus记录QPS和响应时间,可以按照以下步骤操作 Spring-boot-starter-actuatorSpringBoot中的spring-boot-starter-actuator依赖已经集成了对Micrometer的支持,其中的metrics端点的很多功能就是通过Micrometer实现的,prometheus端点默认也是开启支持的,实际上actuator依赖的spring-boot-actuator-autoconfigure中集成了对很多框架的开箱即用的API,其中prometheus包中集成了对Prometheus的支持,使得使用了actuator可以轻易地让项目暴露出prometheus端点,使得应用作为Prometheus收集数据的客户端,Prometheus(服务端软件)可以通过此端点收集应用中Micrometer的度量数据。 整合M...
精简 Prometheus 指标以减少资源占用
前言随着 Prometheus 监控的组件、数量、指标越来越多,Prometheus 对计算性能的要求会越来越高,资源占用也会越来越高。 在这种情况下,要优化 Prometheus 性能, 优化存储占用. 第一时间想到的可能是各种 Prometheus 的兼容存储方案, 如 Thanos 或 VM、Mimir 等。但是实际上虽然集中存储、长期存储、存储降采样及存储压缩可以一定程度解决相关问题,但是治标不治本。 真正的本,还是在于指标量(series)过于庞大。 治本之法,应该是减少指标量。有 2 种办法: 解决高基数问题 根据实际使用情况,只保留(keep)展示(Grafana Dashboards)和告警(prometheus rules)会用到的指标。 高基数问题什么是基数(Cardinality)?基数的 基本定义 是指一个给定集合中的元素的数量。 在Prometheus中指代series 的基数 (High Cardinality) 在 Prometheus 和可观察性的世界里,标签基数 是非常重要的,因为它影响到你的监控系统的性能和资源使用。 下面这张...
结合 Rancher 使用 Prometheus 监控系统
rancher官方文档 一个不错的Prometheus中文网站 Grafana安装文档 注: 本文Rancher版本为rancher2.6.x 一定要记得在hosts文件编辑这些集群的host, 使这些台机器可以通过hostname互通 安装Charts 配置详细配置:https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/values.yaml 配置Prometheus、Alerting以及Grafana 默认Prometheus的admin api是不开启的,如果希望通过api方式操作Prometheus数据,则需要打开admin api 可以配置各项【grafana/prometheus/alertmanager】的enable参数来控制是否安装此工作负载 已知问题有一个已知问题,K3s 群集需要更多的默认内存。如果你在 K3s 集群上启用监控,rancher lab建议将prometheus.prometheus...
