RELATEED CONSULTING
相关咨询
欢迎选择下列在线客服咨询
微信客服
微信客服二维码
热线电话:13863516421
7x24小时,全年无休
我们服务器的承诺:
关闭右侧工具栏

境外国外服务器专题

Zabbix的动作配置中,支持哪些类型的通知方式?

  • 来源:本站
  • 编辑: 超级管理员
  • 时间:2025-07-14 10:19:16
  • 阅读0次


在 Zabbix 的动作配置中,支持多种通知方式(也称为媒体类型),可通过以下分类实现灵活的告警分发:

一、内置媒体类型

Zabbix 原生支持的通知方式:


邮件(Email)

配置路径:管理 → 媒体类型 → 邮件

参数:SMTP 服务器、端口、用户名、密码、发件人地址

特点:最基础的通知方式,支持 HTML 格式邮件。

短信(SMS)

配置方式:通过外部脚本调用短信服务商 API(如阿里云、腾讯云)

示例脚本:

bash

#!/bin/bash

# 调用阿里云短信API

curl -X POST "https://dysmsapi.aliyuncs.com/" \

-d "PhoneNumbers=$1&TemplateCode=SMS_XXXXXX&TemplateParam={\"code\":\"$3\"}" \

-H "Authorization: APPCODE your_app_code"


Jabber(即时通讯)

配置路径:管理 → 媒体类型 → Jabber

参数:Jabber 服务器地址、用户名、密码

特点:适合企业内部 IM 系统集成。

Ez Texting(短信服务)

配置路径:管理 → 媒体类型 → Ez Texting

参数:Ez Texting 账号、API 密钥

特点:国际短信服务,需付费订阅。

二、自定义脚本(Script)

通过编写脚本支持任意通知方式(如微信、钉钉、Slack):


微信企业号

配置步骤:

在企业微信后台创建应用,获取 CorpID、AgentID、Secret。

编写 Python 脚本调用企业微信 API:

python

运行

#!/usr/bin/env python3

import requests

import json


CORP_ID = "your_corp_id"

AGENT_ID = "your_agent_id"

SECRET = "your_secret"


def get_token():

    url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={SECRET}"

    return requests.get(url).json()["access_token"]


def send_msg(token, to_user, subject, content):

    url = f"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}"

    data = {

        "touser": to_user,

        "msgtype": "text",

        "agentid": AGENT_ID,

        "text": {"content": f"{subject}\n\n{content}"}

    }

    requests.post(url, data=json.dumps(data))


if __name__ == "__main__":

    token = get_token()

    send_msg(token, sys.argv[1], sys.argv[2], sys.argv[3])


钉钉机器人

配置步骤:

在钉钉群中添加自定义机器人,获取 Webhook 地址。

编写脚本调用钉钉 API:

bash

#!/bin/bash

WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=your_token"

MSG="{

    \"msgtype\": \"text\",

    \"text\": {

        \"content\": \"$2\n\n$3\"

    }

}"

curl -H "Content-Type: application/json" -X POST -d "$MSG" "$WEBHOOK"


三、Webhook

通过 HTTP 请求集成第三方服务:


Slack

配置步骤:

在 Slack 中创建 App 并获取 Webhook URL。

在 Zabbix 中添加 Webhook 媒体类型,配置 URL 和请求体:

json

{

    "text": "{TRIGGER.STATUS}: {TRIGGER.NAME} on {HOST.NAME}",

    "attachments": [

        {

            "text": "{ITEM.NAME}: {ITEM.VALUE}\n{EVENT.DATE} {EVENT.TIME}"

        }

    ]

}


自定义 API

配置步骤:

在 Zabbix 中添加 Webhook 媒体类型。

配置 URL(如https://your-api.example.com/alert)和请求体:

json

{

    "host": "{HOST.NAME}",

    "trigger": "{TRIGGER.NAME}",

    "status": "{TRIGGER.STATUS}",

    "severity": "{TRIGGER.SEVERITY}"

}


四、其他高级集成

PagerDuty

配置路径:管理 → 媒体类型 → PagerDuty

参数:PagerDuty 服务 API 密钥

特点:专业的事件响应平台,支持升级策略。

OpsGenie

配置路径:管理 → 媒体类型 → OpsGenie

参数:OpsGenie API 密钥、团队名称

特点:多渠道告警通知和事件管理。

自定义 API(通过 Python/Java)

实现方式:编写自定义程序调用 Zabbix API,实现复杂的通知逻辑(如与企业内部系统集成)。

五、多渠道组合使用

在动作配置中,可同时选择多种通知方式:


高优先级告警:邮件 + 短信 + 微信

中等优先级告警:邮件 + 微信

低优先级告警:邮件

六、验证通知配置

测试媒体类型:

在媒体类型配置页面,点击 “测试” 按钮,输入测试收件人信息。

触发模拟告警:

临时修改触发器阈值,触发告警并检查各渠道是否收到通知。


通过灵活配置多种通知方式,Zabbix 可满足不同场景下的告警需求,确保关键问题及时通知到责任人。


我们提供7X24小时售后服务,了解更多机房产品和服务,敬请联系
购买咨询 售后服务