zabbix api研究批量操作 zabbix批量添加主机

项目地址
GitCode项目地址

效果图
在这里插入图片描述
下载pycharm用于项目适配
PyCharm下载地址

注意下滑鼠标下载社区版
在这里插入图片描述

打开软件后下载中文插件

在这里插入图片描述

下载Git用于克隆GitHub项目
Git下载地址
具体操作可参考

下载Python用于用于项目适配
Python3.7.0下载地址
具体操作可参考

下载FastGithub用于GitHub下载加速
FastGithub下载
具体操作可参考

克隆GitHub项目
https://gitcode.net/1284524409/zabbix.git
具体操作可参考

修改成正确的zabbix api地址与用户名密码,文件为zabbix_api.py
self.url = 'http://172.169.10.2/zabbix/api_jsonrpc.php' # 修改URL
"user": "Admin", # web页面登录用户名
"password": "zabbix" # web页面登录密码

class ZabbixApi:
    def __init__(self):
        self.authID = None
        self.url = 'http://172.169.10.2/zabbix/api_jsonrpc.php'  # 修改URL
        self.header = {"Content-Type": "application/json"}
        self.session = requests.Session()
        self.session.mount(self.url, requests.adapters.HTTPAdapter(max_retries=3))
        self.def_login()
        self.gv_apiVersion = None

    def def_login(self):
        lv_data = json.dumps({
            "jsonrpc": "2.0",
            "method": "user.login",
            "params": {
                "user": "Admin",  # web页面登录用户名
                "password": "zabbix"  # web页面登录密码
            },

目前支持的参数有:

PS D:\00_development\pycharm\zabbix_api> venv\Scripts\python.exe zabbix_api_base.py   
usage: zabbix_api_base.py [options]

zabbix api

optional arguments:
  -h, --help            show this help message and exit
  -create_hostgroup [无参数]
                        创建主机组
  -delete_hostgroup [无参数]
                        删除主机组
  -create_template [无参数]
                        创建模板
  -delete_template [无参数]
                        删除模板
  -massadd_template_groups [无参数]
                        模板添加主机组
  -massremove_template_groups [无参数]
                        模板删除主机组
  -massadd_template_macros [无参数]
                        模板添加用户宏
  -massremove_template_macros [无参数]
                        模板删除用户宏
  -massadd_template_templates_link [无参数]
                        模板关联模板
  -massremove_templateids_clear [无参数]
                        模板脱离模板清理监控项
  -massremove_templateids_link [无参数]
                        模板脱离模板保留监控项
  -update_tags [无参数]    模板更新替换所有标签
  -delete_tags [无参数]    模板删除标签
  -create_template_item [无参数]
                        模板创建监控项
  -delete_template_item [无参数]
                        模板删除监控项
  -update_template_item_tags [无参数]
                        模板更新监控项标签
  -delete_template_item_tags [无参数]
                        模板删除监控项标签
  -create_template_trigger [无参数]
                        模板创建触发器
  -delete_template_trigger [无参数]
                        模板删除触发器
  -update_template_trigger_tags [无参数]
                        模板更新触发器标签
  -delete_template_trigger_tags [无参数]
                        模板删除触发器标签
  -create_host [无参数]    创建主机
  -delete_host [无参数]    删除主机
  -massadd_host_interface [无参数]
                        主机创建接口
  -massremove_host_interface [无参数]
                        主机删除接口
  -massadd_host_template [无参数]
                        主机关联模板
  -massremove_host_templateids [无参数]
                        主机脱离模板保留监控项
  -massremove_host_templateids_clear [无参数]
                        主机脱离模板清理监控项
  -massadd_host_groups [无参数]
                        主机关联主机组
  -massremove_host_group [无参数]
                        主机脱离主机组
  -create_discoveryrule [无参数]
                        创建发现规则
  -delete_discoveryrule [无参数]
                        删除发现规则
  -create_itemprototype [无参数]
                        模板创建发现规则监控项
  -delete_itemprototype [无参数]
                        模板删除发现规则监控项
  -create_template_triggerprototype [无参数]
                        模板创建发现规则触发器
  -delete_template_triggerprototype [无参数]
                        模板删除发现规则触发器
  -export_configuration [无参数]
                        导出所有模板
  -import_configuration [无参数]
                        入所有模板
  -poedit_zabbix_ui_to_excel [无参数]
                        从poedit导出zabbix ui 6.0翻译文本到excel
  --v V
  -excel_zabbix_ui_to_poedit [无参数]
                        从excel导出zabbix ui 6.0翻译文本到poedit
  -xliff_zabbix_document_to_excel [无参数]
                        从xliff导出zabbix document 7.0翻译文本到excel
  -excel_zabbix_document_to_xliff [无参数]
                        从excel导出zabbix document 7.0翻译文本到xliff
  -v, --version         如有问题请联系作者QQ1284524409

None
PS D:\00_development\pycharm\zabbix_api> 


(venv) D:\00_development\pycharm\zabbix_api>venv\Scripts\python.exe zabbix_api_extend.py
usage: zabbix_api_extend.py [options]

zabbix api

optional arguments:
  -h, --help            show this help message and exit
  -get_item_history [无参数]
                        按主机名批量计算历史最小值、平均值、最大值
  -get_all_history [无参数]
                        按主机名批量导出历史数据
  -get_hostgroup_host [无参数]
                        为主机组批量获取主机名
  -get_host_key_item [无参数]
                        为所有主机获取数据
  -get_hostgroup_item [无参数]
                        为主机组批量获取主机监控项
  -stop_all_priority_trigger [无参数]
                        批量停止已启用触发器
  -start_all_priority_trigger [无参数]
                        批量启用已停止触发器
  -stop_all_unsupport_item [无参数]
                        批量停止不支持的监控项
  -start_all_unsupport_item [无参数]
                        批量启用不支持的监控项
  -massadd_host_template_base_20221003 [无参数]
                        主机组下所有主机附加模板
  -massupdate_host_template_base_20221003 [无参数]
                        主机组下所有主机更新模板
  -def_massremove_host_templateids_clear_base_20221003 [无参数]
                        主机组下所有主机脱离模板清理监控项
  -get_all_alert [无参数]  获取所有告警信息
  -get_all_problem [无参数]
                        获取所有问题信息
  -get_all_event [无参数]  获取所有事件信息
  -createfile [无参数]     生成配置文件
  -senddir [无参数]        下发文件
  -sendcfg [无参数]        配置代理
  -sendsj [无参数]         配置审计
  -v, --version         如有问题请联系作者QQ1284524409

(venv) D:\00_development\pycharm\zabbix_api>

(venv) D:\00_development\pycharm\zabbix_api>venv\Scripts\python.exe zabbix_api_chinese.py
usage: zabbix_api_chinese.py [options]

zabbix api

optional arguments:
  -h, --help            show this help message and exit
  -export_all_template_item_sheet19 [无参数]
                        仅作者用于导出英文所有模板监控项
  -trans_all_template_item_to_chinese_sheet20 [无参数]
                        请使用此选项翻译模板监控项
  -export_all_template_trigger_sheet21 [无参数]
                        仅作者用于导出英文所有模板触发器
  -trans_all_template_trigger_to_chinese_sheet22 [无参数]
                        请使用此选项翻译模板触发器
  -export_all_template_graph_sheet23 [无参数]
                        仅作者用于导出英文所有模板图表
  -trans_all_template_graph_to_chinese_sheet24 [无参数]
                        请使用此选项翻译模板图表
  -export_all_template_itemprototype_sheet25 [无参数]
                        仅作者用于导出英文所有模板监控项原型
  -trans_all_template_itemprototype_to_chinese_sheet26 [无参数]
                        请使用此选项翻译模板监控项原型
  -export_all_template_triggerprototype_sheet27 [无参数]
                        仅作者用于导出英文所有模板触发器类型
  -trans_all_template_triggerprototype_to_chinese_sheet28 [无参数]
                        请使用此选项翻译模板触发器类型
  -export_all_template_graphprototype_sheet29 [无参数]
                        仅作者用于导出英文所有模板图表原型
  -trans_all_template_graphprototype_to_chinese_sheet30 [无参数]
                        请使用此选项翻译模板图表原型
  -export_all_template_trigger_event_name_sheet37 [无参数]
                        仅作者用于导出英文所有模板触发器事件名称
  -trans_all_template_trigger_event_name_to_chinese_sheet37 [无参数]
                        请使用此选项翻译模板触发器事件名称
  -export_all_template_triggerprototype_name_sheet38 [无参数]
                        仅作者用于导出英文所有模板触发器原型事件名称
  -trans_all_template_triggerprototype_name_to_chinese_sheet38 [无参数]
                        请使用此选项翻译模板触发原型器事件名称
  -export_all_template_tag_name_sheet40 [无参数]
                        仅作者用于导出英文所有模板标签名称
  -trans_all_template_tag_name_to_chinese_sheet40 [无参数]
                        请使用此选项翻译模板标签名称
  -export_all_template_item_tag_name_sheet41 [无参数]
                        仅作者用于导出英文所有模板监控项标签名称
  -trans_all_template_item_tag_name_to_chinese_sheet41 [无参数]
                        请使用此选项翻译模板监控项标签名称
  -export_all_template_trigger_tag_name_sheet42 [无参数]
                        仅作者用于导出英文所有模板触发器标签名称
  -trans_all_template_trigger_tag_name_to_chinese_sheet42 [无参数]
                        请使用此选项翻译模板触发器标签名称
  -export_all_template_itemprototype_tag_sheet43 [无参数]
                        仅作者用于导出英文所有模板监控项原型标签
  -trans_all_template_itemprototype_tag_to_chinese_sheet43 [无参数]
                        请使用此选项翻译模板监控项原型标签
  -export_all_template_triggerprototype_tag_sheet44 [无参数]
                        仅作者用于导出英文所有模板监控项原型标签
  -trans_all_template_triggerprototype_tag_to_chinese_sheet44 [无参数]
                        请使用此选项翻译模板监控项原型标签
  -export_all_hostgroup_name_sheet45 [无参数]
                        仅作者用于导出英文主机组名称
  -trans_all_hostgroup_name_to_chinese_sheet45 [无参数]
                        请使用此选项翻译主机组名称
  -export_all_templategroup_name_sheet46 [无参数]
                        仅作者用于导出英文模板组名称
  -trans_all_templategroup_name_to_chinese_sheet46 [无参数]
                        请使用此选项翻译模板组名称
  -export_all_application_name_sheet47 [无参数]
                        仅作者用于导出英文模板应用集名称
  -trans_all_application_name_to_chinese_sheet47 [无参数]
                        请使用此选项翻译模板应用集名称
  -v, --version         如有问题请联系作者QQ1284524409

(venv) D:\00_development\pycharm\zabbix_api>

Pycharm示例

PS D:\00_development\pycharm\zabbix_api> .\venv\Scripts\python.exe .\zabbix_api_base.py -create_hostgroup
创建主机组: hostgroup1 失败! 原因: Host group "hostgroup1" already exists.
创建主机组: hostgroup2 失败! 原因: Host group "hostgroup2" already exists.
创建主机组: hostgroup3 失败! 原因: Host group "hostgroup3" already exists.
创建主机组: hostgroup4 失败! 原因: Host group "hostgroup4" already exists.
创建主机组: hostgroup5 失败! 原因: Host group "hostgroup5" already exists.
创建主机组: hostgroup6 失败! 原因: Host group "hostgroup6" already exists.
创建主机组: hostgroup7 失败! 原因: Host group "hostgroup7" already exists.
创建主机组: hostgroup8 失败! 原因: Host group "hostgroup8" already exists.
创建主机组: hostgroup9 失败! 原因: Host group "hostgroup9" already exists.
创建主机组: hostgroup10 失败! 原因: Host group "hostgroup10" already exists.

交流群

zabbix-答疑群zabbix-汉化群
微信打赏微信打赏

全文完结

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
要使用Python调用Zabbix API批量查询主机的信息,您需要进行以下步骤: 1. 安装 `zabbix-api` 模块:您可以使用 `pip` 命令安装该模块,例如:`pip install zabbix-api` 2. 导入必要的库和模块: ```python from pyzabbix import ZabbixAPI import json ``` 3. 创建 `ZabbixAPI` 对象并登录: ```python zabbix_server = "http://zabbix.example.com" zabbix_user = "username" zabbix_password = "password" zapi = ZabbixAPI(url=zabbix_server, user=zabbix_user, password=zabbix_password) zapi.login() ``` 4. 使用 `host.get` 方法批量查询主机信息: ```python hosts = zapi.host.get(output=['hostid', 'host', 'name', 'status', 'ip']) ``` 此时,变量 `hosts` 将包含所有主机的信息。在这个示例中,我们查询了每个主机的 `hostid`、`host`、`name`、`status` 和 `ip` 信息。 5. 处理查询结果: ```python for host in hosts: print("Host ID:", host['hostid']) print("Host Name:", host['name']) print("Host Status:", host['status']) print("Host IP:", host['ip']) print("------------------------") ``` 以上代码将遍历每个主机,并打印出其 ID、名、状态和 IP 地址。 完整代码示例: ```python from pyzabbix import ZabbixAPI import json zabbix_server = "http://zabbix.example.com" zabbix_user = "username" zabbix_password = "password" zapi = ZabbixAPI(url=zabbix_server, user=zabbix_user, password=zabbix_password) zapi.login() hosts = zapi.host.get(output=['hostid', 'host', 'name', 'status', 'ip']) for host in hosts: print("Host ID:", host['hostid']) print("Host Name:", host['name']) print("Host Status:", host['status']) print("Host IP:", host['ip']) print("------------------------") ``` 注意:在实际使用中,您可能需要根据具体情况修改查询的参数和返回结果的处理方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NoYoWiFi

感谢大佬赐赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值