Code Monkey home page Code Monkey logo

haproxymon's Introduction

Haproxy monitor plugin for Open-Falcon


功能支持

已测试的Haproxy版本1.5.3, 1.5.9.

通过Haproxy的stats socket接口来采集Haproxy基础状态信息,qcur,scur,rate等;

环境需求

操作系统: Linux

Python > 2.6

python-toml > 0.9.0

haproxymon部署

1 目录解压到/path/to/haproxymon,配置文件也放到同一路径,记得根据你的实际情况修改配置文件中的参数

2 配置要采集的指标,因haproxy stats文件指标太多,为了方便关注关键指标,脚本提供指标筛选功能;

3 配置crontab, 修改haproxymon_cron文件中haproxymon安装路径; cat haproxymon_cron >> /var/spool/cron/root

4 在haproxy.py中将debug_level设置:

  0 表示不输出任何调试内容;
  1 表示输出调用本地falcon代理的返回信息;
  2 表示输出metric信息;
  3 表示输出采集的原始stats内容;

5 endpoint默认是hostname,还可以指定EndpointType来设置为使用本机IP.

6 推荐haproxy的配置文件中使用listen块来配置后端集群: 本插件通过pxname,svname来识别不同metric的,参考例子如下:

 listen  http-in 0.0.0.0:80
    server server1:8000 192.168.0.10:8000 maxconn 32
    server server2:8000 192.168.0.11:8000 maxconn 32
    # other

一般情况几分钟后,可从open-falcon的dashboard中查看haproxy metric

采集的Haproxy指标


Counters Type Notes
haproxy_getstats/pxname=your_pxname,svname=FRONTEND GAUGE 如果非0则表示无法获取stats socket信息
haproxy_status/pxname=your_pxname,svname=FRONTEND GAUGE 后端机器状态:down or up
haproxy_scur/pxname=your_pxname,svname=FRONTEND GAUGE 当前的会话数
haproxy_qcur/pxname=your_pxname,svname=FRONTEND GAUGE 当前排队的请求数量
haproxy_rate/pxname=your_pxname,svname=FRONTEND GAUGE 最近一秒的每秒请求会话数
haproxy_ereq/pxname=your_pxname,svname=FRONTEND GAUGE 客户端请求的错误数
haproxy_econ/pxname=your_pxname,svname=FRONTEND GAUGE 连接后端时的错误数
haproxy_dreq/pxname=your_pxname,svname=FRONTEND GAUGE 因安全原因被拒绝的请求数
haproxy_qtime/pxname=your_pxname,svname=FRONTEND GAUGE 请求的平均排队时间(毫秒)
haproxy_ctime/pxname=your_pxname,svname=FRONTEND GAUGE 请求的平均连接时间(毫秒)

建议设置监控告警项

说明:系统级监控项由falcon agent提供;监控触发条件根据场景自行调整

告警项 触发条件 备注
haproxy_getstats/pxname=your_pxname,svname=FRONTEND all(#3)>0 可能是因为stats socket不存在或是无权访问
haproxy_status/pxname=your_pxname,svname=FRONTEND all(#1)>0 后端机器down会导致负载能力下降,如果所有机器down则无法在提供服务
haproxy_scur/pxname=your_pxname,svname=FRONTEND all(#3)>=1800 会话数超过阀值会拒绝客户端建立新连接
haproxy_qcur/pxname=your_pxname,svname=FRONTEND all(#3)>100 超过阀值,说明排队请求多,整体负载压力大
haproxy_rate/pxname=your_pxname,svname=FRONTEND all(#3)>8000 超过阀值表示haproxy压力过大
haproxy_ereq/pxname=your_pxname,svname=FRONTEND all(#3)>100 客户端请求错误超过阀值需要检查timeout等于客户端连接有关的配置
haproxy_econ/pxname=your_pxname,svname=FRONTEND all(#3)>100 若这个值大幅上升可能是后端机器无法响应请求
haproxy_dreq/pxname=your_pxname,svname=FRONTEND all(#3)>100 tcp模式可能是触发tcp请求内容规则
haproxy_qtime/pxname=your_pxname,svname=FRONTEND all(#3)>50 超过阀值可能是后端处理能力在下降
haproxy_ctime/pxname=your_pxname,svname=FRONTEND all(#3)>50 超过阀值可能是haproxy到后端间网络状况变差

Contributors

haproxymon's People

Contributors

iask avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.