在part00中提到过,zabbix在整个结构中,只起到发起报警,并将信息推送给Python脚本的作用。所以此文的主要目的就是描述如何配置zabbix的报警媒介。
zabbix可以通过配置报警媒介的方式,来自定义的接收报警信息。
查看AlertScriptsPath配置
报警脚本可以是shell、py或者其他各种格式类型的可执行脚本,一般来说,在zabbix的配置中存放脚本的路径配置为告警脚本在Zabbix服务器上执行。这些脚本位于服务器配置文件中定义的目录中AlertScriptsPath
编写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 管理界面,然后依次选择 "管理" > "报警媒介类型"->"创建媒体类型"。
类型选择 "脚本",并在 "脚本名称" 字段中指定您的 Python 脚本的名称alert_test.py
,填写脚本参数{ALERT.SUBJECT} and {ALERT.MESSAGE}
,这两个宏会在下文中解释
配置“动作”
接下来将“报警媒介”配置到“动作中”
在zabbix中点击 “配置”->“动作” ->“创建动作”
在动作中点击 操作 , 添加操作细节 ,操作类型选中“发送信息”,添加发送到”用户群组”或者“用户”,进送到选择刚刚添加的脚本。
之前脚本参数中的{ALERT.SUBJECT}
{ALERT.MESSAGE}
就是对应操作中的默认标题与消息内容
设置完成后可以测试一下
未完待续
从零开始构建报警中心:part02 使用python脚本接收zabbix报警信息