zabbix to 飞书

以下是我的操作:

在 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 监控的对象出个错误,看飞书能否收到消息。

 

Share