尊龙时凯

    热门搜索 Zabbix技术资料 Zabbix常见问、答讨论 成功案例 Zabbix交流区 Prometheus交流区

    zabbix利用HTTP代理监控API

    简介-zabbix监控

    zabbix 4.0版本开始,官方提供了一种新的HTTP代理(HTTP agent)的健康方式,通过HTTP协议采集数据,它由zabbix server或者zabbix proxy发起,并且不需要安装zabbix agent。
    官方文档说明:http://www.zabbix.com/documentation/current/en/manual/config/items/itemtypes/http
    本文将介绍HTTP代理的使用方法及技巧。

    环境需求

    • zabbix 版本 >= 4.0

    案例:通过Spring Boot Actuator Web API监控应用状态

    • actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。
    • 官方文档说明:http://docs.spring.io/spring-boot/docs/current/actuator-api/htmlsingle/

    actuator提供了一个health endpoint用于获取有关应用程序的运行状况的详细信息。
    官方文档地址:http://docs.spring.io/spring-boot/docs/current/actuator-api/htmlsingle/#health

    URL地址为 http://:/actuator/health
    返回结果(JSON数据格式):

    {
      "status""UP",
      "components": {
        "custom": {
          "status""UP",
          "details": {
            "app""Alive and Kicking",
            "error""Nothing! I'm good."
          }
        },
        "diskSpace": {
          "status""UP",
          "details": {
            "total"52776349696,
            "free"43368595456,
            "threshold"10485760
          }
        },
        "ping": {
          "status""UP"
        }
      }
    }

    配置监控项

    推荐使用zabbix的master监控项 + 依赖监控项(相关项目)来实现一次调用采集多个数据,减少对API的调用次数。

    步骤 1: 创建master监控项

    创建监控项并修改以下配置:

    • 名称:Get Spring boot actuator health
    • 类型:HTTP代理
    • 键值:spring.boot.actuator.health
    • URL:http://masix.cn:8080/actuator/health(支持使用macro宏变量)
    • 请求类型:GET
    • 要求的状态码:200
    • 信息类型:文本
    • 更新间隔:1m
    • 历史数据保留时长:Do not keep history
    • 应用集:zabbix raw items

    如果API接口需要认证,可以设置HTTP认证用户名密码支持使用macro宏变量。

    zabbixzabbix

    配置完成后点下方的测试,点击Get value and test,检查是否能够正确获取数据。

    zabbix

    步骤 2: 创建依赖监控项(相关项目)

    假设需要监控应用的状态以及磁盘的剩余空间这两个指标

    指标 1: 监控应用状态

    JSONPath语法说明参考官方文档:http://www.zabbix.com/documentation/current/en/manual/config/items/preprocessing/jsonpath_functionality

    创建监控项并修改以下配置:

    • 名称:Spring boot Application: Health Status
    • 类型:相关项目
    • 键值:spring.boot.actuator.health.status
    • 主要项:Get Spring boot actuator health
    • 信息类型:字符
    • 应用集:Spring boot Application
    zabbix

    进程标签页添加步骤:

    • 名称:JSONPath
    • 参数:$.status
    • Custom on fail: 勾选并选择Set value to,值填写Down(当API无法访问时会将监控项数据设置为Down,方便配置触发器表达式)
    zabbix

    点击下方的Test all steps进行配置验证,在中填入master监控项测试获取的数据,点击测试检查是否能够正确获取数据。

    zabbix

    指标 2: 监控磁盘剩余空间

    创建监控项并修改以下配置:

    • 名称:Spring boot Application: Disk free space
    • 类型:相关项目
    • 键值:spring.boot.actuator.health.diskspace.free
    • 主要项:Get Spring boot actuator health
    • 信息类型:数字(无正负)
    • 单位:B
    • 应用集:Spring boot Application
    zabbix

    进程标签页添加步骤:

    • 名称:JSONPath
    • 参数:$.components.diskSpace.details.free
    • Custom on fail: 勾选并选择Discard value(当API无法访问时会将监控项数据丢弃)
    zabbix

    点击下方的Test all steps进行配置验证,在中填入master监控项测试获取的数据,点击测试检查是否能够正确获取数据。

    zabbix

    检查最新数据能否正常采集

    注意:依赖监控项(相关项目)的数据更新间隔是由master监控项设置的更新间隔决定的

    至此,监控项的配置就已经完成,接下来可以根据实际情况配置对应的触发器。
    在配置模板时,可以将master监控项中的URL配置为macro宏变量,例如: http://{$HOST}:{$PORT}/actuator/health,这样可以在链接模版时对不同的主机设置宏变量(用户名密码也可以这样配置)。

    The prev: The next:

    Related recommendations

    Expand more!

    快速导航

    成功案例

    View all