zabbix 调用飞书发送消息
先感谢参考对象: https://blog.csdn.net/fengwuxichen/article/details/90406489
https://blog.51cto.com/12970189/2472377?source=dra
以下是我的操作:
在 zabbix 所在服务器,安装python依赖
yum install python-pip # 已经有了python2.7.5 pip install --upgrade pip pip install urllib3 pip install requests
找到 zabbix 脚本目录,我的在 /usr/lib/zabbix/alertscripts
添加文件,feishu_send.py (得益于开发同事写好了接口url,我只要按要求传递消息体就可以了, 这里传了工号和内容)
python 版本:
#!/usr/bin/python # -*- coding: utf-8 -*- import requests import json import sys import os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "http://192.168.33.21:8099/api/feishu/send" def msg(emp_no, text): json_text= { "employee_no":emp_no, "msg_type": "text", "content": {"text": text} } print(requests.post(api_url,json.dumps(json_text),headers=headers).content) if __name__ == '__main__': emp_no = sys.argv[1] text = sys.argv[2] msg(emp_no, text)
或者使用 curl 版本: (其实就是curl 命令,拼了2个位置参数)
#!/bin/bash curl http://192.168.33.21:8099/api/feishu/send -X POST -d '{"employee_no":"'$1'","msg_type":"text","content":{"text":"'$2'"}}' --header "Content-Type: application/json"
保存文件,并给予执行权限 chmod 755 feishu_send.py
手动执行测试一下: ./feishu_send.py 11220033 testtext
执行成功,飞书收到消息。
接下来,配置zabbix, 先添加,报警媒介类型,使用上面的脚本,并填好参数(是zabbix中的参数)
给用户添加报警媒介。管理,用户,点击一个用户,报警媒介,添加。类型选上图创建的,收件上则对应上图的第一个参数(这里是工号)
由于报警可能要发给几个人,所以创建个用户群组。把用户添加进来即可。
接下来添加动作。 配置,动作,事件源里选触发器,创建动作。 填写名称,新的触发条件选触发器名称,然后点击操作:
在操作界面,其它不用改。点一下操作栏,新的,
操作细节,如下图,最后点添加。
之后的 恢复操作,更新操作 这2项,依照上面的同样设置即可。最后点击更新。
最后,测试一下,让 zabbix 监控的对象出个错误,看飞书能否收到消息。