首页 > 解决方案 > 使用 jmx 的 Http 请求

问题描述

下午好!我尝试通过 zabbix http-agent 从 apache hive 以 JSON 格式获取数据,它可以工作。但我有一个不愉快的情况,JSON 数据有超过 180000 个字符。这是一个问题,因为 MYSQL 字段只有 65535 个最大字符(我的表现,我不想改变它)。这样,MYSQL 字段中的 JSON 数据无效(不完整)。

正如我所想,我找到了一个解决方案——它是带有参数的 http 请求。例如:

http://localhost:port/jmx                      - full JSON data
?qry=Hadoop:service=NameNode,name=NameNodeInfo - data which I need
http://localhost:port/jmx?qry=Hadoop:service=NameNode,name=NameNodeInfo - full request

我制作了 zabbix 模板和 zabbix item。项目有下一个选项:

Type: http-agent
URL: http://{HOST.CONN}:10010/jmx?qry=metrics:name=api_runTasks
Type of information: text

我在zabbix“最新数据”中得到不完整的JSON数据,下一个网址:http://localhost:port/jmx

我得到带有下一个 url 的空 JSON 数据:http://{HOST.CONN}:10010/jmx?qry=metrics:name=api_runTasks

我试图使用查询字段调整 zabbix 代理,其中名称字段qry值字段指标:名称=api_runTasks(我尝试了许多组合,并且在 zabbix 最新数据历史记录中只收到两条消息):

{"body":{ "beans" : [ ] }} or
{ } or
full incomplete JSON data

标签: jsonhivejmxzabbix

解决方案


Zabbix item 需要有下一个选项:

URL: http://{HOST.CONN}:10010/jmx

查询字段:

name: qry
value: metrics:name=api_compile

Hive 2.0 默认启用了两种记录指标的方式,分别是 JMX 和 JSON 文件 /tmp/report.json


推荐阅读