Prometheus和Node Exporter架构

时间:2019-11-22 14:27:28

标签: prometheus prometheus-node-exporter

我已经读了三天了,甚至配置了一组容器来测试它们,但我对此表示怀疑。

我了解Prometheus + Node导出器的体系结构基于: -节点导出器知道如何提取指标。这些都在HTTP中公开,例如。 :9201 /公制 -Prometheus每X秒钟查询那些HTTP端点(节点导出器HTTTP)并存储指标。它还为图形/控制台可视化/查询提供了另一个HTTP。

问题1:

假设您希望每15秒CPU指标,每5m HDD指标,每1m网络,每30s处理一次。

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

问题2:

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

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

问题3:

我不知道我是否想念一些东西。但是,例如,将其与Telegraf进行比较,后者将度量标准发送到数据库。因此,Telegraf充当“节点导出器”。我只需要保护数据库连接(仅公开端口)即可。

是否可以将node-exporter配置为每X次向Prometheus服务器发送一组度量标准? (因此,我不必在每个公共服务器中都公开一个公共端口,只需在prometheus服务器中公开) 我了解“闸道”是为此目的吗?如何更改节点导出器的行为?

您是否向我推荐了其他可以满足我需要的体系结构? (1个主服务器,许多从属服务器可查询指标)

2 个答案:

答案 0 :(得分:1)

问题1

  

由于是由普罗米修斯决定刮擦间隔的,所以如何   配置为仅废弃这些值?

您可以为每个job配置不同的a list of collectors,每个scrape_interval和HTTP URL参数params。然后,这取决于出口商提出的功能。

对于node_exporter,您可以传递data staleness

  • cpu每15秒(工作:node_cpu)
  • process每30秒(工作:node_process)
  • (好了,你明白了)...

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

问题2

  

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

Prometheus最初的假设是您将使用专用网络。如果是公共网络,则需要某种代理。

我个人是在经典架构上使用过collectd exporter

问题3

  

可以将节点导出器配置为每X次发送一组指标   到Prometheus服务器? (因此,我不必在   每个公共服务器,仅Prometheus服务器)   “ pushgateway”是为了那个?如何更改节点导出器的行为?

不,Prometheus是基于拉的体系结构:您将需要一个Prometheus在您要监视的每个服务上可访问的URI。我想您可以重用另一个监视解决方案中的组件,并使用{{3}}这样的临时输出器。

推送网关旨在用于迫切需要Prometheus取消的短期工作。这是一个特定的用例,一般共识是不要滥用它。

答案 1 :(得分:0)

  

由于是由普罗米修斯决定刮擦间隔的,所以如何   配置为仅废弃这些值?

我不相信会这样。 Prometheus一次性擦除了一个端点上的所有内容,因此,如果所有数据都来自node_exporter,则可以以相同的频率获得所有数据。

  

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

Prometheus security doc讨论了对这种事情使用反向代理。

  

可以将节点导出器配置为每X次发送一组指标   到Prometheus服务器?

我不这么认为。 Prometheus是一种拉动式监视系统。如果您确实需要通过推送来移动数据,那么您可能要做的就是将脚本或任何推送数据添加到Prometheus服务器上的高速缓存中,然后让Prometheus定期轮询该高速缓存。我不知道这样的事情是否存在。