HAProxy 可观测性最佳实践

HAProxy 简介
HAProxy(High Availability Proxy)是一款广泛使用的高性能负载均衡器,支持 TCP 和 HTTP 协议,提供高可用性、负载均衡和代理服务。它特别适用于负载较大的 Web 站点,能够支持数以万计的并发连接,并且可以简单安全地整合到现有架构中。可观测性可以帮助快速定位和解决 HAProxy 及其后端服务的问题。HAProxy 2.0 及以上版本提供了完善的指标暴露体系,可以把指标暴露到指定端口,然后由 Prometheus 进行采集。
观测云
观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。观测云的 DataKit 拥有 prom 采集器,可以取代 Prometheus 采集 HAProxy 指标,然后通过仪表板和监控器实时掌握 HAProxy 的运行情况。
前置条件
Centos7.9 主机
192.168.0.2
、192.168.0.3
192.168.0.2
安装 Docker,Docker Compose192.168.0.2
、192.168.0.3
安装 Nginx,端口 80(可以使用其它代理服务)
部署 DataKit
DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。
登录观测云控制台,在「集成」 - 「DataKit」选择对应安装方式,当前采用 Linux 主机部署 DataKit。

复制第 2 步中的安装命令,在 192.168.0.2
主机上执行。
采集步骤
1、部署 HAProxy
HAProxy 部署在 192.168.0.2
主机上,创建 /data/haproxy/haproxy.cfg
文件,其中日志输出到 stdout,负载配置的是前置条件中的 Nginx,指标暴露在 8405 端口,backend 配置的是前置条件中的 Nginx。
创建 /data/haproxy/docker-compose.yaml
文件。
启动 HAProxy。
访问 192.168.0.2:8080
产生负载调用。
2、指标采集
登录 192.168.0.2
,执行如下操作开通采集器。
修改 urls 和 source。

重启 DataKit。
在「指标」 - 「指标管理」中能查看到采集的 haproxy 指标。

3、日志采集
Docker Compose 部署的 HAProxy,日志输出到了 stdout,DataKit 容器采集器默认采集的 stdout 日志,无需再配置。

关键指标
在 HAProxy 中,监控 Frontend(前端)、Backend(后端)、Server(服务器)的常用指标对于性能优化。故障排查和容量规划至关重要。
Frontend 关键指标

Backend 关键指标

Server 关键指标

场景视图
登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “haproxy”, 选择 “HAProxy 监控视图”,点击 “确定” 即可添加视图。


监控器(告警)
后端服务器检测失败
简要描述:后端服务检测失败触发告警。


后端活跃服务器数量小于 1
简要描述:后端活跃服务器数量小于 1 触发告警。


前端 http 响应 4xx 错误率过高
简要描述:前端 http 响应 4 消息错误率过高触发告警。


总结
HAProxy 通常用于高可用性场景,可观测性可以确保在出现问题时能够及时响应,减少停机时间。通过收集和分析 HAProxy 的指标(如连接数、响应时间、吞吐量等),可以实时监控其性能,确保系统运行在最佳状态。
评论