跳到主要内容

告警

项目的 告警 标签页决定任务结果发送到哪里。它由两部分组成:

  • 服务器渠道是管理员在服务器 config.json 中配置的通知提供方,参见通知。它们由所有项目共享,每个项目自行决定是否使用。
  • 项目告警是属于项目的具名目标:一个 Telegram 聊天、一个 Slack Webhook、一组邮件地址等。模板和计划任务选择发送哪些告警。

两部分可以同时使用。

项目的告警标签页

服务器渠道​

页面顶部的卡片列出服务器上已配置的渠道。开启 将本项目的告警发送到服务器渠道,即可通过它们接收本项目的所有任务结果。这与旧版本项目设置中的 Allow alerts for this project 是同一个开关。

只要服务器有机器人令牌,就会列出 Telegram,在未设置聊天前显示为灰色。点击该标签输入本项目的 Telegram Chat ID;它会覆盖服务器全局聊天,服务器未设置聊天时为必填。

服务器渠道会报告所有需通知的状态:成功、失败和等待确认。邮件只报告失败。模板仍然可以抑制成功或失败通知,参见模板告警。

打开了 Telegram Chat ID 的服务器渠道卡片

项目告警​

新建告警菜单

点击 新建告警 创建一个目标。每个告警包含:

字段说明
名称显示在模板和计划任务表单中。在项目内唯一。
类型渠道:Telegram、Slack、Email、Microsoft Teams、Rocket.Chat、DingTalk 或 Gotify。表单会显示该渠道所需的目标字段。
目标Telegram 为聊天 ID 和可选的论坛话题;Slack、Teams、Rocket.Chat 和 DingTalk 为 Webhook URL;Gotify 为服务器 URL;邮件为收件人(留空则通知在个人资料中开启了告警的项目成员)。
机密Telegram、Gotify 和邮件需要机密:机器人令牌、应用令牌、SMTP 凭据。使用服务器设置 从服务器配置获取;使用我自己的 从密钥库的访问密钥获取(令牌用 机密令牌 类型,SMTP 用 密码登录 类型)。拥有自己凭据的邮件告警还可以设置自己的 SMTP 主机、端口、发件人和加密方式。
发送时机告警监听的事件:成功、失败、等待确认。新告警以渠道默认值开始。
项目默认将该告警标记为项目默认之一。所有使用项目默认设置的模板都会发送它。
启用已禁用的告警不会发送,也不算项目默认。
消息模板可选的 Go 模板,用于消息正文。保留内置文本可跟随后续服务器更新。

机密从不保存在告警上:它们加密存放在密钥库中,告警使用期间密钥无法删除。当服务器未配置机器人令牌、SMTP 服务器或 Gotify 组合时,表单只提供 使用我自己的。Webhook URL 必须使用 http 或 https,且不能指向服务器自身。

使用列表中的 发送测试消息 检查单个告警,使用工具栏中的 全部测试 向项目所有已启用的目标(包括服务器渠道)发送测试。

已绑定到模板或计划任务的告警无法删除。对话框会列出使用它的对象。

使用自有机器人令牌的 Telegram 告警

消息模板​

正文是 Go 的 text/template(邮件为 html/template)。可用字段如下:

字段值
.Name模板名称
.Author启动任务的用户名,或 —
.Project.Name, .Project.ID项目
.Playbook模板的 Playbook 或脚本
.ScheduleName启动任务的计划任务名称(如有)
.Task.ID, .Task.URL任务编号及其日志链接
.Task.Result带图标的状态,例如 ✅ SUCCESS
.Task.Desc启动任务时输入的消息
.Task.Version构建版本,部署任务则为输入的构建版本
.Task.Duration运行时长,任务开始前为空
.Task.Triggermanual、schedule、integration 或 api
.ColorSlack 和 Rocket.Chat 的附件颜色

对于聊天渠道,渲染结果必须是该即时通讯工具期望的 JSON 文档;内置模板是很好的起点。Telegram 正文是带 HTML 格式的纯文本,聊天和话题由 Semaphore 添加。

模板告警​

在任务模板的 高级 部分,告警 可在以下两项中选择:

  • 使用项目默认 — 项目已开启的服务器渠道,加上标记为项目默认的告警。现有模板在升级后保持此行为。
  • 使用自定义告警集合 — 仅所选告警。未选择任何告警表示该模板不发送任何内容。

抑制成功通知 和 抑制错误通知 对两种选择都生效。关于等待确认任务的通知永不被抑制。

使用自定义告警集合的任务模板

计划任务告警​

计划任务可以 使用模板的告警,或 使用另一组告警。后者会为该计划任务启动的任务完全替换模板的选择,因此夜间作业可以报告到值班渠道,而手动运行保持安静。

使用自有告警集合的计划任务

任务如何路由​

任务的目标在任务创建时确定。任务运行期间修改告警、模板或计划任务,不会改变该任务的报告位置。每次投递都按任务、目标和事件记录,因此在高可用部署中每条消息只由一个服务器节点发送。

备份​

项目告警是项目备份的一部分。模板和计划任务按名称引用它们,因此恢复后的项目保留其绑定。告警按名称引用其访问密钥;与所有密钥一样,机密值本身不会导出。