通知渠道
通知渠道
功能简介
通知渠道用于配置「消息往哪里发」。SamWaf 通过这里配置好的渠道,将系统告警和通知推送给你。
通知功能由三部分协同工作:
- 通知渠道:配置消息的发送方式(钉钉、飞书、邮件等具体怎么发)。
- 通知订阅:配置什么类型的事件发送到哪个渠道。
- 通知日志:记录每一条通知的发送结果。
本页负责第一部分。目前支持的渠道类型有:钉钉、飞书、企业微信、邮件、Server酱、自定义Webhook。
如果你要对接的平台不在上述内置类型里(例如 Slack、Telegram、Bark、ntfy、Gotify,或你自己搭的告警系统),可以使用 自定义Webhook,自行定义请求地址、请求方法、请求头和报文格式。
操作步骤
1. 新增渠道
- 点击页面左上角的 添加渠道 按钮。
- 填写 渠道名称,选择 渠道类型。
- 根据所选类型填写对应的配置参数(不同类型的配置项不同,见下方分类说明)。
- 选择 状态(开启 / 关闭)。
- 如有需要,填写 备注。
- 点击 确定 保存。
2. 不同渠道类型的配置
钉钉 / 飞书 / 企业微信
- Webhook地址:群机器人的 Webhook 地址(必填)。
- 密钥:用于加签验证(钉钉、飞书需要;企业微信无需配置密钥)。
企业微信机器人 Webhook 获取方式:在企业微信群聊中点击右上角「···」→「添加群机器人」→「新创建一个机器人」,复制生成的 Webhook 地址。
Server酱
- SendKey:从 Server酱 控制台获取的 SendKey,支持标准格式(SCT 开头)和 sctp 私有部署格式。
SendKey 获取方式:访问 Server酱 官网(https://sct.ftqq.com/)并用微信扫码登录,在控制台复制 SendKey,并在「消息通道」页面配置接收通知的平台(微信、企业微信、钉钉等)。
邮件
填写 SMTP 相关参数(详见下方字段说明)。页面内置「常见邮箱配置参考」折叠面板,提供 QQ、163、126、Gmail、Outlook、阿里云等邮箱的 SMTP 服务器、端口和加密方式参考。
重要提示:端口 465 请选择 SSL/TLS 加密,端口 587 请选择 STARTTLS 加密;端口 25 如需认证必须使用 STARTTLS,否则服务器会拒绝。多数邮箱需要先开启 SMTP 服务并生成授权码(不是登录密码)。
当加密方式选择 SSL/TLS 或 STARTTLS 后,会出现 证书校验 选项。若邮件服务器使用自签名证书(常见于内网自建邮件服务),可勾选 跳过证书校验(自签名证书),SamWaf 将不再校验服务器的 TLS 证书。
安全提示
勾选「跳过证书校验」会降低传输安全性,可能被中间人攻击,请仅在可信内网环境中使用。
自定义Webhook
用于对接内置类型没有覆盖的平台。渠道类型选择 自定义Webhook 后,需要配置以下内容:
1)选择常用模板(可选)
常用模板 下拉提供 通用JSON、Slack、Discord、Telegram Bot、Bark、ntfy、Gotify 几种预设。选中后会自动填好 请求方法、报文类型、自定义请求头 和 报文模板,地址仍需你自己填写(预设里给的是格式示例)。选择「自定义(不填充)」则不改动已填内容。
提示
选择预设只是把模板填进表单,SamWaf 不会主动访问这些平台。是否发送、发到哪里,完全由你填写的 Webhook 地址决定。
2)填写 Webhook 地址
对方平台接收消息的地址。仅支持 http / https,且目标必须是公网地址——填内网地址(如 127.0.0.1、192.168.x.x)保存时会被拒绝。
3)选择请求方法与报文类型
- 请求方法:POST、PUT、PATCH、GET、DELETE。选择 GET 时不发送请求体。
- 报文类型:application/json、application/x-www-form-urlencoded、text/plain、text/xml,也可以直接输入其他值。
4)添加自定义请求头(可选)
点击 添加请求头,逐条填写头名称与头值,常见用途是填 Authorization / Bearer xxxxxx 之类的认证信息。最多 20 条。
注意
Host、Content-Length、Transfer-Encoding 等由系统控制的请求头不允许自定义;头值中不能包含换行。填写不合规会在保存时被拦下并提示。
5)编写报文模板
报文模板 决定发给对方的报文长什么样。留空则发送内置默认报文(报文类型为 JSON 时发送包含全部变量的 JSON;其他类型发送「标题 + 空行 + 正文」的纯文本)。
模板中可以使用下列变量,点击输入框上方的变量标签即可插入:
| 变量 | 说明 |
|---|---|
{{.Title}} | 通知标题 |
{{.Content}} | 通知正文 |
{{.Time}} | 事件时间 |
{{.MessageType}} | 消息类型标识(如 rule_trigger) |
{{.MessageTypeName}} | 消息类型名称(如「规则触发」) |
{{.Severity}} | 严重级别(info / warn / critical) |
{{.ServerName}} | 本机名称 |
例如对接 Slack 的报文模板:
{
"text": "*{{.Title}}*\n{{.Content}}"
}报文模板与消息模板的分工
这里的 报文模板 只决定「报文外壳」——对方平台需要什么字段名。告警文案本身由 通知订阅 里的 消息模板 决定,它渲染出来的结果就是这里的 {{.Title}} 和 {{.Content}}。
所以域名、攻击IP、规则信息这类细节变量要写在订阅的消息模板里;写在报文模板里保存时会提示「变量不存在」。
报文类型选择 JSON 时,变量值会自动做 JSON 转义(正文里的引号、换行不会打碎报文),并且保存前会校验渲染结果是否为合法 JSON,括号或引号没配平会当场提示。
3. 测试渠道
在列表中点击某条渠道的 测试 按钮,SamWaf 会尝试通过该渠道发送一条测试消息。提示「测试成功」后,请到对应平台确认是否收到通知。
4. 启用 / 禁用
列表中每条渠道带有状态开关,可直接点击切换启用或禁用。
5. 编辑 / 删除
- 点击 编辑 修改渠道配置。
- 点击 删除 移除渠道。删除后,与该渠道相关的订阅也将被删除。
字段说明
通用字段
| 字段 | 说明 |
|---|---|
| 渠道名称 | 渠道的标识名称,必填。 |
| 渠道类型 | 钉钉 / 飞书 / 企业微信 / 邮件 / Server酱 / 自定义Webhook,必填。 |
| 状态 | 开启 / 关闭,控制该渠道是否生效。 |
| 备注 | 自定义说明,可选。 |
钉钉 / 飞书 / 企业微信
| 字段 | 说明 |
|---|---|
| Webhook地址 | 群机器人 Webhook 地址,必填。 |
| 密钥 | 加签密钥,可选;企业微信无需配置。 |
Server酱
| 字段 | 说明 |
|---|---|
| SendKey | Server酱 控制台获取的 SendKey,支持 SCT 与 sctp 格式。 |
邮件
| 字段 | 说明 |
|---|---|
| SMTP服务器 | 邮件服务器地址,例如 smtp.qq.com。 |
| SMTP端口 | 服务器端口,默认 25;常用 465(SSL/TLS)或 587(STARTTLS)。 |
| 用户名 | 邮箱账号,通常与发件人邮箱一致。 |
| 密码 | 邮箱密码或授权码。 |
| 发件人邮箱 | 发件人邮箱地址。 |
| 发件人名称 | 发件人显示名称,可选。 |
| 收件人邮箱 | 默认收件人,多个用逗号分隔;订阅时可针对消息类型单独配置,未配置则使用此默认值。 |
| 加密方式 | 不加密 / SSL/TLS / STARTTLS。 |
| 证书校验 | 仅当加密方式为 SSL/TLS 或 STARTTLS 时显示。勾选「跳过证书校验(自签名证书)」后不校验邮件服务器的 TLS 证书,适用于自签名证书的内网邮件服务器;会降低安全性,请仅在可信网络中使用。 |
自定义Webhook
| 字段 | 说明 |
|---|---|
| 常用模板 | 通用JSON / Slack / Discord / Telegram Bot / Bark / ntfy / Gotify 预设,选中后自动填充请求方法、请求头与报文模板,地址需自己填写;选「自定义(不填充)」不改动已有内容。 |
| Webhook地址 | 对方平台接收消息的地址,必填。仅支持 http / https,且必须是公网地址。 |
| 请求方法 | POST / PUT / PATCH / GET / DELETE,默认 POST。选 GET 时不发送请求体。 |
| 报文类型 | 请求的 Content-Type,默认 application/json;提供常用值下拉,也可直接输入。 |
| 自定义请求头 | 逐条填写头名称与头值,最多 20 条。Host、Content-Length 等由系统控制的头不可自定义,头值不能包含换行。 |
| 报文模板 | 发给对方的报文内容,支持 {{.Title}}、{{.Content}} 等变量。留空则发送内置默认报文。 |
常见问题
配置后测试失败怎么办?
- 邮件渠道请确认端口与加密方式匹配(465 用 SSL/TLS,587 用 STARTTLS),密码使用的是邮箱授权码而非登录密码。
- 若报连接被拒绝(connection refused),说明 SMTP 服务器地址或端口不可达,请先确认服务器 IP、端口填写正确且网络可达。
- 若使用自签名证书的邮件服务器,报证书校验相关错误(如 certificate signed by unknown authority),可在渠道配置中勾选 跳过证书校验(自签名证书) 后重试。
- 钉钉 / 飞书请确认 Webhook 地址和密钥正确,且机器人加签设置一致。
- 自定义Webhook 若提示返回状态码 4xx / 5xx,说明请求已经发到对方平台但被拒绝,错误信息里会附带对方的响应内容,通常是报文格式或认证信息不符合对方要求。
- 可在 通知日志 中查看失败的具体错误信息。
自定义Webhook 保存时提示地址「不被允许」?
Webhook 地址仅支持 http / https,且目标必须是公网地址。指向 127.0.0.1、192.168.x.x、10.x.x.x 等内网地址,或跳转到内网地址的链接,都会被拒绝。
自定义Webhook 保存时提示「变量不存在」?
报文模板里只能使用 {{.Title}}、{{.Content}}、{{.Time}}、{{.MessageType}}、{{.MessageTypeName}}、{{.Severity}}、{{.ServerName}} 这七个变量。域名、攻击IP、规则信息这类细节变量属于 通知订阅 的消息模板,它们会被渲染进 {{.Content}}。
配置好渠道后为什么收不到通知?
仅配置渠道还不够,还需在 通知订阅 中将对应的消息类型订阅到该渠道。
