【问题标题】:Is there a way to add Prometheus monitoring targets and alerts programmatically有没有办法以编程方式添加 Prometheus 监控目标和警报
【发布时间】:2018-02-24 18:16:27
【问题描述】:

我正在尝试寻找一种方法,通过 Zabbix 之类的 API 以编程方式向 Prometheus 添加监控目标和警报。

例如,当我的云编排软件部署了 3 台新虚拟机时,我还会将它们作为监控目标添加到 Prometheus 服务器,并使用一些预定义的规则。

在 Zabbix 中,我可以使用其 API 向服务器添加项目、模板、图表等。通过这种方式,我可以使用监控功能自动化我的云基础架构。

【问题讨论】:

    标签: api monitoring prometheus


    【解决方案1】:

    如果您使用服务发现 (SD) 来控制您的虚拟机,那么 Prometheus 可以使用它来发现要抓取的主机。部署的新主机将被添加到 SD 中,Prometheus 可以发现并抓取它们。

    Prometheus 支持各种 SD 系统,如 Consul、DNS、EC2、Azure 等。
    如果您不使用任何本机支持的系统,那么您也可以使用 file-based service discovery 并让您的云编排器创建和更新 Prometheus 读取的配置文件。

    【讨论】:

    • 您好,感谢您的建议。我的云编排器是 OpenStack,你给我的链接很有趣。让我探索更多,看看它是否符合我的需求。
    • 我还没有测试 Oliver 的解决方案,但是当我阅读文档时,这是一种方法。所以我将此标记为答案。谢谢。
    【解决方案2】:

    正如其他人指出的那样,Prometheus 通过服务发现 (SD) 固有地支持许多系统。对于那些不直接支持的,您可以使用 file_sd_configs。

    步骤 1: 设置 file_sd_config 以将文件中提到的所有节点添加到目录中。例如。

    prometheus.yaml

    file_sd_configs:
    - files:
      - /etc/prometheus/targets/*.yaml
    

    上述设置在给定目录中查找所有yaml文件并添加文件中提到的目标。

    第 2 步:生成文件

    对于自动发现,运行一个 cron 作业,该作业通过 API 拉取节点列表并更新已经存在的文件或将文件添加到目录中。 json/yaml文件的格式应该是docs中提到的。

    【讨论】:

      【解决方案3】:

      有两种方法可以做到这一点

      选项 1: 使用服务发现机制。 Prometheus 将在您的服务注册表上自动发现动态注册的服务,即。领事

      - job_name: 'self'
      consul_sd_configs:
        - server: 'localhost:8080'
          services: []
      

      选项 2: 在 prometheus 配置中使用 file_sd_configs

          scrape_configs:
        - job_name: 'any_job_name'
          file_sd_configs:
            - files:
              - target.json
      

      target.json

      [{
      "targets": [ "endpoint1:8080", "endpoint1:8081" ],
      "labels": {
        "env": "stage",
        "job": "boot-api"
      }}]
      

      在文件更改时prometheus会自动重新读取文件,你也可以在一个目录中使用globs来使用多个目标文件。

      【讨论】:

        猜你喜欢
        • 2017-01-09
        • 1970-01-01
        • 1970-01-01
        • 2011-03-10
        • 2021-07-14
        • 1970-01-01
        • 2019-05-27
        • 2014-09-14
        • 1970-01-01
        相关资源
        最近更新 更多