我们使用Consul Registrator将Docker容器注册到Consul作为服务。
我们的普罗米修斯是使用consul_sd_configs配置的,以获取通过领事解析的服务列表。
最近部署了一个新的Docker容器,它使用带有内部证书的https,而不是普通的http。普罗米修斯仍在尝试通过http连接到该服务,但失败了,该服务随后被标记为关闭。
有没有办法将Prometheus配置为使用https来提供此服务?我们是不是在领事或登记员中遗漏了什么?
我们不能对服务使用静态配置,因为当它再次部署时,主机和端口可能会发生变化-该服务分布在多个Docker服务器上。
发布于 2020-08-11 18:25:25
您可以借助Prometheus配置中consul_sd_configs设置的relabel_configs和tls_config部分来解决此问题。
下面的设置是使用relabel_configs设置https方案,如果服务名称是SERVICE_NAME1或SERVICE_NAME2,对于任何其他服务,方案将具有默认值http。您还可以使用其他标签来标识需要https的服务/实例列表。
- job_name: 'consul_adapter_1'
metrics_path: '/actuator/prometheus'
#This handles Self Signed SSL Issue
tls_config:
insecure_skip_verify: true
consul_sd_configs:
- server: '<consul host>:<port>'
relabel_configs:
- source_labels: [__meta_consul_service]
regex: (SERVICE_NAME1|SERVICE_NAME2)
target_label: __scheme__
replacement: httpshttps://stackoverflow.com/questions/60881013
复制相似问题