如何在Prometheus中用Blackbox Exporter检测EC2实例指定路径端点
添加/healthcheck路径检测的配置修改方法
你需要调整Blackbox Exporter和Prometheus的配置,同时修正配置里的拼写错误,具体步骤如下:
1. 修正并更新Blackbox Exporter配置(blackbox.yml)
当前配置里的模块名http_9001_healthcheckk多了一个末尾的k,先修正拼写错误,再在http配置块中添加path: /healthcheck字段,指定要检测的路径:
modules: http_9001_healthcheck: prober: http timeout: 15s http: method: GET path: /healthcheck # 新增:指定健康检查路径 valid_http_versions: - HTTP/1.1 - HTTP/2.0 fail_if_not_ssl: false valid_status_codes: [200] no_follow_redirects: false ip_protocol_fallback: false preferred_ip_protocol: ip4
2. 同步更新Prometheus配置(prometheus.yml)
确保params里的module值和Blackbox修正后的模块名一致,有两种配置方案可选:
方案一:使用Blackbox模块固定路径(推荐,配置更清晰)
仅需修正module名称即可:
- job_name: 'blackbox' metrics_path: /probe params: module: [http_9001_healthcheck] # 修正为和Blackbox一致的模块名 ec2_sd_configs: - region: eu-central-1 port: 9001 filters: - name: "tag:Account" values: - abc relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: localhost:9115
方案二:通过Prometheus Relabel动态拼接路径
如果希望路径可灵活调整,无需修改Blackbox配置,可以在relabel阶段把/healthcheck拼接到目标地址中:
- job_name: 'blackbox' metrics_path: /probe params: module: [http_9001_healthcheck] # 修正模块名 ec2_sd_configs: - region: eu-central-1 port: 9001 filters: - name: "tag:Account" values: - abc relabel_configs: - source_labels: [__address__] target_label: __param_target replacement: "$1/healthcheck" # 新增:拼接路径到目标地址 - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: localhost:9115
完成修改后,重启Prometheus和Blackbox Exporter服务,配置即可生效,Blackbox会开始检测EC2实例的9001/healthcheck路径。
内容的提问来源于stack exchange,提问作者AWS_Developer
相关产品推荐
相关产品推荐

