zabbix可利用的表结构及api的调用

主要要实现的功能:

1):获取所有主机组以及主机组下的主机
2):获取相关主机的所有监控项以及最近的值
3):获取相关主机最近报警的trigger
实现方法:
1         zabbix表结构(重要的字段)

1.1    groups、hosts表


其中hosts表中的status代表主机是否启用监控,0为监控,1为不起用

1.2    hosts、items、history表


用途:items表中的status代表监控项是否启用监控,0为监控,1为不起用

其中historys分为historys:存放浮点数

History_log:存放字符串

History_str:存放字符串

History_uint:存放整数

1.3    Triggers表


用途:主要用来存放存放trigger的状态,其中status,0为启用,1为不起用,value值代表trigger是否报警,0为正常,1为报警

2         zabbixapi

2.1    zabbix2.4.4接口地址

接口链接:https://www.zabbix.com/documentation/2.4/manual/api,在zabbix用户手册第17章API-->Methodreference下,可以看到zabbix接口

2.2    用户请求

请求url:http://ip/zabbix/api_jsonrpc.php

请求header:{"Content-Type": "application/json"}

2.3    获取用户登录的认证ID

request json字符串格式

{

    "jsonrpc":"2.0",

    "method":"user.login",

    "params":{

       "user": "Admin", #用户名

       "password": "zabbix" #密码

    },

    "id":1

}

Response得到的结果:

{

    "jsonrpc":"2.0",

    "result":"0424bd59b807674191e7d77572075f33",

    "id":1

}

需要用到result中的内容0424bd59b807674191e7d77572075f33。

2.4    获取主机组和主机

a)        获取所有主机组的groupid、所属的hostid和name

{

                                     "jsonrpc":"2.0",

                                     "method":"hostgroup.get",

                                     "params":{

                                                "output": ["groupid",

                                                        "name"    #输出groupid和name

                                                ],

                                               "selectHosts":"*",

                                                "filter": {

                                                           "flag": "0" #筛选条件

                                           }

                                     },

                                     "auth":self.authID,

                                     "id":1

}

b)        获取一个主机组的所有主机(需要利用上边获取到的hostid,可以组成联动下拉框)

{

                                     "jsonrpc":"2.0",

                                     "method":"host.get",

                                     "params":{

                                                "output": ["hostid",

                                                         "name" #输出hostid和name

                                                ],

                                                "filter": {

                                                        "hostid":hostid,

                                                        "status":"0"#status 0表示启用,1表示没启用

                                                 }

                                     },

                                     "auth":self.authID,

                                     "id":1

}

2.5    获取监控项以及最新的监控数据

可以通过以下接口获取监控项的所有itemid、status(0为启用,1为禁用)、最新数据以及时间,监控项名称

{

                                     "jsonrpc":"2.0",

                                     "method":"item.get",

                                     "params":{

                                                "output": ["hostid",

                                                         "itemid",

                                                         "status",

                                                         "lastcolock",

                                                         "lastvalue",

                                                         "name"  #输出hostid、itemid状态、名称、最近的值

                                                ],

                                                "filter": {

                                                        "hostid":10105,

                                                        "status":"0"#status 0表示启用,1表示没启用

                                                 }

                                     },

                                     "auth":self.authID,

                                     "id":1

                   }

2.6    过去主机最新的trigger报警

可以通过以下接口获取trigger的triggerid、报警描述和报警级别

{

                                     "jsonrpc":"2.0",

                                     "method":"trigger.get",

                                     "params":{

                                                "output": ["triggerid",

                                                         "description",#描述

                                                         "priority",  #报警级别

                                                ],

                                                "selectHosts":"",

                                                "filter": {

                                                        "hostid":10105,#主机id

                                                        "status":"0",#status0表示启用,1表示没启用

                                                        "value":"1"#value0表示正常,1表示异常

                                                 },

                                                 "sortfield": "priority",#以哪个字段排序

                                                 "sortorder": "DESC"#倒序还是顺序

                                     },

                                     "auth":self.authID,

                                     "id":1

                   }

2.7    建议

a)        从zabbix数据库查询数据特别慢,建议调用zabbix api来获取数据。





猜你喜欢

转载自blog.csdn.net/hzx1464138068/article/details/78331364
今日推荐