0°

zabbix-api系列2 主机组操作

对zabbix主机组的增删改查

1.创建主机组

def create_hosts():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.create",
        "params": {
            "name": "test1_group" #传入主机组名
        },
        "auth": auth,
        "id": 1
    }

#成功返回{'jsonrpc': '2.0', 'result': {'groupids': ['16']}, 'id': 1}
#重复返回{'jsonrpc': '2.0', 'error': {'code': -32602, 'message': 'Invalid params.', 'data': 'Host group "test1_group" already exists.'}, 'id': 1}

2.根据主机组名查询主机组id号

def get_groupid():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.get",
        "params": {
            "output": "extend",
            "filter": {
                "name": [
                    "test1_group", #传入主机组名
                ]
            }
        },
        "auth": auth,
        "id": 1
    }

#成功返回{'jsonrpc': '2.0', 'result': [{'groupid': '5', 'name': 'test1_group', 'internal': '1', 'flags': '0'}], 'id': 1}
#查询不存在主机组名返回{'jsonrpc': '2.0', 'result': [], 'id': 1}

3.查询所有主机组id号

def get_groupallid():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.get",
        "params": {
            "output": "extend"
            },
        "auth": auth,
        "id": 1
    }

#成功返回{'jsonrpc': '2.0', 'result': [{'groupid': '1', 'name': 'test1_group', 'internal': '0', 'flags': '0'}, {'groupid': '2', 'name': 'Linux servers', 'internal': '0', 'flags': '0'}}

4.删除主机组

def del_group():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.delete",
        "params": ["17"], #删除多个可以传入列表
        "auth": auth,
        "id": 1
    }

#成功返回{'jsonrpc': '2.0', 'result': {'groupids': ['17']}, 'id': 1}
#删除组不存在返回{'jsonrpc': '2.0', 'error': {'code': -32500, 'message': 'Application error.', 'data': 'No permissions to referred object or it does not exist!'}, 'id': 1}

5.修改主机组名

def rename_group():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.update",
        "params": {
            "groupid": "17", #主机组id号
            "name": "test2_group" #新名称
        },
        "auth":auth,
        "id": 1
    }

#成功返回{'jsonrpc': '2.0', 'result': {'groupids': ['17']}, 'id': 1}

6.加主机组加入模板和主机

def add_host_group():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.massadd",
        "params": {
            "groups": [
                {
                    "groupid": "5" #主机组id,可以添加单个或多个
                },
                {
                    "groupid": "6"
                }
            ],
            "hosts": [
                {
                    "hostid": "30050" #主机id
                },
                {
                    "hostid": "30001"
                }
            ],
            "templates": [
                {
                    "templateid": "30050" #模板id,选填
                },
                {
                    "templateid": "30001"
                }
            ]
        },
        "auth": auth,
        "id": 1
    }

7.替换主机组中的所有主机

def update_host_group():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.massupdate",
        "params": {
            "groups": [
                {
                    "groupid": "6" #主机组id
                }
            ],
            "hosts": [
                {
                    "hostid": "30050" #主机id
                }
            ]
        },
        "auth": auth,
        "id": 1
    }

8.替换主机组中的所有模板

def update_temp_group():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.massupdate",
        "params": {
            "groups": [
                {
                    "groupid": "6" #主机组id
                }
            ],
            "templates": [
                {
                    "templateid": "30050" #模板id
                }
            ]
        },
        "auth": auth,
        "id": 1
    }

9.删除主机组中的主机

def del_host_group():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.massremove",
        "params": {
            "groupids": [
                "5" #主机组id
            ],
            "hostids": [
                "30050", #主机id
                "30001"
            ]
        },
        "auth": auth,
        "id": 1
    }

10.删除主机组中的模板

def del_temp_group():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.massremove",
        "params": {
            "groups": [
                {
                    "groupid": "6" #主机组id
                }
            ],
            "templates": [
                {
                    "templateid": "30050" #模板id
                }
            ]
        },
        "auth": auth,
        "id": 1
    }

11.根据主机id获取组信息

def post_hostid_group():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.get",
        "params": {
            "output": "extend",
            'hostids':['10084','10264'] #主机id号
        },
        "auth": auth,
        "id": 1
    }

#成功返回[{"internal":"0","flags":"0","groupid":"19","name":"New Create Group"},{"internal":"0","flags":"0","groupid":"20","name":"New Group 02"}]

12.只返回包含给定模板的主机组

def post_tempid_group():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.get",
        "params": {
            "output": "extend",
            'templateids':['10266'] #模板id号
        },
        "auth": auth,
        "id": 1
    }

#成功返回[{"internal":"0","flags":"0","groupid":"19","name":"New Create Group"},{"internal":"0","flags":"0","groupid":"20","name":"New Group 02"}]

13.返回属于主机组的所有主机

def post_groupid_host():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.get",
        "params": {
            "output": 'extend',
            "filter": {
                "groupid": '20' #主机组id
            },
            "selectHosts": [  #加这个获取interfaceid的值,用于主机后续操作
                "name",
                "hostid"
            ],
        },
        "auth": auth,
        "id": 1
    }

#成功返回[{"hosts":[{"hostid":"10084","name":"Zabbix server"},{"hostid":"10264","name":"zabbix_agent_1.1.1.3"}],"internal":"0","flags":"0","groupid":"20","name":"New Group 02"}]

14.返回属于主机组的所有模板

def post_groupid_temp():
    values = {
        "jsonrpc": "2.0",
        "method": "hostgroup.get",
        "params": {
            "output": 'extend',
            "filter": {
                "groupid": '19' #主机组id号
            },
            "selectTemplates": [  #获取interfaceid的值用于后续主机操作
                "host",
                "templateid"
            ],
        },
        "auth": auth,
        "id": 1
    }

#成功返回[{"templates":[{"host":"New Create Template","templateid":"10266"}],"internal":"0","flags":"0","groupid":"19","name":"New Create Group"}]
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论