Prometheus 和节点导出器架构

use*_*881 8 prometheus prometheus-node-exporter

我已经阅读了 3 天,甚至配置了一组容器来测试它们,但我有疑问。

据我了解,Prometheus + Node exporter 的架构是基于:

  • 节点导出器知道如何提取指标。那些在 HTTP 中公开,例如。:9201/公制
  • Prometheus 每 X 秒查询一次这些 HTTP 端点(节点导出器 HTTTP)并存储指标。它还为图形/控制台可视化/查询提供了另一个 HTTP。

问题 1:

假设您需要每 15 秒 CPU 指标、每 5m 硬盘指标、每 1m 网络、每 30 秒处理一次。

由于普罗米修斯决定了抓取间隔,如何配置为仅抓取这些值?

问题2:

假设您需要 1 个 prometheus 实例和 3 个节点导出器,不同的公共服务器。我没有看到有关节点导出器及其安全性的任何信息。HTTP 端点是公共的。

如何安全地从我的 3 个服务器查询指标?

问题 3:

我不知道我是否遗漏了什么。但是,例如,将其与 Telegraf 进行比较,后者将指标发送到数据库。因此,Telegraf 充当“节点导出器”。我只需要保护数据库连接(仅暴露端口)。

可以将节点导出器配置为每 X 次向普罗米修斯服务器发送一组指标吗?(所以我不必在每个公共服务器中公开一个公共端口,只是普罗米修斯服务器)我明白“pushgateway”是为了那个?如何更改节点导出器行为?

您是否向我推荐了任何其他可以满足我需求的架构?(1个master,多个slave来查询指标)

Mic*_*bez 5

问题 1

由于普罗米修斯决定了抓取间隔,如何配置为仅抓取这些值?

您可以使用自己的HTTP URL 参数配置不同的作业。然后,这取决于出口商提出的功能。scrape_intervalparams

在 node_exporter 的情况下,您可以传递收集器列表

  • cpu 每 15 秒(作业:node_cpu)
  • process 每 30 秒(作业:node_process)
  • (反正你懂这个意思) ...

请注意,由于数据陈旧,5 分钟的抓取间隔可能太大:您冒着无法在此数据的即时向量中获取任何数据的风险。1 分钟的抓取间隔已经很大,对性能没有影响。

问题2

如何安全地从我的 3 个服务器查询指标?

Prometheus 的最初假设是您将使用专用网络。在公共网络的情况下,您需要某种代理。

就个人而言,我在经典架构上使用了exporter_exporter

问题 3

可以将节点导出器配置为每 X 次向普罗米修斯服务器发送一组指标吗?(所以我不必在每个公共服务器中公开一个公共端口,只是普罗米修斯服务器)我明白“pushgateway”是为了那个?如何更改节点导出器行为?

不,Prometheus 是基于拉取的架构:您将需要 Prometheus 在您想要监控的每个服务上访问的 URI。我想您可以重用来自另一个监控解决方案的组件并使用像collectd exporter这样的临时导出器

推送网关适用于无法等待 Prometheus 抓取的短期作业。这是一个特定的用例,普遍的共识是不要滥用它。