Centos8安装zabbix5.4.7(二)

接着上篇,这篇写的是zabbix实现通过企业微信发送告警,自行可以直接注册企业微信,并不需要什么资料,然后在企业内部群添加机器人,然后在机器人信息中会获得一个webhook链接,这个链接后续会用到。

创建调用webhook链接的脚本

  • 脚本路径为:/usr/lib/zabbix/alertscripts/ 。脚本具体内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #! /usr/bin/python3
    #! -*- coding:utf-8 -*-


    import os
    import urllib3
    import time
    import requests
    import json
    import sys


    urllib3.disable_warnings()


    def SendMessageURL(User,Subject,Messages):
    URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=webhook_key" #机器人的webhook
    HEADERS = {"Content-Type": "application/json"}
    Data = {
    "msgtype": "markdown",
    "markdown":{
    "content":Subject + "\n" + Messages
    },
    }
    r = requests.post(url=URL,headers=HEADERS,json=Data,verify=False)
    print(r.json())

    if __name__ == "__main__":
    SENDTO = str(sys.argv[1])
    SUBJECT = str(sys.argv[2])
    MESSAGE = str(sys.argv[3])
    Status = str(SendMessageURL(SENDTO,SUBJECT,MESSAGE))
    print(Status)

    以markdown格式发送消息

  • 创建完脚本之后需要修改脚本权限。

    1
    2
    chmod +x wechat.py
    chown zabbix. wechat.py

接下来是web页面的操作

  • 管理 > 报警媒介类型 > 创建媒体类型

  • 告警内容

    1
    2
    3
    4
    5
    6
    7
    8
    <font color="#FF0000" center>**告警信息**</font>[{EVENT.ID}]
    > 告警主机: **{HOST.NAME}**
    > 主机地址: **{HOST.IP}**
    > 监控项目: {ITEM.NAME}
    > 当前取值: {ITEM.LASTVALUE}
    > 告警等级: {TRIGGER.SEVERITY}
    > 告警时间: {EVENT.DATE}-{EVENT.TIME}
    > 事件ID: {EVENT.ID}
  • 告警恢复

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <font color="#008000"  center>**告警**</font>[{EVENT.ID}]<font color="#008000" center> **已恢复**</font>
    > 主机名称: **{HOST.NAME}**
    > 主机地址: **{HOST.IP}**
    > 告警名称: {EVENT.NAME}
    > 持续时长: {EVENT.DURATION}
    > 恢复时间: {EVENT.RECOVERY.DATE}-{EVENT.RECOVERY.TIME}
    > 当前状态: {TRIGGER.STATUS}
    > 当前取值: {ITEM.LASTVALUE}
    > 事件ID: {EVENT.ID}
  • 接下创建动作,配置 > 动作 > Trigger actions > 创建动作

  • 接下来选择user settings > Profile > 报警媒介

  • 不出意外的话,至此配置已经完成。上效果图: