8

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

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

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

问题一:

假设您需要每 15 秒的 CPU 指标、每 5m 的 HDD 指标、每 1m 的网络、每 30 秒的进程。

既然是普罗米修斯决定了抓取间隔,那么如何配置为只抓取这些值呢?

问题2:

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

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

问题 3:

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

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

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

4

3 回答 3

6

问题 1

既然是普罗米修斯决定了抓取间隔,那么如何配置为只抓取这些值呢?

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

对于 node_exporter,您可以传递收集器列表

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

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

问题2

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

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

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

问题 3

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

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

推送网关适用于迫不及待地被 Prometheus 抓取的短期工作。这是一个特定的用例,普遍的共识是不要滥用它。

于 2019-11-24T20:23:51.350 回答
0

既然是普罗米修斯决定了抓取间隔,那么如何配置为只抓取这些值呢?

我不相信它可以。Prometheus 一次性从一个端点抓取所有数据,因此如果所有数据都来自 node_exporter,那么您将以相同的频率获取所有数据。

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

Prometheus 安全文档谈到使用反向代理来处理这类事情。

可以将 node-exporter 配置为每 X 次向 prometheus 服务器发送一组指标吗?

我不相信。Prometheus 是一个拉式监控系统。如果您确实需要通过推送来移动数据,那么您可能需要做的是编写脚本或任何将数据推送到相当于 Prometheus 服务器上的缓存的内容,然后让 Prometheus 定期轮询该缓存。我不知道这样的事情是否存在。

于 2019-11-22T14:44:39.707 回答
0

请查看 Fluent Bit - https://docs.fluentbit.io(例如 INPUT node_exporter)

使用不同的刮擦和冲洗间隔根据您的需要创建监控容器。

于 2022-02-10T10:59:57.900 回答