首页 > 编程语言 >从零开始构建报警中心:part01 使用python脚本接收zabbix报警信息

从零开始构建报警中心:part01 使用python脚本接收zabbix报警信息

时间:2023-11-03 19:35:29浏览次数:32  
标签:脚本 __ 配置 log part01 报警 python zabbix

在part00中提到过,zabbix在整个结构中,只起到发起报警,并将信息推送给Python脚本的作用。所以此文的主要目的就是描述如何配置zabbix的报警媒介。

zabbix可以通过配置报警媒介的方式,来自定义的接收报警信息。

查看AlertScriptsPath配置

报警脚本可以是shell、py或者其他各种格式类型的可执行脚本,一般来说,在zabbix的配置中存放脚本的路径配置为告警脚本在Zabbix服务器上执行。这些脚本位于服务器配置文件中定义的目录中AlertScriptsPath

从零开始构建报警中心:part01 使用python脚本接收zabbix报警信息_zabbix

编写demo脚本

这里提供一个简单python3脚本作为示例,其功能是接受所有的参数记录为日志:

/usr/lib/zabbix/alertscripts/alert_test.py

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

import datetime
import sys

def log(message):
        current_time = datetime.datetime.now()
        timestamp = current_time.strftime("%Y-%m-%d %H:%M:%S")
        with open("log.txt", "a") as log_file:
            log_file.write(f"{timestamp} {message}\n")

if __name__ == "__main__":
    arguments = sys.argv[1:]
    result = '|'.join(arguments)
    log(result)

为了保证正常使用需要添加x属性chmod +x alert_test.py

配置zabbix报警媒介

在 Zabbix 中配置报警媒体类型: 打开 Zabbix 管理界面,然后依次选择 "管理" > "报警媒介类型"->"创建媒体类型"。

从零开始构建报警中心:part01 使用python脚本接收zabbix报警信息_python脚本_02


类型选择 "脚本",并在 "脚本名称" 字段中指定您的 Python 脚本的名称alert_test.py,填写脚本参数{ALERT.SUBJECT} and {ALERT.MESSAGE},这两个宏会在下文中解释

从零开始构建报警中心:part01 使用python脚本接收zabbix报警信息_zabbix_03

配置“动作”

接下来将“报警媒介”配置到“动作中”

在zabbix中点击 “配置”->“动作” ->“创建动作”

从零开始构建报警中心:part01 使用python脚本接收zabbix报警信息_zabbix_04

在动作中点击 操作 , 添加操作细节 ,操作类型选中“发送信息”,添加发送到”用户群组”或者“用户”,进送到选择刚刚添加的脚本。

之前脚本参数中的{ALERT.SUBJECT}{ALERT.MESSAGE}就是对应操作中的默认标题与消息内容

从零开始构建报警中心:part01 使用python脚本接收zabbix报警信息_python脚本_05

设置完成后可以测试一下

从零开始构建报警中心:part01 使用python脚本接收zabbix报警信息_zabbix_06


标签:脚本,__,配置,log,part01,报警,python,zabbix
From: https://blog.51cto.com/quietguoguo/8173711

相关文章

  • pythonDay6
    for循环 案列 for+range(同while一样) while输入限制次数解决办法 range补充 for循环嵌套字符串正反步长及 .strip去除(lstrip是去除左边,rstrip是去除右边) rsplit,rsplit和join indigit 了解1.  了解2:字符串打印格式 了解3 了解4 了解5 ......
  • Python-流程控制-while循环-for循环
    Python-流程控制-while循环-for循环写重复代码是可耻的行为程序在一般情况下是按顺序执行的,编程语言提供了各种控制结构,允许更复杂的执行路径。循环(loop)用于解决重附代码的问题1.循环类型1.1.循环分类1)根据循环次数分类有限循环(次数限制)无限循环(死循环)标志位flag2)根据......
  • Python_消息队列
    rabbitpy:RabbitMQSimplified###[scheme]://[username]:[password]@[host]:[port]/[virtual_host]url='amqp://guest:guest@localhost:5672/%2F'这个%2f是字符斜杠/uni-encode之后的结果,而/就是默认的hostname,它在HTTP传输的时候必须要转义。Port15672isforthe......
  • Python分享之内置函数清单
    Python内置(built-in)函数随着python解释器的运行而创建。在Python的程序中,你可以随时调用这些函数,不需要定义。最常见的内置函数是:print("HelloWorld!")在Python教程中,我们已经提到下面一些内置函数:基本数据类型type()反过头来看看dir()help()len()词典len()文本文......
  • Python之openpyxl模块的学习
    简介之前针对Excel的读取都是使用的xlrd模块,但是在一次实践中发现xlrd模块去掉了对xlsx格式的支持,因此改用openpyxl。以下内容仅包含使用openpyxl读取Excel文档的操作,并且比较浅显,更多内容请参考官方文档。注:一个excel就是一个工作簿(workbook),一个工作簿含有多个工作表(sheet)实......
  • python训练阿里云语音合成模型
    训练阿里云多人训练语音合成模型model_link:https://modelscope.cn/models/speech_tts/speech_sambert-hifigan_tts_zh-cn_multisp_pretrain_24k/summary1.获取KANTTS算法训练框架2.配置虚拟环境(conda)需要下载pytorch及其他kantts算法依赖3.数据准备:https://modelsco......
  • Python_web开发基础内容
    网络长连接的HTTP协议,会在响应头有加入这个头部字段:Connection:keep-aliveWebSocket:需要通过网络传输的任何实时更新或连续数据流,则可以使用WebSocketHTTP:不需要很频繁或仅获取一次的数据可以通过简单的HTTP请求查询都是用来跟踪浏览器用户身份的会话方式.cookie......
  • Python-运算符
    Python-运算符1.Python运算符的优先级以下表格列出了从最高到最低优先级的所有运算符:如果是同优先级则从左往右依次递减运算符描述**乘方,指数(最高优先级)~+-按位翻转,一元加号和减号(最后两个的方法名为+@和-@)*/%//乘,除,取模和取整除+-......
  • Python 中的 __init__.py 和__all__ 详解(抄袭的joker) 因为写的实在是太好了
    Python中的__init__.py和__all__详解JOKER没意思先生 之前不论是自己写代码还是用别人的代码,都没有注意过这个东西,今天忽然看了一下,网上的教程感觉讲的都不是很清楚,自己又研究了研究,总结一下,如果有不对的地方,大家帮忙指正一下。在Python工程里,当pyth......
  • python 中[1:]、[:-1]和[::-1]
    代码分析:str='abcdefg'print(str[1:])print(str[:-1])print(str[-1:])print(str[::-1])print(str[::-2])print(str[:])-------------------------------------------------------------------------------------------结果bcdefgabcdefggfedcbagecaabcdefg1234567......