跳转至

HAProxy

HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,是免费、快速并且可靠的一种解决方案。HAProxy 特别适用于那些负载特大的 web 站点,这些站点通常又需要会话保持或七层处理。

Cloud Insight 获取 HAProxy 状态页信息,监控 web 服务器的请求响应情况。


性能指标

Cloud Insight 采集 HAProxy 以下性能指标:

指标 单位 具体含义
haproxy.backend.bytes.in_rate bytes/second 后端主机传入字节速率
haproxy.backend.bytes.out_rate bytes/second 后端主机发送字节速率
haproxy.backend.connect.time milliseconds 最近 1024 次请求的平均连接时间
haproxy.backend.denied.req_rate requests/second 每秒出于安全考虑被拒绝的请求数量
haproxy.backend.denied.resp_rate responses/second 每秒出于安全考虑被拒绝的响应数量
haproxy.backend.errors.con_rate errors/second 每秒尝试连接到后端服务器时遇到错误的请求数量
haproxy.backend.errors.resp_rate errors/second 每秒由于错误中断的响应数量
haproxy.backend.queue.current requests 未分配的后端请求数
haproxy.backend.queue.time milliseconds 最近 1024 次请求的平均排队时间
haproxy.backend.response.1xx responses 后端 HTTP 响应码是 1xx 的次数
haproxy.backend.response.2xx responses 后端 HTTP 响应码是 2xx 的次数
haproxy.backend.response.3xx responses 后端 HTTP 响应码是 3xx 的次数
haproxy.backend.response.4xx responses 后端 HTTP 响应码是 4xx 的次数
haproxy.backend.response.5xx responses 后端 HTTP 响应码是 5xx 的次数
haproxy.backend.response.other responses 后端 HTTP 响应其他状态码(协议错误)的次数
haproxy.backend.response.time milliseconds 最近 1024 次请求的平均响应时间(TCP 为 0)
haproxy.backend.session.current connections 活跃后端会话数
haproxy.backend.session.limit connections 已配置的后端会话限制
haproxy.backend.session.pct percent 正在使用的会话的百分比(backend.session.current/backend.session.limit * 100)
haproxy.backend.session.rate connections/second 每秒创建的后端会话数
haproxy.backend.session.time milliseconds 最近 1024 次请求的平均总会话时间
haproxy.backend.warnings.redis_rate errors/second 重试连接到服务器的次数
haproxy.backend.warnings.retr_rate errors/second 请求重新分派到其他服务器的次数
haproxy.backend_hosts hosts 后端主机数量
haproxy.count_per_status hosts 按状态显示的主机数量 (UP/DOWN/NOLB/MAINT).
haproxy.frontend.bytes.in_rate bytes/second 前端主机传入字节速率
haproxy.frontend.bytes.out_rate bytes/second 前端主机发送字节速率
haproxy.frontend.denied.req_rate requests/second 每秒出于安全考虑被拒绝的请求数量
haproxy.frontend.denied.resp_rate responses/second 每秒出于安全考虑被拒绝的响应数量
haproxy.frontend.errors.req_rate errors/second 每秒错误请求数
haproxy.frontend.requests.rate requests/second 每秒 HTTP 请求数
haproxy.frontend.response.1xx responses 前端 HTTP 响应码是 1xx 的次数
haproxy.frontend.response.2xx responses 前端 HTTP 响应码是 2xx 的次数
haproxy.frontend.response.3xx responses 前端 HTTP 响应码是 3xx 的次数
haproxy.frontend.response.4xx responses 前端 HTTP 响应码是 4xx 的次数
haproxy.frontend.response.5xx responses 前端 HTTP 响应码是 5xx 的次数
haproxy.frontend.response.other responses 前端 HTTP 响应其他状态码(协议错误)的次数
haproxy.frontend.session.current connections 活跃前端会话数
haproxy.frontend.session.limit connections 已配置的前端会话限制
haproxy.frontend.session.pct percent 正在使用的会话的百分比(backend.session.current/backend.session.limit * 100)
haproxy.frontend.session.rate connections/second 每秒创建的前端会话数

配置 HAProxy 监控

1. 确保启用了 HAProxy stats

示例如下:

listen  admin_stats
        bind 0.0.0.0:8888
        mode http
        option httplog
        stats enable
        stats uri       /stats
        stats auth      admin:1234

2. 配置探针与 HAProxy 通信

切换路径至 /etc/CiAgent,开启配置文件 conf.d/haproxy.yaml

cd /etc/CiAgent
cp conf.d/haproxy.yaml.example conf.d/haproxy.yaml
init_config:

instances:
  - username: admin
    password: 1234
    url: http://127.0.0.1:8888/stats

3.重启 Agent

重启 Cloud Insight Agent,使配置生效。

/etc/init.d/CiAgent restart

4.确认状态

您可以通过查看 Agent Info 信息,来验证配置是否成功。

/etc/init.d/CiAgent info

当出现以下信息,则代表安装成功。

Checks


  [...]

  haproxy
  -------
      - instance #0 [OK]
      - Collected 8 metrics & 0 events

有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作


默认标签

Cloud Insight 采集 HAProxy 以下默认主机标签:

标签种类 标签含义
type 类型(FRONTEND or BACKEND)
instance_url 状态页地址(例如 "http://localhost:3835/stats")
service pxname,即代理名称(例如 "public")
backend svname, 即服务名称(FRONTEND for frontend, BACKEND for backend, any name for server)

5分钟,开启你的跨云监控之旅 (`⌄´ )


常见问题