Python:调用zabbix api,删除部分被监控主机

调用zabbix api,删除部分被监控主机。

  • 简介
  • 代码部分
  • 配置文件
    • config.json
    • namefile.txt

简介

    当新主机上线时,我们可以通过自动注册功能,在zabbix中批量添加这些新主机。那当有主机需要下线时,我们又该如何在zabbix中批量删除这些主机呢?我们可以使用python编写脚本, 通过调用zabbix api的方式,实现被监控主机的批量删除功能。这个脚本虽然简单,但同时涉及python和zabbix api的基础操作,很适合初学者将理论知识落地成为实践,通过理论实践相结合的方法,让我们能快速成长。

代码部分

# -*- coding: utf-8 -*-
import json
from urllib import request# 从配置文件中读取配置信息
def get_conf_info(conf):with open(conf) as f:conf_info = json.load(f)return conf_info# 从文件中读取主机名到列表中
def get_hostname_lst(hostname_file):with open(hostname_file) as f:ss = f.readlines()ss = [ i.strip() for i in ss ]return ss# 调用zabbix api
class call_zbxapi:def __init__(self,url):self.url = urlself.idx = 0self.auth = Noneself.hostid_lst = []# 发送request请求,执行相关指令def send_request(self,method,params):headers = {"Content-Type": "application/json-rpc"}data = {"jsonrpc": "2.0","method": method,"id": self.idx,"auth": self.auth,"params": params}req = request.Request(self.url,headers=headers,data=json.dumps(data).encode("UTF-8"))with request.urlopen(req) as res:res = res.read()ret = json.loads(res)if "result" in ret:result = ret["result"]return resultself.idx += 1 # 获取认证tokendef login(self,user,password):method = "user.login"params = {"user": user,"password": password,}self.auth = self.send_request(method,params)# 退出登录def logout(self):method = "user.logout"params = []self.send_request(method,params)# 通过主机名获取主机id,host_lst为由主机名组成的列表,输出由主机id组成的列表。def get_hostid_lst(self,hostname_file):method = "host.get"params = {"output": ["hostid"],"filter": {"host": hostname_file}}result = self.send_request(method,params)self.hostid_lst = [ i["hostid"].strip() for i in result ]# 删除hostid_lst中的主机def del_host(self):method = "host.delete"params = self.hostid_lstself.send_request(method,params)def main():# 获得相关配置信息conf = "config.json"conf_info = get_conf_info(conf)url = conf_info["api"]["url"]user = conf_info["api"]["user"]password = conf_info["api"]["password"]# 获得待删除的主机名称hostname_file = "namefile.txt"hostname_lst = get_hostname_lst(hostname_file)# 调用zbx api,通过主机名称获得主机id,再按照主机id删除主机zbxapi_caller = call_zbxapi(url)zbxapi_caller.login(user,password)zbxapi_caller.get_hostid_lst(hostname_lst)zbxapi_caller.del_host()zbxapi_caller.logout()if __name__ == "__main__":main()

配置文件

config.json

[root@redis del_zbxhosts]# cat config.json 
{"api": {"url": "http://192.168.1.10/zabbix/api_jsonrpc.php","user": "Admin","password": "zabbix"}
}

namefile.txt

[root@redis del_zbxhosts]# cat namefile.txt 
redis1
redis2
redis3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/857278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘!速卖通、敦煌网、国际站出单背后的黑科技:自养号测评技术

在竞争激烈的跨境电商平台上,如亚马逊、速卖通、Lazada、Shopee、敦煌网、Temu、Shein、美客多和阿里国际等,稳定出单成为每位卖家共同追求的目标。为了实现这一目标,卖家需要从产品选择、运营策略和客户服务等多个维度进行全面考量&#xff…

华为重磅官宣:超9亿台、5000个头部应用已加入鸿蒙生态!人形机器人现身 专注AI芯片!英伟达挑战者Cerebras要上市了

内容提要 华为表示,盘古大模型5.0加持,小艺能力全新升级。小艺智能体与导航条融为一体,无处不在,随时召唤。只需将文字、图片、文档“投喂”小艺,即可便捷高效处理文字、识别图像、分析文档。 正文 据华为终端官方微…

采用string 及random库随机生成长度为32的字符串

要使用Python的string和random库来生成一个长度为32的随机字符串,其中包含大小写字母和数字,你可以按照以下方式编写代码: import string import random def generate_random_string(length32): """生成一个指定长度的随…

JavaWeb阶段学习知识点(一)

【参考视频】https://www.bilibili.com/video/BV1m84y1w7Tb?p=167&vd_source=38a16daddd38b4b4d4536e9c389e197f SpringBoot项目的创建和接口配置 做一个springboot项目,从创建项目到实现浏览器访问localhost:8080/hello返回字符串hello world的全流程 1. 创建项目 idea新…

从二元一次方程组到二阶行列式再到克拉默法则

目录 引言1 二元一次方程组什么是二元一次方程组?解法概述示例1. 操作步骤2. 消元法 2 二阶行列式引入行列式行列式定义示例计算 3 克拉默法则什么是克拉默法则?克拉默法则公式使用克拉默法则求解 4 总结 引言 在数学中,线性代数提供了一套强…

Laravel 高级:了解$loop

Blade 提供 foreach、while、for 和 forelse 等指令来与 PHP 循环配合使用。 您知道吗... 这些指令中有一个方便的 $loop 变量,它指示当前循环迭代?在本文中,我们将探索 $loop 和 loop 指令。😎 使用$loop比foreach更深入 该for…

上海科技博物馆超薄OLED柔性壁纸屏应用方案

产品:2组55寸OLED柔性屏2x1 特点:嵌入墙体,与空间装饰融入一体 用途:播放文物展示 一、项目背景 上海科技博物馆作为展示科技与文化的交汇点,一直致力于为观众提供沉浸式的参观体验。为了提升文物展示的现代化和科技感…

芯片验证分享系列总结及PPT分享

大家好,我是谷公子。花了将近两个月时间,《芯片验证分享》这一系列视频分享已经更新完了,内容涵盖了名词解释、芯片验证原则、激励开发、代码审查以及芯片调试。这一系列视频主要侧重于芯片验证理论的分享,希望可以帮助大家构建芯…

wvp-GB28181-pro 源码分析-点播流程(三)

文章目录 一 、28181-2016标准文档中的点播流程二 、点播流程源码分析2.1 页面发起点播请求2.2 与ZLM协商SSRC信息2.3 订阅zlmediakit的hook消息及发送invite信令2.4 处理invite信令响应并应答2.5 收到ZLM的推流通知2.6 播放成功2.7 停止点播流程2024年6月20日下载的wvp-GB2818…

程序员·职场效能必修宝典㊿:正视自己的职业倦怠

> 【易编橙终身成长社群,相遇已是上上签!】- 点击跳转~ < 作者:哈哥撩编程 (视频号同名) 图书作者:程序员职场效能宝典 博客专家:全国博客之星第四名 超级个体:COC上海社区主理人 特约讲师:谷歌亚马逊分享嘉宾

VBA语言専攻T3学员领取资料通知

各位学员∶本周MF系列VBA技术资料增加631-635讲&#xff0c;T3学员看到通知后请免费领取,领取时间6月21日晚上19:00-6月22日晚上20:00。本次增加内容&#xff1a; MF631:提取某列数据的唯一值 MF632:自动调整文本并旋转到90度 MF633:仅复制格式 MF634:Mod运算判断奇数偶数 …

又发现一款独立清理神器,界面清爽,功能强大,没有广告!

360清理Pro独立提取版是360公司推出的一款清理软件&#xff0c;主要用于清理系统垃圾和优化系统性能&#xff0c;涵盖了四大类型的清理场景&#xff0c;分别为&#xff1a;微信、QQ的垃圾扫描及清理&#xff0c;系统盘中的大文件、重复文件扫描及清理以及系统软件使用痕迹的清理…

ntpd和chronyd时间服务器配置样例及详解

本文为ntpd和chronyd时间服务器配置样例及详解&#xff0c;相关配置用于openEuler 22.03 (LTS-SP1)服务器用ntpd同步GPS时间服务器的案例 一、chronyd配置 [rootlocalhost ~]# egrep -v "^#|^$" /etc/chrony.conf server 192.168.188.74 iburst driftfile /var/lib/…

毕业答辩制作PPT【攻略】

毕业答辩制作PPT【攻略】 前言版权毕业答辩制作PPT【攻略】一、WPS AI 15天免费会员二、AI文档生成PPT三、修改完善PPT 最后 前言 2024-06-14 23:43:05 以下内容源自《【攻略】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN…

fast lio 运行mid360采集的数据,并保存每一帧的点云PCD和位姿

首先我们看到在map_incremental中存在一个保存每一帧PCD文件的代码&#xff0c;因此想利用改代码。 如何修改呢&#xff1f; 一. 改每一帧无畸变点云的PCD的保存代码 /**************** save map ****************//* 1. make sure you have enough memories/* 2. noted that…

数字化物资管理系统的未来:RFID技术的创新应用

在信息化和智能化不断发展的背景下&#xff0c;物资管理系统的数字化转型已成为各行各业关注的焦点。RFID技术作为一种先进的物联网技术&#xff0c;通过全面数字化实现物资信息的实时追踪和高效管理&#xff0c;为企业的物资管理提供了强有力的支持。 首先&#xff0c;RFID技…

linux中DNS域名解析服务(后续补充)

分离解析简介&#xff1a; 分离解析的域名服务器实际也是主域名服务器&#xff0c;这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网和外网的不同网段地址的客户机请求解析同一域名时&#xff0c;为其提供不同的解析结果。 实验要求&#xff1a;防火墙要么关…

国内算力真的紧缺么?

苹果WWDC证实了一点&#xff1a;AI推理算力将长期处于“云端为主”的状态&#xff0c;这个“长期”至少是三到五年。对&#xff0c;苹果和OpenAI搞了一场大合作&#xff0c;打算把下一代iOS系统和ChatGPT混在一起。 这意味着未来三到五年&#xff0c;AI的推理大部分还得靠云端…

如何基于项目人力和管线方案选择FGUI和UGUI

1&#xff09;如何基于项目人力和管线方案选择FGUI和UGUI 2&#xff09;TMP字体出包丢失字体描边 3&#xff09;如何将一张贴图经过Shader处理后的结果输出给另外一个Shader使用 4&#xff09;为什么我的水这么干净&#xff0c;和UE教程里的有差别 这是第390篇UWA技术知识分享的…

Javase.认识异常

认识异常 【本章目标】1. 异常的概念与体系结构1.1 异常的概念1.2 异常的体系结构1.3 异常的分类 2. 异常的处理2.1 防御式编程2.2 异常的抛出2.3 异常的捕获2.3.2 try-catch捕获并处理2.3.3 finally2.4 异常的处理流程 3. 自定义异常类 【本章目标】 异常概念与体系结构异常的…