Zabbix 7.0 新增功能亮点(二)——history.push API方法

Zabbix7.0LTS一经发布便吸引了众多运维小伙伴的关注,乐维社区forum.lwops.cn也伴随着不少小伙伴的热议与探讨,话不多说,抓紧上车。
前面我们介绍了zabbix 7.0 新增功能亮点(一)——T参数,本篇将向大家介绍zabbix 7.0 新增的另一个功能亮点——history.push API方法。

一. history.push API方法内容说明

zabbix 7.0 中,增加了对history_push API方法的支持,用于通过Zabbix API将数据发送到Zabbix server
注: 需要配合监控项为Zabbix采集器(zabbix trap)类型指标才可接收推送数据
更新内容详情如下:
[ZBXNEXT-8541] Support of history.push API method - ZABBIX SUPPORT
官方使用说明如下:
history.push (zabbix.com)

二. 比对7.0以前版本指标数据接收方式

  1. 借助zabbix原生工具 zabbix_sender
    用法说明:
    1.1添加指标
    –创建主机对象或监控模板
    在这里插入图片描述
    –创建"Zabbix采集器(zabbix trap)"类型指标
    在这里插入图片描述
    1.2编写数据收集脚本,使用zabbix_sender命令工具命令推送
    –具体脚本可根据实际生产环境需求调整,以下脚本仅用作测试示例
    •ZABBIX_SERVER_IP填写ZABBIX SERVER 服务器IP,用于推送数据到目标server
    •HOST_HOST填写步骤1中创建的主机名,zabbix_trap类型指标以主机名作为接收对象唯一标识
    •key_name填写步骤1创建的指标键值,zabbix_trap类型指标以指标键值作为接收指标唯一标识
    •type 用于实例脚本中,区分字符/数字的数据类型指标时时分别推送的取值内容
#!/usr/bin/bash
ZABBIX_SERVER_IP=192.168.136.129
HOST_HOST=${1}
key_name=${2}
type=${3}
for i in {1..20}
doif [ ${type} = "num" ];thenzabbix_sender -z ${ZABBIX_SERVER_IP} -s ${HOST_HOST} -k ${key_name} -o $i -velif [ ${type} = "text" ];thenzabbix_sender -z ${ZABBIX_SERVER_IP} -s ${HOST_HOST} -k ${key_name} -o "本次采集值:$i" -vfisleep 1
done

1.3执行脚本,平台查看取值效果
–执行脚本查看脚本执行过程
#往数值类型监控项发送数值取值
bash zbx_send.sh zabbix_trap_receive_host trap_item_1 num
#往文本类型监控项发送文本取值
bash zbx_send.sh zabbix_trap_receive_host trap_item_2 text
在这里插入图片描述
–查看监控平台,确认平台接收指标成功
在这里插入图片描述
在这里插入图片描述
2. 7.0 history_push 方式
用法说明:
2.1添加指标
–参考重复2.1章节第一步骤即可,此处不重复
2.2获取监控项itemid
方法一:页面查看
从最新数据中指标详情按钮,可查看左下角出现的超链中包含监控项的
在这里插入图片描述
方法二:使用API接口读取
参考官方手册item.get (zabbix.com),通过指定主机ID及键值名称,可获取item详情,返回数据中包含itemid
在这里插入图片描述
2.3使用api接口进行数据推送

#!/bin/env python3
#-*- coding: utf-8 -*-

‘’’
使用方法:
1).修改变量中API接口IP地址,用户名,密码
2).指定需要需要上报数据的itemid及value值
3).执行脚本即可
然后执行 python3 zbx_v7.0_history_push.py

'''
import requests
import json
import datetimeheaders = {'Content-Type': 'application/json-rpc'}def token_get():# global token# data = {"jsonrpc":"2.0","method":"user.login","params":{"user":username,"password":password},"id":1}data = {"jsonrpc":"2.0","method":"user.login","params":{"username":username,"password":password},"id":1}# data = json.dumps(data)response = requests.post(zabbix_api, headers=headers, json=data)a=response.json()# print(a)token=a.get('result')return tokendef history_push():headers['Authorization']='Bearer %s'%tokendata = {"jsonrpc":"2.0","method":"history.push","params":[{"itemid": itemid,"value": value}],"id": 1}# data = json.dumps(data).encode('utf-8')response = requests.post(zabbix_api, headers=headers, json=data)print(json.dumps(data))a=response.json()print(a)response_data=a.get('result').get('data')return response_datadef item_get(host_host,key_name):# global itemidheaders['Authorization']='Bearer %s'%tokendata = {"jsonrpc":"2.0","method":"item.get","params":{"output":["itemid","key_"],"host":host_host,"search":{"key_":key_name}},"id":1} data = json.dumps(data)response = requests.post(zabbix_api, headers=headers, data=data)a=response.json()# 打印所有itemiditemid=a.get('result')return itemiddef logout():headers['Authorization']='Bearer %s'%tokendata = {"jsonrpc":"2.0","method":"user.logout","params":[],"id":1}data = json.dumps(data)response = requests.post(zabbix_api, headers=headers, data=data)a=response.json()print("退出状态",a.get('result'))if __name__ == '__main__':zabbix_api = 'http://192.168.136.129/zabbix/api_jsonrpc.php'username = 'Admin'password = 'zabbix'key_name = 'trap_item_2'host_host = 'zabbix_trap_receive_host'value = 'python推送数据测试,当前时间:%s'%datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')token = token_get()  # 认证并获取token# print("token:%s"%token)  # 查看请求返回token# itemid = item_get(host_host,key_name)[0].get('itemid')  # 获取itemiditemid = 46524  # 已知itemid,直接定义,跳过item_get()函数# print(itemid)  # 打印获取的Itemidresponse_data = history_push()  # 数据推送print("推送状态 %s"%response_data)  # 打印推送状态logout()  # 退出及关闭本次认证

2.4定义参数,测试脚本推送
–执行脚本,查看执行过程
在这里插入图片描述
–zabbix平台查看接收数据在这里插入图片描述
3. 总结
7.0新版中,支持了对Zabbix采集器(zabbix trap)类型指标使用api接口方式上报数据,大大提高了采集逻辑的可扩展性,相较于支持的zabbix_sender命令行方式而言,监控程序可以避免反复调用zabbix_sender命令,减少系统的缓存及打开文件数等关键性能;其次也令采集程序脚本更一体化,脚本中直接可以完成数据收集及上报操作,不需要额外依赖于zabbix_sender命令,避免系统中因缺失zabbix_sender命令导致的无法上报数据成功。

以上就是history.push API方法的全部介绍。大家好,我是乐乐,专注IT运维技术研究与分享,如果小伙伴们对以上内容有不理解的地方,或有更多zabbix技术问题,欢迎到乐维社区留言(forum.lwops.cn)~

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

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

相关文章

Three.js的渲染器:WebGLRenderer、CSS3DRenderer、SVGRenderer

我们都晓得渲染器是负责将场景中的3D对象转换为2D图像,然后显示在屏幕上,three.js内置了多种渲染器,来应对不同的和需求,贝格前端工场老司机,简要和大家分享下。 一、渲染器的定义和作用 在Three.js中,渲…

2024热门骨传导耳机购买推荐!精选五款好用不贵!

对于很多喜欢运动健身的小伙伴,在现在市面上这么多种类耳机的选择上,对于我来说的话还是很推荐大家去选择骨传导运动耳机的,相较于普通的入耳式蓝牙耳机,骨传导耳机是通过振动来传输声音的,而入耳式耳机则是通过空气传…

多款可观测产品全面升级丨阿里云云原生 5 月产品月报

云原生月度动态 云原生是企业数字创新的最短路径。 《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。 趋势热点 🥇 阿里云云原生产品负责人李国强:推进可…

NestJS学习笔记

一、安装NestJS CLI工具 环境检查 //查看node版本 node -v//查看npm版本 npm -v 安装nest/cli 使用npm全局安装nestjs/cli npm i -g nestjs/cli 查看nest版本 nest -v 结果如图: 创建nest项目 //命令行创建nest项目 nest new 【项目名】 VScode扩展下载 1、…

deepin V23 RC2 正式发布!

deepin 是一款基于 Linux 的开源桌面操作系统,今天 deepin V23 RC2 正式发布,欢迎体验与反馈!感谢每一位 deepiner 提供想法与建议,让我们一起为打造美观易用、安全可靠的开源操作系统而努力! 【功能新增与优化】 新增…

VBA基础知识

运算符 &#xff1a; 不等于 : <> 文本连接符号 & 方法&#xff1a;Offset&#xff08;行&#xff0c;列&#xff09; &&#xff1a;这是字符串连接运算符&#xff0c;用于将两个字符串或表达式连接成一个字符串。 VBA&#xff1a;Debug.Print&#xff08…

WordPress、Typecho 站点如何让 CloudFlare 缓存加速

众所周知 WordPress、Typecho 都是著名动态博客站点(一个最简单的判断依据就是都要依赖结合数据库),这类站点在 CDN 缓存上都有一个致命的缓存弊端就是动静态请求的区分,理论上要让 CDN 绕过所有的动态请求,缓存所有的静态请求,否则就会造成前端登录和非登录状态的混乱,…

flask基础3-蓝图-cookie-钩函数-flask上下文-异常处理

目录 一&#xff1a;蓝图 1.蓝图介绍 2.使用步骤 3.蓝图中的静态资源和模板 二.cookie和session 1.cookie 2.flask中操作cookie 3.session 4.session操作步骤 三.请求钩子 四.flask上下文 1.介绍 2.请求上下文&#xff1a; 3.应用上下文 3.g对象 五&#xff1a;…

计算机视觉基础课程知识点总结

图像滤波 相关: 核与图像同向应用&#xff0c;不翻转。 卷积: 核在应用前翻转&#xff0c;广泛用于信号处理和深度学习&#xff08;现在常说的二维卷积就是相关&#xff09;。 内积: 向量化的点积操作&#xff0c;是相关和卷积的一部分。 模板匹配&#xff1a;通过在图像中…

docker一些常用命令以及镜像构建完后部署到K8s上

docker一些常用命令以及镜像构建完后部署到K8s上 1.创建文件夹2.删除文件3.复制现有文件内容到新建文件4.打开某个文件5.查看文件列表6.解压文件&#xff08;tar格式&#xff09;7.解压镜像8.查看镜像9.删除镜像10.查看容器11.删除容器12.停止运行容器13.构建镜像14.启动容器15…

【GreenHills】如何使用GHS对于不同的文件进行文档内容对比

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 利用GHS对于不同的文件进行对比。 2、 问题场景 在项目开发过程中&#xff0c;会对于工程进行版本管理&#xff0c;对于没有项目管理工具的客户&#xff0c;想要对于当前版本的源文件和上一版或其他版本的源文件进行…

超燃混剪热门视频素材去哪里找?超燃混剪热门素材网站分享

各位小伙伴&#xff0c;今天我们来聊聊怎么找到那些超燃的混剪视频素材。毕竟&#xff0c;谁不想制作出有趣的视频发布到朋友圈、抖音呢&#xff1f;那么问题来了&#xff0c;去哪儿找那些劲爆的素材呢&#xff1f;别急&#xff0c;今天我就给大家推荐几个超级好用的视频素材平…

Python内存管理与垃圾回收机制

目录 一、引言 二、Python内存管理概述 三、引用计数机制 四、垃圾回收机制 标记-清除&#xff08;Mark-and-Sweep&#xff09; 分代收集&#xff08;Generational Collection&#xff09; 五、内存泄漏与优化 六、总结 一、引言 Python作为一门高级编程语言&#xff…

Coze+Discord:打造你的免费AI助手(教您如何免费使用GPT-4o/Gemini等最新最强的大模型/Discord如何正确连接Coze)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 准备Discord📝 准备Coze🔌 连接💡 测试效果⚓️ 相关链接 ⚓️📖 介绍 📖 你是否想免费使用GPT-4o/Gemini等最新最强的大模型,但又不想花费高昂的费用?本文将教你如何通过Coze搭建Bot,并将其转发…

VMware清理拖拽缓存

磁盘空间越用越小&#xff0c;如何快速解决磁盘空间的问题&#xff0c;甩掉烦恼 安装VM tools之后可以通过拖拽的方式把文件拉入虚拟机之中。但每一次拖拽&#xff0c;其实都是现在cache文件夹里面生成一个同样的文件&#xff0c;并使用cp拷贝的方式将其拷贝到拖拽放置的目录中…

http协议,tomcat的作用

HTTP 概念:Hyper Text Transfer Protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则。 特点: 1.基于TCP协议:面向连接&#xff0c;安全 2. 基于请求-响应模型的:一次请求对应一次响应 3HTTP协议是无状态的协议:对于事务处理没有记忆能…

ai 人工智能免费网站免费生成图片生成ppt

豆包 Kimi.ai - 帮你看更大的世界 生成ppt 讯飞智文 - AI在线生成PPT、Word 大家如有其它免费的欢迎推荐!!!

【研发日记】Matlab/Simulink软件优化(三)——利用NaNFlag为数据处理算法降阶

文章目录 前言 背景介绍 初始算法 优化算法 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩》 见《【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法》 背景介绍 在一个嵌入式软件开发项目中&#xff0c;需要开…

CCRC-DSA 数据安全评估师

在信息技术日新月异的今天&#xff0c;数据的爆炸性增长已将其塑造为现代社会的宝贵财富。 然而&#xff0c;数据的巨大价值背后潜藏着不容忽视的风险&#xff0c;诸如数据泄露、恶意侵害和违规操作等问题不断引发公众和媒体的高度关注。 在这样的背景下&#xff0c;进行严谨…

重生之 SpringBoot3 入门保姆级学习(18、事件驱动开发解耦合)

重生之 SpringBoot3 入门保姆级学习&#xff08;18、事件驱动开发解耦合&#xff09; 5、SpringBoot3 核心5.1 原始开发5.2 事件驱动开发 5、SpringBoot3 核心 5.1 原始开发 LoginController package com.zhong.bootcenter.controller;import com.zhong.bootcenter.service.A…