prometheus各组件的简单了解
侧边栏壁纸
  • 累计撰写 18 篇文章
  • 累计收到 3 条评论

prometheus各组件的简单了解

无冕の神
2026-02-03 / 0 评论 / 1 阅读 / 正在检测是否收录...

1.Prometheus Server:负责数据采集、存储和查询
数据采集 (Pull):定期从配置好的目标(Targets)上拉取指标数据。
数据存储 (Store):将采集到的数据以时间序列(Time-Series)的形式存储在本地磁盘。
数据查询 (Query):提供一个 HTTP API 接口,允许你使用 PromQL 语言查询存储的数据。

  1. Client Libraries (客户端库)
    如果你想监控自己写的应用程序,就需要使用客户端库。
    库会在你的应用程序中启动一个 HTTP 服务,并在 /metrics 路径下暴露所有定义好的指标。
  2. Exporters (导出器)
    对于无法直接集成客户端库的现成软件(如数据库、消息队列、操作系统),Exporters 是最佳选择。
    一个独立运行的进程,它会去查询目标软件的状态(比如通过 SSH、API 或读取日志),然后将这些状态转换为 Prometheus 能理解的格式,
    并在 /metrics 路径下暴露出来。
  3. Pushgateway (推送网关)
    标准的 “拉取” 模式对长时间运行的服务很友好,但对于一些短生命周期的任务就不适用了,因为任务结束后,
    Prometheus 可能还没来得及去拉取数据。
    提供一个中间网关。短任务可以主动将自己的指标 “推” 到 Pushgateway,然后由 Prometheus Server 从
    Pushgateway 拉取数据。
  4. Alertmanager (告警管理器)
    光有数据和图表还不够,关键是能在异常时及时通知到人。
    接收告警:从 Prometheus Server 接收告警信息。
    处理告警:
    对告警进行分组(如将同一服务的多个告警合并)、
    抑制(如一个高级别告警触发后,抑制其引发的低级别告警)、
    路由(根据告警级别或标签发送到不同的通知渠道)。
    发送通知:通过 Email、PagerDuty、Slack、Webhook(可对接钉钉、企业微信)等方式发送告警通知。
  5. PromQL (查询语言)
    这是 Prometheus 的灵魂,让你能从海量数据中挖掘价值。

avg without(cpu,mode) (rate(node_cpu_seconds_total {mode="idle"} [1m]))
node_cpu_seconds_total {mode="idle"}

选择指标 node_cpu_seconds_total(节点 CPU 累计使用时间)
筛选条件 mode="idle" 表示只关注 CPU 的空闲状态

rate(... [1m])
计算 1 分钟时间窗口内的每秒平均增长率
这里实际上是计算 CPU 处于空闲状态的每秒平均时间
avg without(cpu,mode)
对结果进行平均值计算
without(cpu,mode) 表示在计算平均值时,排除 cpu(CPU 核心编号)和 mode(这里固定为 idle)这两个标签
这意味着会将同一节点的所有 CPU 核心的空闲率进行平均,得到整个节点的平均 CPU 空闲率

指标类型
Counter计数器:只增不减
Gauge仪表盘:可增可减
Histogram直方图:可以分别求出各个数据段的分布
Summary摘要:可以相较于直方图增加一个频率分布

部署时需要注意的问题

  1. Prometheus前台启动以后,后面改为systemd管理,需要将前台启动的进程关闭,否则你后面启动的并没有真正运行
    如果你在web页面不能够看到对应的endpoint,那么就是你修改的配置文件没有生效
    node_exporter、mysqld_exporter没有使用systemd管理
  2. mysqld_exporter部署以后大家要检查指标是否正常
0

评论 (0)

取消