当前位置: 首页 > news >正文

Python获取zabbix问题触发器

背景:阿里云的ECS服务器因为阿里云升级插件,导致安全防护程序重启,产生不同的端口。导致低自动发现注册的端口 大量报警。

解决:杀掉关于因为非业务 变更的端口检测的触发器。

相关文档:

Zabbix监控之主机端口监控自动发现

zabbix监控端口原理

一个个去添加listen监控tcp的话不现实啊,还是也搞自动发现吧

分割下来也是2步啊

第一步脚本丢zabbix-agent下产生自定义键值

第二步不就是zabbix-server添加自动发现绑定这个键值咯

 

什么是安骑士Agent插件?

Agent 插件_云安全中心(安骑士)-阿里云帮助中心

解决思路

1、根据zabbix的api 获取的token

2、根据token获取到问题主机的触发器id

3、根据触发器id 删除相关的触发器,

4、消停大面积的告警

zabbix相关的API文档 可以查询官方文档或者博客

https://www.cnblogs.com/rxysg/p/15700912.html 

Python调用Zabbix API接口批量修改(禁用/启用)触发器trigger_啥是比亚的技术博客_51CTO博客

1、获取zabbix的token 

# -*- coding: utf-8 -*-
# @Time    : 2023/2/17 16:45
# @Author  : 南宫乘风
# @File    : zabbix_trigger.py
# @Software: PyCharm
import json
import os
import requestsurl = "http://ip/zabbix/api_jsonrpc.php"  # 此处域名修改为相应的地址
headers = {'Content-Type': 'application/json-rpc'
}tokens = '97553b7342457602a0a6452f0058c0ed'def token_get():  # 根据账号密码获取tokendata = {"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin",  # zabbix管理员用户名"password": "密码"  # 账户密码},"auth": None,"id": 1}json_data = json.dumps(data)req = requests.post(url, data=json_data, headers=headers)js_req = req.json()print(js_req['result'])return js_req['result']

2、获取zabbix有问题主机触发器的id


def hosts_get(token):  # 获取有问题主机的触发器id# data = {#     "jsonrpc": "2.0",#     "method": "host.get",#     "params": {#         "output": ["hostid", "name"],#         "filter": {#             # 筛选条件#             "value": 1,  # value值为1表示有问题#             "status": 0  # status为0表示已启用的trigger#         },#     },##     "auth": token,#     "id": 1# }data = {"jsonrpc": "2.0","method": "trigger.get","params": {# output表示输出结果包含参数有哪些"output": ["triggerid","description","status","value","priority","lastchange","recovery_mode","hosts","state",],"selectHosts": "hosts",  # 需包含主机ID信息,以便于根据主机ID查询主机信息"selectItems": "items","filter": {# 筛选条件"value": 1,  # value值为1表示有问题"status": 0  # status为0表示已启用的trigger},},"auth": token,  # 这里的auth就是登录后获取的'id': '1'  # 这个id可以随意}json_data = json.dumps(data)req = requests.post(url, data=json_data, headers=headers)js_req = req.json()print(len(js_req['result']), js_req['result'])id_list = []
#判断 有问题的地自动发现的端口for item in js_req['result']:if 'PROCESS' in item['description']:id_list.append(item['triggerid'])print(len(id_list), id_list)return js_req['result']

3、删除触发器的ID

def del_trigger(id):id_one = []ids = id_one.append(str(id))values = {"jsonrpc": "2.0","method": "trigger.delete","params": id_one,  # 触发器id"auth": tokens,"id": 1}json_data = json.dumps(values)req = requests.post(url, data=json_data, headers=headers)js_req = req.json()print(js_req)# return js_req['result']

完正代码

# -*- coding: utf-8 -*-
# @Time    : 2023/2/17 16:45
# @Author  : 南宫乘风
# @Email   : 1794748404@qq.com
# @File    : zabbix_trigger.py
# @Software: PyCharm
import json
import os
import requestsurl = "http://ip/zabbix/api_jsonrpc.php"  # 此处域名修改为相应的地址
headers = {'Content-Type': 'application/json-rpc'
}tokens = '97553b7342457602a0a6452f0058c0ed'def token_get():  # 根据账号密码获取tokendata = {"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin",  # zabbix管理员用户名"password": "密码"  # 账户密码},"auth": None,"id": 1}json_data = json.dumps(data)req = requests.post(url, data=json_data, headers=headers)js_req = req.json()print(js_req['result'])return js_req['result']def hosts_get(token):  # 获取所有主机信息# data = {#     "jsonrpc": "2.0",#     "method": "host.get",#     "params": {#         "output": ["hostid", "name"],#         "filter": {#             # 筛选条件#             "value": 1,  # value值为1表示有问题#             "status": 0  # status为0表示已启用的trigger#         },#     },##     "auth": token,#     "id": 1# }data = {"jsonrpc": "2.0","method": "trigger.get","params": {# output表示输出结果包含参数有哪些"output": ["triggerid","description","status","value","priority","lastchange","recovery_mode","hosts","state",],"selectHosts": "hosts",  # 需包含主机ID信息,以便于根据主机ID查询主机信息"selectItems": "items","filter": {# 筛选条件"value": 1,  # value值为1表示有问题"status": 0  # status为0表示已启用的trigger},},"auth": token,  # 这里的auth就是登录后获取的'id': '1'  # 这个id可以随意}json_data = json.dumps(data)req = requests.post(url, data=json_data, headers=headers)js_req = req.json()print(len(js_req['result']), js_req['result'])id_list = []for item in js_req['result']:if 'PROCESS' in item['description']:id_list.append(item['triggerid'])print(len(id_list), id_list)return js_req['result']#这边我做了个调试,如果想直接一次运行成功,建议自己改动 启动是的代码id_lists = ['21284', '21244', '21249', '21275', '21264', '21278', '21262', '21263', '21266', '21270', '21272', '21276','21277', '21279', '21267', '21269', '21254', '21282', '21287', '21268', '21273', '21274', '21285', '21289','21283', '21286', '21290', '21251', '21250', '21243']def del_trigger(id):id_one = []ids = id_one.append(str(id))values = {"jsonrpc": "2.0","method": "trigger.delete","params": id_one,  # 触发器id"auth": tokens,"id": 1}json_data = json.dumps(values)req = requests.post(url, data=json_data, headers=headers)js_req = req.json()print(js_req)# return js_req['result']for i in id_lists:del_trigger(i)

相关文章:

Python获取zabbix问题触发器

背景:阿里云的ECS服务器因为阿里云升级插件,导致安全防护程序重启,产生不同的端口。导致低自动发现注册的端口 大量报警。 解决:杀掉关于因为非业务 变更的端口检测的触发器。 相关文档: Zabbix监控之主机端口监控自…...

原型链污染

目录 前置知识 原型对象 prototype和__proto__的区别 原型链概念 原型链的继承 原型 链污染 原型链污染原理 javascript中可能会存在原型链污染的危险函数 原型链污染的实际应用 JavaScript中可以触发弹窗的函数 前置知识 原型对象 在JavaScript中,每个函…...

ClickHouse详解

一、概念ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。OLAP场景的关键特征绝大多数是读请求数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新。已添加到数据库的数据不能修改。对于读取,从数据库中提取相当多的…...

02_Docker 安装

02_Docker 安装 文章目录02_Docker 安装2.1 安装 Docker 的先决条件2.2 在 Ubuntu 和 Debain 中安装 Docker2.2.1 检查前提条件1. 内核2.检查 Device Manager2.2 安装 DockerDocker 支持非常多的Linux平台,包括Ubuntu和RHEL,除此之外,Docker还…...

K8S集群将Docker切换到Containerd

文章目录1. 开启节点维护1.1 将节点设置成不可调度1.2 驱逐节点上的 Pod1.3 停止相关服务2. 升级到 containerd2.1 安装 containerd2.2 调整 containerd 配置2.3 修改 kubelet 启动配置参数3. 重启节点服务4. 验证升级后的节点5. 容器管理工具5.1 容器管理命令行工具对比5.2 cr…...

Kubernetes03:kubernetes 功能和架构

2.1 概述 Kubernetes 是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务。通过 Kubernetes 能够进行应用的自动化部署和扩缩容。在 Kubernetes 中,会将组成应用的容 器组合成一个逻辑单元以更易管理和发现。Kubernetes 积累了作为 Google 生产环…...

LabVIEW中CPU和内存使用情况在NI分布式系统管理器中不可见

LabVIEW中CPU和内存使用情况在NI分布式系统管理器中不可见想使用NI分布式系统管理器监测网络连接实时控制器的CPU和内存使用情况。从左侧窗口的树中选择了感兴趣的实时目标,然后通过选择视图自动视图来确保启用自动查看。希望看到CPU/内存选项卡,但它有显…...

buu [NPUCTF2020]Classical Cipher 1

题目描述: 题目分析: 首先输入密码 {gsv_pvb_rh_zgyzhs} 后,得到:可以得知密码是错误的,再看看密码 {gsv_pvb_rh_zgyzhs} ,排列无序,那么尝试用凯撒与栅栏解密,发现还是解不出&…...

分享96个HTML体育竞技模板,总有一款适合您

分享96个HTML体育竞技模板,总有一款适合您 96个HTML体育竞技模板下载链接:https://pan.baidu.com/s/1k2vJUlbd2Boduuqqa0EWMA?pwdj8ji 提取码:j8ji Python采集代码下载链接:采集代码.zip - 蓝奏云 北京奥运火炬PSD模板 奥运…...

Python pandas「原有或者新建」Excel中「追加新或者新建」sheet

1.pandas原有Excel中追加新sheet 使用Pandas库,我们可以轻松将数据追加到现有的Excel工作簿中的新工作表中。以下是追加新工作表的简单步骤: 读取现有的Excel文件 使用Pandas库中的read_excel()函数读取现有的Excel文件。指定Excel文件的路径和文件名&a…...

程序员必备的软技能- CPU“没有灵魂的躯体”

引言 先引用一段比较有意思的论述: 现实中每个人是由两部分构成,灵魂和躯体,灵魂依附于躯体游走于世间,现实中我们面对的每个人其实面对的是其灵魂而非肉体,肉体不过是表象而已。 灵魂本性乃一恶物,寄生于…...

基于微信小程序的青少年生理健康知识小助手

基于微信小程序的青少年生理健康知识小助手 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目…...

【scl】博图程序的导入和导出

导入或者导出博图文件的方法(也叫移植文件) 目录 前言 ​编辑 ​编辑 前言 本篇文章主要写一下关于博图文件的导入和导出,具体要怎么样才能将写好的程序或者块移植到其他地方,下面我们一起来看! 一、程序块的导入和导…...

【C语言】指针进阶

目录 一、字符指针 二、指针数组 三、数组指针 四、数组指针的使用 五、函数指针数组 六、指向函数指针数组的指针 七、回调函数 我们知道了指针的概念: 1. 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。 2. 指针的大小是…...

18:CTK 总结篇(FAQ)

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 经过了几个月的艰苦奋战,终于到了最后一节啦,是不是和我一样,心里有点儿小激动! 回顾之前的章节,从初级 -> 进阶 -> 高级,我们针对 CTK 做了详细的分类讲解。希望通过这些知识,大家能对模块化…...

概论_第7章_参数估计_真题__求置信区间

真题 2014.10 第30题 测量某物体的质量9次, 测得平均值 x‾15.4\overline x 15.4x15.4 g, 已知测量数据 XXX ~ N(μ,0.09)N(\mu, 0.09)N(μ,0.09) (1) 求该物体质量的置信度为0.95 的置信区间; (2)为了使置信度为0.95 的置信区间…...

Go 1.21的2个语言变化

语言行为变化 Go 1.20已经于今年2月份发布,Go 1.21也不远了,我们来先堵为快,看看Go 1.21版本里几个有趣的变化。 文末附送2道面试题。 panic(nil) func main() {defer func() {print(recover() nil)}()panic(nil) }大家先想一想这段代码…...

Mysql(一)架构、存储引擎、数据结构

目录一、mysql架构二、存储引擎三、数据类型一、mysql架构 与其它数据库相比,MySQL的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离,可…...

php 项目网站怎么实现负载均衡?

负载均衡是一种通过分担请求以保证系统可用性和稳定性的技术。在 PHP 项目网站中,可以使用以下几种方法实现负载均衡:软件负载均衡:使用软件如 HAProxy、Nginx 等实现负载均衡,将请求转发到多个后端服务器上。硬件负载均衡&#x…...

win11+pytorch1.7.0+python3.8(也可以是python3.7)+cuda11.0

win11pytorch1.7.0python3.8cuda11.0写在最前面一. 软件配备二. 创建虚拟环境2.1 创建环境名称,并选择‘y’2.2.进入虚拟环境三. 安装pytorch四. 安装虚拟环境下的notebook4.1 安装ipykernel,并选择‘y’,直至安装完成4.2 将环境名注册到note…...

终极网盘下载加速方案:3分钟解锁八大平台极速下载

终极网盘下载加速方案:3分钟解锁八大平台极速下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...

什么是 AI Agent?它和直接调用大模型 API 做一次问答有什么本质区别?

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:AI大模型原理和应用面试题 文章目录一、🍀AI Agent概念、AI Agent和直接…...

Dramatron:AI驱动的剧本创作革命

Dramatron:AI驱动的剧本创作革命 【免费下载链接】dramatron Dramatron uses large language models to generate coherent scripts and screenplays. 项目地址: https://gitcode.com/gh_mirrors/dr/dramatron 价值定位:重新定义创意写作流程 在…...

RT-Thread下STM32与BH1750光照传感器的快速驱动实现

1. RT-Thread与BH1750的完美组合 第一次接触BH1750光照传感器时,我还在用裸机开发。当时为了调试IIC通讯,整整花了两天时间排查时序问题。后来接触到RT-Thread,发现它的软件包生态简直是为传感器开发量身定制的。就拿BH1750来说,官…...

3个创新特性让开发者解决Linux存储管理难题

3个创新特性让开发者解决Linux存储管理难题 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 一、诊断存储瓶颈 识别隐形存储占用 当系统提示磁盘空…...

Lingbot 模型与 Dify 集成:构建无需编码的深度图生成 AI 应用

Lingbot 模型与 Dify 集成:构建无需编码的深度图生成 AI 应用 1. 引言:当深度感知遇见低代码 想象一下,你是一个电商平台的运营,手头有成千上万张商品图片需要处理。你想为这些图片添加一些酷炫的 3D 效果或者背景虚化&#xff…...

微信小程序支付V3接口在ThinkPHP6中的封装实践:如何设计一个可复用的支付服务类?

微信小程序支付V3接口在ThinkPHP6中的高复用封装实践 微信支付作为小程序生态中最核心的商业化能力,其技术实现的质量直接影响着用户体验和系统稳定性。本文将分享如何在ThinkPHP6框架下,从零构建一个符合SOLID原则的支付服务类,实现一次封装…...

PyTorch 2.8镜像代码实例:使用预装torchaudio+FFmpeg实现TTS+视频合成Pipeline

PyTorch 2.8镜像代码实例:使用预装torchaudioFFmpeg实现TTS视频合成Pipeline 1. 环境准备与快速验证 在开始之前,我们先确认环境是否正常工作。这个PyTorch 2.8镜像已经预装了所有必要的组件,包括torchaudio和FFmpeg。 1.1 验证GPU可用性 …...

2024年技术趋势:AI、云计算与区块链的颠覆性变革

技术趋势预测文章大纲引言简要介绍技术趋势预测的重要性,提及CSDN作为技术社区的影响力,说明本文将基于当前技术发展分析未来趋势。人工智能与机器学习讨论生成式AI(如GPT-4、Stable Diffusion)的演进方向,包括多模态模…...

避开这5个坑!用MediaRecorder+Vue3实现高兼容性语音输入

Vue3MediaRecorder实战:5个关键技巧打造高兼容语音输入方案 在移动优先的时代,语音输入已成为提升用户体验的重要交互方式。但当你兴奋地在Vue3项目中集成MediaRecorder API时,可能会遇到iOS设备上的静默失败、Android机型上的格式兼容性问题…...