文档文档

通知插件

通知器插件为 InfluxDB 3 提供了多通道通知功能,能够通过各种通信渠道实时传递警报。根据传入的 HTTP 请求,通过 Slack、Discord、HTTP Webhook、SMS 或 WhatsApp 发送通知。它作为一个集中的通知分发器,接收来自其他插件或外部系统的数据,并将通知路由到相应的通道。

配置

请求体参数

参数类型默认描述
notification_textstring必需通知消息的文本内容
senders_configobject必需每个通知通道的配置

特定发送者的配置

senders_config 参数接受通道配置,其中键是发送者名称,值包含特定于通道的设置。

Slack 通知

参数类型默认描述
slack_webhook_urlstring必需Slack Webhook URL
slack_headersstringnoneBase64 编码的 JSON 标头

Discord 通知

参数类型默认描述
discord_webhook_urlstring必需Discord Webhook URL
discord_headersstringnoneBase64 编码的 JSON 标头

HTTP Webhook 通知

参数类型默认描述
http_webhook_urlstring必需用于 HTTP POST 的自定义 Webhook URL
http_headersstringnoneBase64 编码的 JSON 标头

SMS 通知(通过 Twilio)

参数类型默认描述
twilio_sidstring必需Twilio 账户 SID(或使用 TWILIO_SID 环境变量)
twilio_tokenstring必需Twilio Auth Token(或使用 TWILIO_TOKEN 环境变量)
twilio_from_numberstring必需发件人电话号码(E.164 格式)
twilio_to_numberstring必需收件人电话号码(E.164 格式)

WhatsApp 通知(通过 Twilio)

参数类型默认描述
twilio_sidstring必需Twilio 账户 SID(或使用 TWILIO_SID 环境变量)
twilio_tokenstring必需Twilio Auth Token(或使用 TWILIO_TOKEN 环境变量)
twilio_from_numberstring必需发件人 WhatsApp 号码(E.164 格式)
twilio_to_numberstring必需收件人 WhatsApp 号码(E.164 格式)

安装

  1. 启用处理引擎来启动 InfluxDB 3 核心(--plugin-dir /path/to/plugins

  2. 安装必需的 Python 包

    • httpx(用于 HTTP 请求)
    • twilio(用于 SMS 和 WhatsApp 通知)
    influxdb3 install package httpx
    influxdb3 install package twilio

创建触发器

创建 HTTP 触发器以处理通知请求。

influxdb3 create trigger \
  --database mydb \
  --plugin-filename notifier_plugin.py \
  --trigger-spec "request:notify" \
  notification_trigger

这将注册一个 HTTP 端点 /api/v3/engine/notify

启用触发器

influxdb3 enable trigger --database mydb notification_trigger

示例

Slack 通知

向 Slack 发送通知。

curl -X POST https://:8181/api/v3/engine/notify \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notification_text": "Database alert: High CPU usage detected",
    "senders_config": {
      "slack": {
        "slack_webhook_url": "https://hooks.slack.com/services/..."
      }
    }
  }'

SMS 通知

通过 Twilio 发送 SMS。

curl -X POST https://:8181/api/v3/engine/notify \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notification_text": "Critical alert: System down",
    "senders_config": {
      "sms": {
        "twilio_from_number": "+1234567890",
        "twilio_to_number": "+0987654321"
      }
    }
  }'

多通道通知

同时通过多个通道发送通知。

curl -X POST https://:8181/api/v3/engine/notify \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notification_text": "Performance warning: Memory usage above threshold",
    "senders_config": {
      "slack": {
        "slack_webhook_url": "https://hooks.slack.com/services/..."
      },
      "discord": {
        "discord_webhook_url": "https://discord.com/api/webhooks/..."
      },
      "whatsapp": {
        "twilio_from_number": "+1234567890",
        "twilio_to_number": "+0987654321"
      }
    }
  }'

新功能

  • 多通道交付:支持 Slack、Discord、HTTP Webhook、SMS 和 WhatsApp。
  • 重试逻辑:失败通知的自动重试(指数退避)。
  • 环境变量:通过环境变量进行凭证管理。
  • 异步处理:非阻塞 HTTP 通知,以获得更好的性能。
  • 灵活配置:支持通道特定设置和可选标头。

故障排除

常见问题

通知未送达

  • 验证 Webhook URL 是否正确且可访问。
  • 检查 Twilio 凭证和电话号码格式。
  • 查看日志以获取特定的错误消息。

身份验证错误

  • 确保 Twilio 凭证通过环境变量或请求参数设置。
  • 如果需要,验证 Webhook URL 是否具有适当的身份验证。

速率限制

  • 插件包含内置的指数退避重试逻辑。
  • 考虑为高频通知实施客户端速率限制。

环境变量

为安全起见,将 Twilio 凭证设置为环境变量。

export TWILIO_SID=your_account_sid
export TWILIO_TOKEN=your_auth_token

查看日志

在 InfluxDB 系统表中检查处理日志。

influxdb3 query --database _internal "SELECT * FROM system.processing_engine_logs WHERE message LIKE '%notifier%' ORDER BY time DESC LIMIT 10"

报告问题

有关插件问题,请参阅插件存储库的 issues 页面

查找 InfluxDB 3 Core 的支持

InfluxDB Discord 服务器 InfluxDB Discord server 是获取 InfluxDB 3 Core 支持的最佳场所。对于其他 InfluxDB 版本,请参阅 支持和反馈 选项。


此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2