我正在尝试配置与ansible一起使用的prometheus服务器。我想监视一些aws实例(ec2),但是我对普罗米修斯的目标持反对态度。我可能应该使用json文件定义目标,但是当我使用ansible创建新实例时,我不知道如何更新文件。另外,我还在使用ansible上的aws_ec2插件作为动态广告资源。
所以我的问题是:如何使用清单插件来无需手动执行即可继续更新Prometheus的目标文件?
您可以将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
此配置由ansible生成