mistgate 文档
中文

在管理后台:集成

Telegram 告警

将面板告警发送到 Telegram。使用 BotFather 设置机器人、关联聊天,了解会发送哪些内容及接收对象,并使用面板监视器接收停机告警。

本页内容

出现需要人工处理的情况时,面板可以向 Telegram 发送消息:节点离线或恢复、检测失败、备份失败、新版本发布、AI 智能体的计划等待审批。默认关闭,只有所有者设置机器人后才会启用。面板只发送告警;聊天中没有命令,也不能审批或更改任何内容。审批仍在管理后台中完成,并由通行密钥或身份验证器验证码保护。

设置机器人(所有者)#

  1. 在 Telegram 中打开 @BotFather,发送 /newbot 并按提示操作。为机器人设置名称和专属用户名;不要重复使用其他程序正在读取的机器人。
  2. 复制 BotFather 发来的令牌(123456789:AA…)。
  3. 在管理后台中打开 集成 → Telegram 告警,将令牌粘贴到 机器人 下,然后选择 保存机器人。面板会要求重新确认登录、通过 Telegram 的 getMe 检查令牌,并显示机器人的 @username。

令牌使用面板主密钥加密,和其他密钥一样,API 不会返回令牌;界面只会显示「令牌已设置」和用户名。更换令牌可设置另一个令牌;移除机器人会清除它。更换机器人或移除机器人都会解除所有聊天的关联(聊天与机器人绑定);再次粘贴同一个机器人则会保留关联。保存和移除机器人会写入审计日志(telegram_bot_set、telegram_bot_clear),其中包含机器人的用户名,不包含令牌。

面板不会使用 webhook;它只会向 Telegram 请求新消息(长轮询),以接收下面的关联码,因此即使面板使用伪装站点,也不需要开放入站端口。Telegram 不允许轮询已设置 webhook 的机器人,因此设置机器人时会移除已有 webhook。请提供一个没有其他程序读取的机器人;如果有其他程序在轮询它,卡片会显示「另一个程序正在读取此机器人的消息」。

关联聊天(每位管理员)#

每位管理员分别关联自己的聊天;所有者不会替其他人关联。打开 集成 → Telegram 告警 → 绑定我的 Telegram(所有者设置机器人后,协作者或只读管理员也会看到卡片的这一部分):

  1. 面板会要求重新确认登录,并显示一次性验证码和 在 Telegram 中打开 按钮(https://t.me/<bot>?start=<code>)。
  2. 在 Telegram 中按 「开始」。也可以自行向机器人发送 /start <code>。
  3. 面板收到消息后,会将该聊天关联到你的管理员账户,机器人会回复「已关联」。几秒内,卡片就会显示已绑定。

验证码只能使用一次,有效期为 10 分钟;新验证码会替换旧验证码。只能关联私人聊天,不能关联群组。聊天向机器人发送其他内容时,机器人不会回复,因此找到机器人的陌生人也无法从它那里得知任何信息。一个聊天只能属于一位管理员;将它关联到另一位管理员时,原关联会转移。

关联后,可以关闭向我发送告警而不解除关联,也可以选择发送测试消息(向你的聊天发送一条消息,每 10 秒最多一次)或解绑。关联和解绑会写入审计日志(telegram_link、telegram_unlink)。卡片还会显示面板监视器使用的聊天 ID。

发送内容和接收对象#

内容 接收对象 发送时机
运行状况告警:节点无法连接、在线但无流量、检测失败、节点诊断失败(磁盘已满、WARP 离线、AmneziaWG 模块等)、证书即将到期、更新暂停、用户因设备数上限被拒绝(告警打开时通知一次) 所有已关联的管理员,无论其角色如何(所有角色都能在管理后台查看这些告警) 告警打开时发送一次,解决时再发送一次,并说明持续时长
节点上的 AmneziaWG 内核模块构建失败 所有者 每次失败发送一次
新的已签名面板版本 所有者 每个版本发送一次
节点 Agent 版本落后于发布版本 所有者 每个版本发送一次,并附上节点名称
备份失败 所有者 无论定时任务重试多少次,都只发送一次;下一次备份成功时再发送
等待你审批的 MCP 计划 所有者 计划创建时发送,并附带 集成 → 待你审批 链接。请在管理后台中审批,不要在聊天中处理
多次登录失败后发生锁定 所有者 锁定时发送
面板最近未见过的地址登录;添加或移除通行密钥、添加密码登录、修改密码或身份验证器 所有者及相关管理员 发生时发送

消息的行为如下:

  • 短时间内的多条消息会合并。约 30 秒内到达的事件会合并发送,每个聊天收到一条消息;相同的行不会重复。
  • 同一个未解决告警不会重复发送。告警解决时会发送一条消息并说明持续时长。被更严重告警取代、被标记为正常或已静默的告警结束时不会发送消息,设备数上限告警也是如此。
  • 不发送提示级告警。只发送警告和严重告警(本版本固定采用此级别;目前没有免打扰时段或筛选条件)。
  • 消息简短,并使用面板语言。消息使用英语、俄语或简体中文,取决于面板的默认语言(设置 → 界面 → 默认语言)。节点、协议配置或令牌等数据名称会经过转义,并截断为单行。
  • 绝不包含密钥。消息不含令牌、订阅链接或密码。
  • 只有面板知道公共地址时才附加链接。如果面板知道公共地址,消息末尾会附上相应管理页面的链接(运行状况、更新、集成、备份设置)。如果不知道(管理后台位于单独的本地监听器上),卡片会说明这一点,消息也不会包含链接。请注意,链接中包含隐藏管理后台的地址;它会保存在 Telegram 服务器的聊天记录中,因此只应关联你信任账户中的私人聊天。

投递#

面板通过 HTTPS 向 api.telegram.org 发起连接;主机必须能够访问该地址。发送失败后会逐渐延长等待时间再重试;收到「请求过多」响应时,面板会按 Telegram 指定的时间等待,最长不超过一小时,以防止无效值造成问题;如果聊天无法接收消息(例如你屏蔽了机器人),则不会重试。面板停止时仍在内存中等待的消息会在几秒内优先发送;如果面板崩溃,这些消息会丢失。如果 Telegram 拒绝令牌或面板无法连接,卡片会在机器人下显示原因。

监视面板是否停机#

面板监视器是一个独立的 Cloudflare Worker,会检查面板,并向已关联的聊天发送停机和恢复告警。它使用同一个机器人和你在个人关联卡片中看到的聊天 ID。它只发送 Telegram 消息,不会轮询机器人或设置 webhook。

权限#

所有者 协作者 只读 API 令牌 / MCP
设置、更换或移除机器人 是(需重新确认登录) 否 否 从不
关联、解绑、切换告警、为自己的聊天发送测试消息 是(关联时需重新确认登录) 是 是 从不
查看已关联聊天的管理员 是 否 否 从不

此功能不向 API 令牌或 MCP 开放。

在 GitHub 上编辑此页