Api 有没有办法以编程方式添加普罗米修斯监控目标和警报

Api 有没有办法以编程方式添加普罗米修斯监控目标和警报,api,monitoring,prometheus,Api,Monitoring,Prometheus,我试图寻找一种方法,通过像Zabbix这样的API,以编程方式向Prometheus添加监控目标和警报 例如,当我的CloudOrchestrator软件部署3个新的虚拟机时,我还将使用一些预定义的规则将它们作为监视目标添加到Prometheus服务器 在Zabbix中,我可以添加项目、模板、图形等。。使用服务器的API访问服务器。通过这种方式,我可以使用监控功能自动化我的云基础设施。如果您使用服务发现(SD)来控制您的虚拟机,那么普罗米修斯可以使用它来发现要刮取哪些主机。部署的新主机将添加到S

我试图寻找一种方法,通过像Zabbix这样的API,以编程方式向Prometheus添加监控目标和警报

例如,当我的CloudOrchestrator软件部署3个新的虚拟机时,我还将使用一些预定义的规则将它们作为监视目标添加到Prometheus服务器


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

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

普罗米修斯支持多种SD系统,如领事、DNS、EC2、Azure等。

如果您不使用任何本机支持的系统,那么您也可以使用并让云orchestrator创建和更新由Prometheus读取的配置文件。

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

选项1:使用服务发现机制,普罗米修斯将自动发现服务注册表上动态注册的服务,即领事

- job_name: 'self'
consul_sd_configs:
  - server: 'localhost:8080'
    services: []
选项2:使用prometheus配置中的文件

    crape_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"
}}]

当文件更改时,普罗米修斯将自动重新读取文件,您也可以在一个目录中使用多个目标文件。

正如其他人所指出的,普罗米修斯通过服务发现(SD)内在地支持许多系统。对于那些不直接支持的,您可以使用文件\u sd\u configs

第1步:设置file\u sd\u config以添加目录中文件中提到的所有节点。例如

普罗米修斯

file_sd_configs:
- files:
  - /etc/prometheus/targets/*.yaml
上述设置查找给定目录中的所有yaml文件,并添加文件中提到的目标

步骤2:生成文件


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

Hi,感谢您的建议。我的云编排器是OpenStack,您给我的链接有一些非常有趣的东西。让我进一步探索,看看它是否适合我的需要。我还没有测试Oliver的解决方案,但当我阅读文档时,这是一种方法。所以我把这个标记为答案。谢谢