有没有办法使用 aws_ec2 ansible 库存插件来动态定义普罗米修斯目标组?



我正在尝试配置一个与ansible一起工作的普罗米修斯服务器。我想监控一些 aws 实例 (ec2(,但我坚持使用普罗米修斯的目标。我可能应该使用 json 文件来定义我的目标,但我不知道在使用 ansible 创建新实例时如何更新文件。此外,我正在使用 aws_ec2 插件在 ansible 上动态库存。

所以我的问题是:如何使用库存插件来保持更新普罗米修斯的目标文件而无需手动操作?

您可以将 Prometheus 服务发现与用于aws_ec2清单的相同/类似的过滤器一起使用。我也花时间在这个问题上,但对结果非常满意。基本示例:

scrape_configs:
- ec2_sd_configs:
- filters:
- name: tag:Environment
values:
- PROD
job_name: ec2
relabel_configs:
- replacement: ${1}.prod.yourdomain.com:9100
source_labels:
- __meta_ec2_tag_dnsname
target_label: __address__
- source_labels:
- __meta_ec2_tag_Name
target_label: instance
- ec2_sd_configs:
- filters:
- name: tag:Environment
values:
- PROD
job_name: application_actuators
relabel_configs:
- replacement: ${1}.prod.yourdomain.com:9001
source_labels:
- __meta_ec2_tag_dnsname
target_label: __address__
- source_labels:
- __meta_ec2_tag_Name
target_label: instance
- action: drop
regex: ^$
source_labels:
- __meta_ec2_tag_application
- regex: (.+)
replacement: /$1/api/actuator/prometheus
source_labels:
- __meta_ec2_tag_application
target_label: __metrics_path__

ec2_sd_config文档

此配置由ansible生成。

最新更新