prom/haproxy-exporterHAProxy Exporter for Prometheus 是一个简单的服务,用于抓取 HAProxy 的统计数据(stats)并通过 HTTP 暴露,供 Prometheus 采集。注意:此导出器已退役,所有受支持版本的 HAProxy 均已内置 Prometheus 导出器模块,可在构建时通过单个标志集成到二进制文件中,并提供原生 Prometheus 端点。建议尽快迁移至 HAProxy 内置支持。
$http_proxy/$https_proxy/$no_proxy)配置 HTTP 代理该导出器原本适用于需要将 HAProxy 运行指标(如连接数、请求量、健康状态等)导出至 Prometheus 进行监控的场景。但由于 HAProxy 官方已在 2.0.0 及以上版本内置 Prometheus 导出功能,此独立导出器已停止维护。仅推荐在无法升级 HAProxy 或临时过渡场景下使用,长期应迁移至官方内置方案。
通过命令行启动导出器,核心配置通过标志(flags)指定:
bash./haproxy_exporter [flags]
查看所有可用标志:
bash./haproxy_exporter --help
| 参数 | 说明 | 示例 |
|---|---|---|
--haproxy.scrape-uri | HAProxy stats 接口的 URI(必须包含 ;csv 参数,需引号包裹) | --haproxy.scrape-uri="http://localhost:5000/haproxy?stats;csv" |
--no-haproxy.ssl-verify | 禁用 HTTPS 抓取时的证书验证 | --no-haproxy.ssl-verify |
--http.proxy-from-env | 从环境变量(HTTP_PROXY/HTTPS_PROXY/NO_PROXY)读取代理配置 | --http.proxy-from-env |
--web.config.file | TLS 和基本认证配置文件路径(格式参考 exporter-toolkit) | --web.config.file=web-config.yml |
若 HAProxy stats 接口路径为 /baz(非默认):
bashhaproxy_exporter --haproxy.scrape-uri="http://localhost:5000/baz?stats;csv"
抓取远程 HAProxy 实例:
bashhaproxy_exporter --haproxy.scrape-uri="[***]"
若 stats 接口受基本认证保护,可在 URI 中包含凭据:
bashhaproxy_exporter --haproxy.scrape-uri="[***]"
为避免凭据暴露在进程列表中,可通过文件传递参数:
bashecho '--haproxy.scrape-uri=[***] > args haproxy_exporter @args
抓取 HTTPS 接口,禁用证书验证(仅测试环境使用):
bashhaproxy_exporter --no-haproxy.ssl-verify --haproxy.scrape-uri="[***]"
设置环境变量并启用代理支持:
bashexport HTTP_PROXY="[***]" haproxy_exporter --http.proxy-from-env --haproxy.scrape-uri="[***]"
若 HAProxy 配置了 Unix Socket stats 接口(如 /run/haproxy/admin.sock):
bashhaproxy_exporter --haproxy.scrape-uri=unix:/run/haproxy/admin.sock
通过 Docker 容器运行导出器(镜像托管于 Quay 和 Docker Hub):
bashdocker run -p 9101:9101 quay.io/prometheus/haproxy-exporter:latest \ --haproxy.scrape-uri="[***]"
注:容器默认暴露 9101 端口,需映射至主机端口以提供 Prometheus 采集。
导出器支持通过配置文件启用 TLS 和基本认证,需通过 --web.config.file 指定配置文件路径,配置格式参考 exporter-toolkit 文档。
HAProxy 2.0.0 及以上版本内置 Prometheus 导出模块,2.4 及以上版本可通过构建时添加 USE_PROMEX=1 标志启用:
bashmake TARGET=linux-glibc USE_PROMEX=1
预构建版本(如 Docker 镜像)通常已默认启用此功能。
在 haproxy.cfg 中添加前端配置,暴露 /metrics 端点:
haproxyfrontend stats bind *:8404 # 暴露指标的端口 http-request use-service prometheus-exporter if { path /metrics } # Prometheus 指标端点 stats enable # 传统 stats 页面(可选) stats uri /stats # 传统 stats 页面路径(可选) stats refresh 10s # stats 页面刷新间隔(可选)
重启 HAProxy 后,访问 http://<haproxy-ip>:8404/metrics 即可获取 Prometheus 格式指标。
Apache License 2.0,详见 LICENSE。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务