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) |
常见问题
- 若要在同一个服务器上监控多个相同的平台服务,参考如何监控多个平台服务。
- 有任何关于产品的使用疑惑,参考常见问题。