0°

zabbix-api系列3 主机操作

对zabbix主机的增删改查

1.创建主机,并添加到"New Create Group"主机组中

def create_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.create",
        "params": {
            "host": "test1", #主机名称
            "interfaces": [ #为主机创建的接口
                {
                    "type": 1,
                    "main": 1,
                    "useip": 1,
                    "ip": "172.16.1.2", #添加ip地址
                    "dns": "",
                    "port": "10050"
                }
            ],
            "groups": [ #加入到主机组,必须指定
                {
                    "groupid": "17",
                }
            ],
            "templates": [ #链接到模板
                {
                    "templateid": "20045"
                }
            ],
            "inventory_mode": 0, #主机资产清单属性:把MAC地址设置到主机资产清单里
            "inventory": {
                "macaddress_a": "01234",
                "macaddress_b": "56768"
            }
        },
        "auth": auth,
        "id": 1
    }

2.获取主机id:根据主机名获取主机id

def get_hostid():
    values = {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": ['name','hostid'], #选择输出内容,列表形式
            "filter": {
                "host": ["会员中心-1",]  #指定主机名称
            }
        },
        "auth": auth,
        "id": 1
    }

3.根据主机id删除主机

def del_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.delete",
        "params": ["2342"], #主机id号
        "auth": auth,
        "id": 1
    }

4.禁用/启用 主机

def update_host_status():
    values = {
        "jsonrpc": "2.0",
        "method": "host.update",
        "params": {
            "hostid": '10264', #主机id号
            "status": 0 #0启用,1禁用
        },
        "auth": auth,
        "id": 1
    }

5.替换当前主机所属主机组

def update_host_group():
    values = {
        "jsonrpc": "2.0",
        "method": "host.update",
        "params": {
            "hostid": '10264', #指定主机id号
            "groups": ['19'] #加入主机组,可以列表写多个
        },
        "auth": auth,
        "id": 1
    }

6.在指定主机中替换当前链接的模板: 以前模板的 监控项等不会删除

def update_host_temp():
    values = {
        "jsonrpc": "2.0",
        "method": "host.update",
        "params": {
            "hostid": '10264', #主机id号
            "templates": ['10266'] #模板id号
        },
        "auth": auth,
        "id": 1
    }

7.在指定主机中删除指定模板链接并清除: 会清除这个模板的监控项等

def del_host_temp():
    values = {
        "jsonrpc": "2.0",
        "method": "host.update",
        "params": {
            "hostid": '10264', #主机id
            "templates_clear": ['10266'] #模板id
        },
        "auth": auth,
        "id": 1
    }

8.主机组添加到指定的主机中(原有的组机组不变)

def add_group_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.massadd",
        "params": {
            "hosts": [
                {
                    "hostid": "10084" #主机id
                },
                {
                    "hostid": "10264"
                }
            ],
            "groups": [
                {
                    "groupid": '20', #主机组id
                },
            ]
        },
        "auth": auth,
        "id": 1
    }

9.模板添加到指定的主机中

def add_temp_host():
    values = {
        "jsonrpc": "2.0",
        "method": "template.massadd",
        "params": {
            "templates": [
                {
                    "templateid": "123" #模板id
                },
            ],
            "hosts": [
                {
                    "hostid": "2342" #主机id
                }
            ]
        },
        "auth": auth,
        "id": 1
    }

10.为指定主机创建的主机接口: 如果创建主机时已经创建了默认接口,就不能再创建默认接口了

def add_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.massadd",
        "params": {
            "hosts": [
                {
                    "hostid": "10264" #主机id
                },
            ],
            "interfaces": [
                {
                    "type": 1,  # 1 - agent; 2 - SNMP; 3 - IPMI; 4 - JMX. 接口类型
                    "main": 1,  # 在主机上是否使用该接口作为默认值,一个主机仅能设置一个默认值(0不默认,1默认是)
                    "useip": 1, # 是否应该通过IP进行连接,0:使用dns连接,1:使用此主机接口的主机IP地址进行连接
                    "ip": "172.16.1.1",   # 接口使用的IP地址,如果通过DNS进行连接,则可以为空。
                    "dns": "",  # 接口使用的DNS名称,如果通过IP建立连接,可以为空。
                    "port": "10050"  # 接口使用的端口号
                }
            ]
        },
        "auth": auth,
        "id": 1
    }

11.从指定的主机中移除主机组

def rm_group_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.massremove",
        "params": {
            "hostids": ["69665", "69666"], #主机id
            "groupids": "325" #主机组id
        },
        "auth": auth,
        "id": 1
    }

12.删除指定主机中的模板

def rm_temp_hosts():
    values =  {
        "jsonrpc": "2.0",
        "method": "host.massremove",
        "params": {
            "hostids": ["69665", "69666"], #主机id
            "templateids": "325" #模板id
        },
        "auth": auth,
        "id": 1
    }

13.从指定的主机中移除主机接口

def rm_interfaces_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.massremove",
        "params": {
            "hosts":["10264", ],
            "interfaces": [
                {
                    "type": 1,  # 1 - agent; 2 - SNMP; 3 - IPMI; 4 - JMX. 接口类型
                    "main": 1,  # 在主机上是否使用该接口作为默认值,一个主机仅能设置一个默认值(0不默认,1默认是)
                    "useip": 1, # 是否应该通过IP进行连接,0:使用dns连接,1:使用此主机接口的主机IP地址进行连接
                    "ip": "172.16.1.1",   # 接口使用的IP地址,如果通过DNS进行连接,则可以为空。
                    "dns": "",  # 接口使用的DNS名称,如果通过IP建立连接,可以为空。
                    "port": "10050"  # 接口使用的端口号
                }
            ]    
        },
        "auth": auth,
        "id": 1
    }

14.替换当前主机所属主机组

def update_group_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.massupdate",
        "params": {
            "hosts": [
                {
                    "hostid": "10084" #主机id
                },
                {
                    "hostid": "10264"
                }
            ],
            "groups": [
                {
                    "groupid": '20', #主机组id
                },
            ]
        },
        "auth": auth,
        "id": 1
    }

15.仅仅是删除模板关联,模板中的应用集、监控项、触发器等还在主机中

def update_temp_host():
    values =  {
        "jsonrpc": "2.0",
        "method": "host.massupdate",
        "params": {
            "hosts": [
                {
                    "hostid": "10084" #主机id
                },
                {
                    "hostid": "10264"
                }
            ],
            "templates": [
                {
                    "templateid": '10050', #模板id
                },
            ]
        },
        "auth": auth,
        "id": 1
    }

16.删除模板关联关系,在指定主机中删除模板链接并清除(如:应用集、监控项)

def del_temp_host():
    values =  {
        "jsonrpc": "2.0",
        "method": "host.massupdate",
        "params": {
            "hosts": [
                {
                    "hostid": "10084" #主机id
                },
                {
                    "hostid": "10264"
                }
            ],
            "templates_clear": [
                {
                    "templateid": '10050', #模板id
                },
            ]
        },
        "auth": auth,
        "id": 1
    }

17.获取这个zabbix server监控的所有主机信息

def get_hostall():
    values = {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": [
                "hostid",
                "host"
            ],
            "selectInterfaces": [
                "interfaceid",
                "ip"
            ]
        },
        "id": 2,
        "auth": auth
    }

18.仅返回指定主机组所属的主机

def get_group_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": [
                "hostid",
                "host"
            ],
            'groupids':['19'] #主机组id
        },
        "id": 2,
        "auth": auth
    }

19.仅返回含有指定应用集的主机

def get_app_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": [
                "hostid",
                "host"
            ],
            'applicationid':['1069'] #应用集id
        },
        "id": 2,
        "auth": auth
    }

20.仅返回指定主机ID的主机

def get_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": [
                "hostid",
                "host"
            ],
            'hostids':['10264'] #主机id
        },
        "id": 2,
        "auth": auth
    }

21.根据主机名/主机id 获取interfaceid

def get_interfaceid():
    values = {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": ['name','hostid',],
            "filter": {
                #"host": [hostname,],  #根据主机名获取
                'hostids':['10264']   #根据主机id获取
            },
            "selectInterfaces": [  #添加这个参数为了获取interfaceid的值
                "interfaceid",
                "ip"
            ],
        },
        "auth": auth,
        "id": 1
    }

22.仅返回含有指定监控项的主机

def get_item_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": ['name','hostid',],
            "filter": {
                'itemids':['10264']   #根据主机id获取
            },
            "selectInterfaces": [  # 添加这个参数为了获取interfaceid的值
                "interfaceid",
                "ip"
            ],
        },
        "auth": auth,
        "id": 1
    }

23.仅返回与指定模板链接的主机

def get_temp_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": ['name','hostid',],
            "filter": {
                'templateids':['10266']   #根据主机id获取
            },
            "selectInterfaces": [  # 添加这个参数为了获取interfaceid的值
                "interfaceid",
                "ip"
            ],
        },
        "auth": auth,
        "id": 1
    }

24.查询"主机"时返回更多关联信息:主机组、模板、应用集、监控项、触发器、interfaceid

def get_info_host():
    values = {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": [
                "hostid",
                "host"
            ],
            'hostids':['10264'],
            "selectGroups": [  # 1.返回在groups属性中主机所属的主机组。
                "name",
                "groupid"
            ],
            "selectParentTemplates": [  # 2.返回在parentTemplates属性中与主机关联的模板(主机关联的模板)
                "host",
                "templateid"
            ],
            "selectApplications": [  # 3.返回在applications属性中来自主机的应用集。
                "applicationid",
                "name"
            ],
            "selectItems": [  # 4.返回在items属性中主机里的监控项
                "key",
                "itemid",
                "interfaceid",
            ],
            "selectTriggers": [  # 5.返回在triggers属性中主机里的触发器
                "description",
                "triggerid",
            ],
            "selectInterfaces": [  # 6.添加这个参数为了获取interfaceid的值
                "interfaceid",
                "ip"
            ],
        },
        "id": 2,
        "auth": auth
    }
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论