
第一种方法:通过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获取监控数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)