Java怎么获取zabbix监控到的信息

Java怎么获取zabbix监控到的信息,第1张

第一种方法:通过API进行数据交互,比较繁琐。

Zabbix使用Json格式的API,官方文档在这里:网页链接

使用Java通过>

第二种方法:通过数据库直接交互。速度更快。

但也需要看上面的文档。API就相当于数据库了。

这里需要的就是通过Java连接Zabbix数据库,通过视图等方式直接读取信息。

目的:获取zabbix中所有监控的机器主机的IP信息方法1使用zabbixAPI接口python程序方法2直接使用数据库进行查询导出(ip包括monitor和notmonitor的机器,还有为删除的一些残留机器ip)这里使用方法二来介绍mysql-uUSERNAME-pPASSWORD登入mysqlmysql>usezabbix选定 *** 作zabbix库mysql>selectfrominterfacelimit1,10;查看接口信息的表,表中一个字段是IP地址(hosts表中有host和name字段,但是没有接口IP字段)+-------------+--------+------+------+-------+----------------+-----+-------+|interfaceid|hostid|main|type|useip|ip|dns|port|+-------------+--------+------+------+-------+----------------+-----+-------+|255|10361|1|1|1|19216821321||10050||256|10362|1|1|1|19216821322||10050||257|10363|1|1|1|19216821323||10050||258|10364|1|1|1|19216821324||10050||259|10365|1|1|1|19216821325||10050||261|10367|1|1|1|19216821327||10050||262|10368|1|1|1|19216821328||10050||263|10369|1|1|1|19216821329||10050||264|10370|1|1|1|19216821330||10050||265|10371|1|1|1|19216821331||10050|+-------------+--------+------+------+-------+----------------+-----+-------+mysql>selectfrominterfaceintooutfile'/tmp/zabbixip';已文本形式导出这个表(注意导出的路径登入数据库用户必须,对这个路径有写的权限,/tmp权限777)

做过Zabbix的同学都知道,Zabbix通过专用的Agent或者SNMP收集相关的监控数据,然后存储到数据库里面实时在前台展示。Zabbix监控数据主要分为以下两类:

历史数据:history相关表,从history_uint表里面可以查询到设备监控项目的最大,最小和平均值,即存储监控数据的原始数据。

趋势数据:trends相关表,趋势数据是经过Zabbix计算的数据,数据是从history_uint里面汇总的,从trends_uint可以查看到监控数据每小时最大,最小和平均值,即存储监控数据的汇总数据。

Zabbix可以通过两种方式获取历史数据

1通过Zabbix前台获取历史数据

通过Zabbix前台查看历史数据非常简单,可以通过Monitoring->Lastest data的方式查看。也可以点击右上角的As plain test按钮保存成文本文件。

2通过前台获取的数据进行处理和二次查询有很多限制,因此可以通过SQL语句直接从后台DB查询数据。

首先大家应该熟悉SQL语句Select 常用用法:

SELECT [ALL | DISTINCT] Select_List [INTO [New_Table_name]

FROM { Table_name | View_name} [ [,{table2_name | view2_name}

[,…] ]

[ WHERE Serch_conditions ]

[ GROUP BY Group_by_list ]

[ HAVING Serch_conditions ]

[ ORDER BY Order_list [ASC| DEsC] ]

说明:

1)SELECT子句指定要查询的特定表中的列,它可以是,表达式,列表等。

2)INTO子句指定要生成新的表。

3)FROM子句指定要查询的表或者视图。

4)WHERE子句用来限定查询的范围和条件。

5)GROUP BY子句指定分组查询子句。

6)HAVING子句用于指定分组子句的条件。

7)ORDER BY可以根据一个或者多个列来排序查询结果,在该子句中,既可以使用列名,也可以使用相对列号,ASC表示升序,DESC表示降序。

8)mysql聚合函数:sum(),count(),avg(),max(),avg()等都是聚合函数,当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算。运算完后就要用到Having子句进行判断了,例如聚合函数的值是否大于某一个值等等。

以上就是关于Java怎么获取zabbix监控到的信息全部的内容,包括:Java怎么获取zabbix监控到的信息、如何通过python获取zabbix中的graph报表、如何通过Zabbix获取监控数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10102024.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存