Skip to main content
Papertrail(SolarWinds 旗下的日志聚合服务)用 Saved Search(保存搜索) 描述一条持续匹配日志的查询,命中时可以调用 Webhook 告警。Papertrail 官方文档没有定义任何”已恢复”状态:每次轮询命中新的日志,都只是它单方面发出的一条新推送,本身不携带任何跟上一次推送的关联信息。本集成的转换规则:
  • 同一个保存搜索的一次推送,无论命中多少条日志,都只生成一条 Flashduty 告警
  • 同一个保存搜索的下一次推送会合并到同一条告警,视为同一个问题在持续发生
  • 不同的保存搜索各自独立

在 Flashduty On-call


您可通过以下两种方式获取集成推送地址,任选其一即可。

使用专属集成

  1. 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
  2. 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
  3. 选择 Papertrail,点击 保存
  4. 打开生成的集成卡片,复制 推送地址

使用共享集成

  1. 进入 Flashduty 控制台,选择 集成中心 → 告警事件
  2. 选择 Papertrail,填写集成名称
  3. 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
  4. 点击 保存,复制生成的 推送地址

在 Papertrail 中配置


1

创建保存搜索并附加告警

  1. 登录 Papertrail,进入 Events,输入要匹配的搜索条件
  2. 点击 Save Search,命名后选择 Save & Setup an Alert;也可以在 Dashboard 中为已有的保存搜索点击编辑图标,选择 New Alert
2

选择 Webhook 目标

  1. 在 Alert 配置页选择 Webhook 作为通知方式
  2. URL 粘贴 Flashduty 集成的完整推送地址,地址中需包含 integration_key
  3. Frequency 选择轮询间隔(minute / hour / day):间隔越短,同一个保存搜索一有新的匹配就越快合并进已有的告警
  4. 确认未开启 Send only counts(仅发送计数)。开启后请求里不再包含具体日志和事件 ID,Flashduty 无法识别,会拒绝请求
  5. 保存
推送地址不需要额外的签名或认证头,Flashduty 通过地址中的 integration_key 识别集成,请像保管密钥一样保管推送地址。
3

开启超时自动关闭

Papertrail 的保存搜索告警没有恢复事件,也没有严重程度:只要保存搜索还在命中新的日志,同一条告警就会不断被新的推送合并、延续下去。请在接收这些告警的协作空间中开启 超时自动关闭,计时起点选择 故障触发。建议超时时长至少 30 分钟,留出响应人员确认的时间;若 Frequency 选择了 hour 或 day,请相应调长为所选 Frequency 的 2-3 倍(例如 1 hour 时设置 3 小时),避免问题仍在发生、下一次推送还没到达时告警就先自动关闭。故障关闭时,关联的告警一并关闭;问题仍在发生时,下一次推送会重新打开一条新的告警。
4

验证

Papertrail 官方文档没有提到 Webhook 的测试发送按钮。请让保存搜索的查询条件真实命中一条新日志(例如临时降低阈值或触发一次真实事件),确认 Flashduty 收到对应的告警。

推送内容


Flashduty 按 Papertrail 官方文档的固定格式解析请求:请求体为 application/x-www-form-urlencoded,只有一个表单字段 payload,值是一段 JSON:

Alert Key


Flashduty 直接使用 saved_search.id 作为 Alert Key。官方文档将其定义为保存搜索的稳定标识,在同一个保存搜索的每次推送中都不会变化,因此同一个保存搜索反复命中新日志时,每次推送都会合并进同一条告警,视为同一个问题在持续发生;不同的保存搜索产生不同的 Alert Key,各自开出独立的告警。 max_id/min_id 是本次推送命中日志的 ID 范围,每次推送都会不同,因此不参与 Alert Key:如果把它们混进 Alert Key,会导致同一个保存搜索每命中一次新日志就开出一条新的、永远不会恢复的告警。它们只作为标签,反映最近一次推送的范围。 缺少 saved_search.id 的推送会被拒绝。

告警等级


Papertrail 的保存搜索告警没有严重程度字段,所有命中都以 Warning 等级触发。请求体里每条日志自带的 severity(如 Info、Error)是该条日志本身的 syslog 级别,同一次推送里可能包含多种取值,不代表这条告警的紧急程度,因此不参与等级判断,仅体现在告警描述里摘录的日志内容中。

常见问题


Papertrail 按 Frequency 轮询:一个轮询周期内的多次命中会合并进同一次推送、同一条告警的描述里(最多摘录前 5 条,其余在描述中显示”… and N more”);跨越轮询周期的新推送则会合并进这条已经打开的告警,因为它们共用同一个 saved_search.id。只有在协作空间的超时自动关闭触发、这条告警先被关闭之后,下一次推送才会重新打开一条新的告警。
Papertrail 没有恢复事件。请开启协作空间的超时自动关闭,或在 Flashduty 中手动关闭该告警。
“Send only counts” 模式下请求里不再包含具体的日志和事件 ID,Flashduty 无法识别,会返回错误。请回到 Papertrail 的告警设置中关闭该选项。
更多字段含义请参阅 Papertrail Alerts 和 Papertrail Web hooks。