写点什么

Prometheus Exporter (二十五)HAProxy Exporter

作者:耳东@Erdong
  • 2021 年 12 月 13 日
  • 本文字数:1288 字

    阅读完需:约 4 分钟

Prometheus Exporter (二十五)HAProxy Exporter

本文已经收录在 Prometheus 合集 Prometheus 都可以采集那些指标?-- 常用 Exporter 合集 中。


HAProxy Exporter 是一个简单的服务,它抓取 HAProxy 统计数据并通过 HTTP 导出它们供 Prometheus 使用。官方地址是 https://github.com/prometheus/haproxy_exporter ,当前最新版本是 v0.13.0 ,发布时间是 2021 年 11 月 26 日。


自 HAProxy 2.0.0 以来,他的官方源代码包括一个 Prometheus 导出模块,它可以在构建期间用一个标志构建到二进制文件中,并提供一个不需要导出器的 Prometheus 端点。

安装运行

HAProxy Exporter 运行也非常简单,直接执行二进制文件就可以。


./haproxy_exporter [flags]
复制代码


或者使用 Docker 容器来运行


docker run -p 9101:9101 quay.io/prometheus/haproxy-exporter:v0.13.0 --haproxy.scrape-uri="http://user:pass@haproxy.example.com/haproxy?stats;csv"
复制代码

使用

如果你设置了 stats uri /baz ,那么可以使用 --haproxy.scrape-uri 参数给 HAProxy 统计端口指定自定义的 URL 。


haproxy_exporter --haproxy.scrape-uri="http://localhost:5000/baz?stats;csv"
复制代码


或者获取远端的 HAProxy ,


haproxy_exporter --haproxy.scrape-uri="http://haproxy.example.com/haproxy?stats;csv"
复制代码


需要注意的是,这个参数最后的 :csv 是必须的,整个参数的值需要用双引号引起来。


如果这个统计接口有 basic auth,那么可以使用如下的方式来指定


haproxy_exporter  --haproxy.scrape-uri="http://user:pass@haproxy.example.com/haproxy?stats;csv"
复制代码


也可以在获取指标的时候使用 HTTPS 的 URL ,默认情况下是启用证书验证,可以通过 --no-haproxy.ssl-verify 参数关掉证书验证。


haproxy_exporter --no-haproxy.ssl-verify --haproxy.scrape-uri="https://haproxy.example.com/haproxy?stats;csv"
复制代码


除了使用 HTTP 的方式获取,还可以使用 stats socket 。在 HAProxy 中启用 stats socket 如下:


stats socket /run/haproxy/admin.sock mode 660 level admin
复制代码


配置的命令如下:


haproxy_exporter --haproxy.scrape-uri=unix:/run/haproxy/admin.sock
复制代码


HAProxy Exporter 也支持 TLS 和 basic authentication ,使用 --web.config.file 参数,格式描述在 exporter-toolkit 仓库里。

HAProxy 构建监控插件

在 HAProxy 2.0.0 版本中,包含一个 Prometheus 监控数据导出模块,可以在构建时将其构建到二进制文件中。这是通过传递参数来实现的,这个参数取决于 HAProxy 的版本:


在 HAProxy 2.0.x - 2.3.x ,使用 EXTRA_OBJS 参数来进行 make 构建:


make TARGET=linux-glibc EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o"
复制代码


在 HAProxy 2.4.x 版本 ,使用 USE_PROMEX 参数来进行 make 构建:


make TARGET=linux-glibc USE_PROMEX=1
复制代码


构建成功以后,接可以在 HAProxy 的配置文件 haproxy.cfg 中使用下面的这个来配置打开监控数据导出了


frontend stats    bind *:8404    http-request use-service prometheus-exporter if { path /metrics }    stats enable    stats uri /stats    stats refresh 10s
复制代码

小结

HAProxy 提供了 2 种暴露监控数据的方式,采用哪一种根据实际情况来进行选择。

发布于: 1 小时前阅读数: 5
用户头像

耳东@Erdong

关注

还未添加个人签名 2020.05.24 加入

主要研究分享运维技术,专注于监控、CICD、操作系统、云原生领域,公众号【耳东学堂】,知识星球同名,坚持原创,希望能和大家在运维路上结伴而行 邮箱:erdong@mail.erdong.site

评论

发布
暂无评论
Prometheus Exporter (二十五)HAProxy Exporter