18、Zabbix与外部服务集成及API功能扩展全攻略

Zabbix与外部服务集成及API功能扩展全攻略

1. Zabbix与外部服务集成

Zabbix可以与多种外部服务集成,方便用户及时获取监控问题的通知。下面详细介绍与Microsoft Teams、Telegram和Atlassian Opsgenie的集成方法。

1.1 集成Microsoft Teams
  • 操作步骤 :在Zabbix中配置好相关条件,当问题符合条件时,会将问题发送到Microsoft Teams连接器。点击蓝色的“Add”按钮完成配置后,即可在MS Teams频道中查看新问题。
  • 工作原理 :Zabbix服务器创建问题,若问题匹配配置条件,就会将其发送到Microsoft Teams连接器,该连接器直接配置在频道上,会在频道中发布通知。例如,可配置Zabbix仅将严重程度为警告或更高的问题发送到Microsoft Teams。
1.2 集成Telegram
  • 准备工作 :确保Zabbix服务器就绪,安装Telegram应用并设置好账户。
  • 操作步骤 :
    1. 在Telegram中创建新群组,添加团队成员,设置群组名称和图片,点击“Create”按钮。
    2. 通过搜索“botfather”并点击该联系人,与@BotFather用户交互。
    3. 在聊天中输入“/start”命令获取可用命令列表。
    4. 输入“/newbot”创建新机器人,设置机器人名称和唯一用户名,保存HTTP API密钥。
    5. 将机器人添加到Zabbix Notifications群组。
    6. 导航到Zabbix前端,进入“Administration | Media types”,点击“Telegram”媒体类型,将之前生成的HTTP API密钥添加到“Token”字段,点击“Update”按钮。
    7. 在Telegram群组中添加另一个用户,返回Zabbix前端。
    8. 若未进行过相关配置,在Zabbix中创建新用户组,设置权限,点击“Add”按钮。
    9. 创建新用户,获取Telegram群组ID,添加媒体和用户角色,将群组ID添加到“Send to”字段,点击“Add”按钮。
    10. 若未进行过相关配置,在Zabbix中创建新动作,设置名称和操作,点击“Add”按钮。
  • 工作原理 :Zabbix通过Webhook将符合配置条件的问题发送到Telegram机器人,机器人接收问题并在群组中发布通知。例如,可配置仅将严重程度为警告或更高的问题发送到Telegram机器人。
graph LR
    A[Zabbix服务器] -->|符合条件的问题| B[Telegram机器人]
    B -->|发布通知| C[Telegram群组]
1.3 集成Atlassian Opsgenie
  • 准备工作 :确保Zabbix服务器就绪,拥有Atlassian Opsgenie账户并准备好使用。
  • 操作步骤 :
    1. 登录Atlassian Opsgenie,进入“Settings”,点击“Notifications”,添加邮箱和电话号码。
    2. 导航到“Teams”,点击“Add team”按钮,添加团队信息,点击“Add”按钮。
    3. 进入新团队页面,点击“Integrations”,点击“Add integration”按钮,搜索“Zabbix”并点击“Add”,复制API Key,点击“Save integration”按钮。
    4. 在Zabbix服务器CLI中执行以下代码:
      • 对于RHEL-based系统:
wget https://github.com/opsgenie/oec-scripts/releases/download/Zabbix-1.1.6_oec-1.1.3/opsgenie-zabbix-1.1.6.x86_64.rpm
    - 对于Ubuntu系统:
wget https://github.com/opsgenie/oec-scripts/releases/download/Zabbix-1.1.6_oec-1.1.3/opsgenie-zabbix_1.1.6_amd64.deb
5. 安装下载的Zabbix Opsgenie插件:
    - 对于RHEL-based系统:
rpm -i opsgenie-zabbix-1.1.6.x86_64.rpm
    - 对于Ubuntu系统:
dpkg -i opsgenie-zabbix_1.1.6_amd64.deb
6. 若未进行过相关配置,在Zabbix中创建新用户组,设置权限,点击“Add”按钮。
7. 导航到“Administration | Actions”,点击“Create action”按钮,设置名称和条件。
8. 点击“Operations”标签,添加操作,将“/home/opsgenie/oec/opsgenie-zabbix/actionCommand.txt”文件内容粘贴到操作中,重复此步骤设置恢复操作和更新操作,点击“Add”按钮。
9. 编辑配置文件:
vim /home/opsgenie/oec/conf/config.json
10. 编辑“apiKey”、“command_url”、“user”和“password”行,若不在美国,需编辑“baseUrl”。
  • 工作原理 :Zabbix中的警报通过集成发送到Opsgenie,利用Opsgenie API捕获信息并按需回复,实现两个应用之间的双向通信。
2. Zabbix API功能扩展

Zabbix不仅可以与外部服务集成,还能通过API进行功能扩展。下面介绍设置和管理API令牌以及使用API扩展功能的方法。

2.1 设置和管理API令牌
  • 准备工作 :确保Zabbix设置运行正常,使用前端生成API令牌。
  • 操作步骤 :
    1. 以超级管理员用户身份登录Zabbix前端。
    2. 导航到“Administration | User groups”,点击“Create user group”按钮。
    3. 创建新用户组,将“Group name”字段填写为“API users”。
    4. 切换到“Permissions”标签,点击“Select”按钮,选择所有主机组,给予API用户组读写权限,点击“Add”按钮。
    5. 点击“Add”按钮添加新用户组。
    6. 导航到“Administration | Users”,点击“Create user”按钮。
    7. 创建新用户“API user”,切换到“Permissions”标签,添加超级管理员角色,点击“Add”按钮。
    8. 导航到“Administration | General | API tokens”,点击“Create API token”按钮,填写用户为“API”,名称为“API book key”,设置过期时间,点击“Add”按钮。
步骤 操作
1 登录Zabbix前端
2 创建用户组
3 设置用户组权限
4 创建用户
5 设置用户权限
6 创建API令牌
  • 注意事项 :可以通过限制API Users用户组的主机组访问来限制API访问权限,根据实际环境选择合适的方式。

通过以上集成和API功能扩展,用户可以充分发挥Zabbix的强大功能,实现更高效的监控和管理。

2.2 使用Zabbix API扩展功能

Zabbix API可用于多种功能扩展,以下将介绍几个具体的应用场景。

2.2.1 构建跳转主机

借助Zabbix API和Python,我们可以构建一个跳转主机。虽然这里没有详细的代码示例,但基本思路是通过Python脚本调用Zabbix API,实现对主机的访问和操作。以下是一个简单的Python代码框架,用于调用Zabbix API进行身份验证:

import requests
import json

# Zabbix API URL
url = "http://your-zabbix-server/zabbix/api_jsonrpc.php"
# Headers for the API request
headers = {'Content-Type': 'application/json-rpc'}
# Payload for authentication
payload = {
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "your-username",
        "password": "your-password"
    },
    "id": 1
}

# Send the request
response = requests.post(url, headers=headers, data=json.dumps(payload))
# Parse the response
result = response.json()
if 'result' in result:
    auth_token = result['result']
    print(f"Authenticated successfully. Auth token: {auth_token}")
else:
    print("Authentication failed.")

在这个代码中,我们首先定义了Zabbix API的URL和请求头,然后构建了一个用于身份验证的JSON有效负载。发送请求后,解析响应并获取身份验证令牌。

graph LR
    A[Python脚本] -->|调用API| B[Zabbix API]
    B -->|返回结果| A
2.2.2 创建维护周期

作为Zabbix用户,我们可以使用脚本创建维护周期。具体步骤如下:
1. 调用Zabbix API获取主机列表。
2. 选择需要设置维护周期的主机。
3. 构建维护周期的参数,如开始时间、结束时间等。
4. 调用Zabbix API创建维护周期。

以下是一个简化的Python代码示例:

# 假设已经获得了auth_token
payload = {
    "jsonrpc": "2.0",
    "method": "maintenance.create",
    "params": {
        "name": "My Maintenance Period",
        "active_since": 1630444800,  # 开始时间,时间戳
        "active_till": 1630531200,   # 结束时间,时间戳
        "hostids": ["12345"],        # 主机ID
        "timeperiods": [
            {
                "timeperiod_type": 0,
                "start_date": 1630444800,
                "period": 86400     # 持续时间,秒
            }
        ]
    },
    "auth": auth_token,
    "id": 2
}

response = requests.post(url, headers=headers, data=json.dumps(payload))
result = response.json()
if 'result' in result:
    print(f"Maintenance period created successfully. ID: {result['result']['maintenanceids'][0]}")
else:
    print("Failed to create maintenance period.")

在这个代码中,我们构建了一个用于创建维护周期的JSON有效负载,并调用Zabbix API发送请求。

步骤 操作
1 获取主机列表
2 选择主机
3 构建维护周期参数
4 调用API创建维护周期
2.2.3 从Zabbix地图启用和禁用主机

使用脚本可以实现从Zabbix地图启用和禁用主机,具体操作步骤如下:
1. 调用Zabbix API获取Zabbix地图信息。
2. 选择需要操作的主机。
3. 根据操作需求(启用或禁用)构建相应的API请求。
4. 调用Zabbix API执行操作。

以下是一个简单的Python代码示例,用于禁用主机:

# 假设已经获得了auth_token
payload = {
    "jsonrpc": "2.0",
    "method": "host.update",
    "params": {
        "hostid": "12345",  # 主机ID
        "status": 1         # 1表示禁用,0表示启用
    },
    "auth": auth_token,
    "id": 3
}

response = requests.post(url, headers=headers, data=json.dumps(payload))
result = response.json()
if 'result' in result:
    print(f"Host updated successfully. Host ID: {result['result']['hostids'][0]}")
else:
    print("Failed to update host status.")

在这个代码中,我们构建了一个用于更新主机状态的JSON有效负载,并调用Zabbix API发送请求。

graph LR
    A[Python脚本] -->|调用API| B[Zabbix API]
    B -->|获取地图信息| C[Zabbix地图]
    B -->|操作主机| D[主机]

通过以上介绍,我们可以看到Zabbix API的强大功能。无论是与外部服务集成,还是进行功能扩展,Zabbix都提供了丰富的接口和工具。用户可以根据自己的需求,灵活运用这些功能,实现更高效、更个性化的监控和管理。在实际应用中,我们还可以根据具体场景对代码进行优化和扩展,以满足不同的业务需求。同时,要注意对API的使用权限进行合理管理,确保系统的安全性和稳定性。

相关推荐

企业实战-Zabbix

Zabbix1.Zabbix安装2.手动添加自动发现自动注册 1.Zabbix安装 添加 Zabbix 软件仓库 安装 Server/proxy/前端 [root@server1 yum.repos.d]# yum install zabbix-server-mysql [root@server1 yum.repos.d]# yum install -y mariadb-server 创建数据库 root@server1 yum.repos.d]# systemctl start mariadb.serv

weixin_53228623的博客 771

zabbix-webhook-notification:使用Zabbix 4.4中的webhook功能向MS Teams发送警报

此仓库已存档。 zabbix-webhook-通知 使用Zabbix 4.4中的webhook功能向MS Teams发送警报。 信用 你/克里斯巴克 用法 在管理->媒体类型下,创建一个新的webhook媒体类型。 参数 标题-> {ALERT.SUBJECT} 文字-> {ALERT.MESSAGE} WebHookURL->您的团队(或其他服务)频道的Webhook URL 严重性编号-> {TRIGGER.NSEVERITY} 严重性名称-> {TRIGGER.SEVERITY} 状态-> {TRIGGER.STATUS} 脚本 复制msteams.js或其他脚本的内容,然后粘贴到脚本编辑器中。 如果您不喜欢现有的颜色,我建议您将该网站推荐。

三相并网逆变器预测电流控制simulink仿真模型

内容概要:本文介绍了一个关于三相并网逆变器预测电流控制的Simulink仿真模型,重点实现了基于预测控制策略的电流环设计,以提升并网电能质量与动态响应性能。该模型涵盖了逆变器主电路、空间矢量脉宽调制(SVPWM)、锁相环(PLL)、坐标变换(如abc/dq0)以及电流预测控制算法等核心模块,能够有效实现对并网电流的精确跟踪与谐波抑制。仿真模型可应用于弱电网条件下的稳定性分析、电流控制策略优化及新型控制算法验证,部分资源附带参考文献与设计文档,便于科研复现与深入研究。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校研究生、科研人员及从事新能源并网技术开发的工程师。; 使用场景及目标:①用于研究三相并网逆变器在不同电网条件下的电流控制性能;②验证模型预测控制(MPC)在电流环中的应用效果;③支撑科研论文的仿真实验部分,辅助完成控制算法的设计与对比分析; 阅读建议:建议结合相关电力电子与电机控制理论基础,按照资源目录顺序逐步学习,重点关注控制算法与仿真模型的对应关系,并利用提供的参考文献深化理解,提升科研效率与创新能力。

三相Z源逆变器四种升压控制、三次谐波最大升压控制LCL滤波【附参考资料】

内容概要:本文系统研究了三相Z源逆变器的升压控制技术,重点分析并实现了四种常规升压控制方法与基于三次谐波注入的最大升压控制策略,结合LCL滤波器进行系统优化设计,有效提升了电压增益与输出波形质量。通过Simulink搭建完整的仿真模型,对不同控制策略在动态响应、稳态精度及系统稳定性方面的性能进行了对比验证,提供了详实的参考资料以支持理论推导与仿真复现。研究成果对于提升可再生能源系统中逆变器的电压转换能力与运行可靠性具有重要应用价值。; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、科研人员及从事新能源发电系统开发的工程技术人员。; 使用场景及目标:①深入理解Z源逆变器的独特升压机制及其与传统逆变器的区别;②掌握多种升压控制策略的设计原理与仿真实现方法;③应用于光伏、风电等需要高升压比和高质量并网性能的电力变换系统中,优化系统整体效率与稳定性。; 阅读建议:建议结合文中的仿真模型与参考文献,动手实践Simulink建模与参数调试,重点关注控制策略对升压效果、谐波抑制及滤波器动态特性的影响,从而深化对Z源逆变器控制机理的理解,并推动其在实际工程中的应用转化。

Ubuntu20.04下Intel AX201网卡驱动安装全攻略:从内核升级到固件更新

本文详细介绍了在Ubuntu 20.04系统上解决Intel AX201无线网卡驱动问题的完整方案。针对戴尔游匣G15等新硬件,通过升级内核至HWE版本、从官方仓库获取最新固件文件,并调整BIOS设置,彻底解决Wi-Fi无法识别或连接不稳定的问题,为开发者提供了一套从诊断到修复的实践指南。

gpt4scribbler的博客 684

一条龙开发指南:MCP AI Agent 理论+项目实战开发你的MCP Server

MCP(Model Connection Protocol)是Anthropic于2024年推出的AI模型连接协议,旨在为AI模型提供开放、通用的标准化接口,类似于“USB-C”接口,使AI模型能够无缝连接各种数据源和工具。MCP通过标准化协议解决了AI系统集成中的碎片化问题,提升了开发效率和系统可靠性。开发者可以通过简单的配置,快速接入不同的MCP Server,实现AI模型的多样化应用。MCP支持多种协议,如Stdio、SSE等,并通过JSON-RPC格式进行数据传输。文章还以腾讯云代码助手为例,展示了

杨不易呀 3035

VL53L1X移植到STM32实战记录,使用软件IIC(附源代码)

序言 VL53L1X是一个很小又很优秀的测距传感器,它相比于上一代VL53L0X有着不小的提升,这次毕业设计打算将这个传感器用起来,就来移植了一下,遇到的坑怎么说还是有一些,故在此分享给大家。 开发环境 IDE:Keil V5 STM32CubeMX ,使用HAL库 具体操作 获取官方库并进行移植 这一步是移植的基础,首先从官方把API库下下来,并添加到IDE中: 适配硬件 这里由于不同的硬件平...

wmdscjhdpy的博客 1万+

从URDF到Gazebo:一个完整的ROS2机械臂仿真项目实战与避坑指南

本文提供了一个完整的ROS2机械臂仿真项目实战指南,详细讲解了从URDF建模、ROS2 Control配置、MoveIt2集成到Gazebo仿真的全流程。文章重点分享了URDF惯性参数设置、Gazebo插件选择、MoveIt2配置修正等关键步骤的避坑经验,帮助开发者快速搭建可用的六轴机械臂仿真环境,实现从静态模型到物理仿真的跨越。

weixin_29279153的博客 266

【第三只眼:Oracle通过归档日志查看系统的业务高峰sql】

根据oracle归档的业务高峰量,查找业务sql,进行优化

霍然的专栏 574

燧原科技云燧ESL64-O超节点:国产AI芯片与OEX光互联架构解析

分布式AI训练通过将计算任务拆分到多个节点并行执行来加速模型训练,其核心原理涉及数据并行和模型并行等策略。在技术价值层面,分布式训练能显著提升大规模深度学习任务的效率,但传统GPU集群常因网络通信瓶颈导致性能受限。OEX光互联架构作为解决通信瓶颈的关键创新,采用硅光技术实现高带宽、低延迟的节点内互联,优化了AI训练中的集合操作。这种硬件级优化特别适用于千亿参数大模型训练和科学计算等场景,能有效降低AI集群的总体拥有成本(TCO)。云燧ESL64-O超节点正是基于国产自研AI芯片与OEX架构的集成方案,为大规

weixin_29071809的博客 364

【硬件工程师职业细分】揭秘硬件基带工程师

你知道硬件工程师的细分领域硬件基带工程师吗? 它们和常见的硬件工程师又有哪些不同? 福利待遇怎么样?有哪些职业要求? 快来涨上一波知识吧~

woshizzai的博客 1万+

华为Ascend_toolkit在x86ubuntu安装失败报错。[WARNING] driver package is not installed. If you install in docker

这个报错发生在交叉编译配置Ascend_toolkit环境时,安装Ascend_toolkit安装包的时候发生。[Y/N]Y。

anananajiushiwo的博客 1013

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 17、监控Zabbix代理及集成外部服务指南
下一篇: 19、利用自定义脚本和 Zabbix API 扩展 Zabbix 功能
plant
博客等级 码龄26年 45粉丝 1225原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值