创建 TLS 证书规则
在 Kibana 中,你可以创建一个规则,当一个或多个监视器的 TLS 证书在指定的阈值内过期,或者超过年限限制时,向你发送通知。
有两种类型的 TLS 证书规则
用于 Uptime 应用的 Uptime TLS 规则。
在 8.15.0 中已弃用Uptime 已在 8.15.0 中弃用。请改用 Synthetics。
在 Synthetics 用户界面中,创建一个 TLS 证书规则,以便根据错误和中断接收通知。
要创建 Synthetics TLS 证书规则,你需要具备以下条件
此规则仅针对 synthetics-* 进行查询,这是硬编码的。
筛选条件 (Filter by) 部分控制规则的范围。该规则仅评估与你定义的筛选器相匹配的监视器。使用筛选栏和字段筛选器来缩小 TLS 规则适用的监视器范围
- MONITOR(监视器) — 通过 ID 将规则限制为特定的监视器。
- TYPE(类型) — 按监视器类型限制规则。TLS 证书规则仅适用于 http 和 tcp 监视器类型(浏览器和其他类型被排除在外,因为它们不执行 TLS 检查)。
- TAGS(标签) — 将规则限制为具有选定标签的监视器。
- PROJECTS(项目) — 将规则限制为选定 Synthetics 项目中的监视器。
- LOCATIONS(位置) — 将规则限制为从选定位置运行的监视器。
-
KQL 查询 — 输入自由格式的 KQL 查询,以按任何已建立索引的字段筛选监视器。支持在 Synthetics 其他地方使用的相同 KQL 语法。
为规则设置的条件仅应用于与这些筛选器匹配的监视器。如果你未设置任何筛选器,规则将考虑所有的 http 和 tcp 监视器。
你可以为规则指定以下阈值。它们适用于与 筛选条件 (Filter by) 部分中的筛选器匹配的所有监视器。
| 过期阈值 | HAS A CERTIFICATE EXPIRING WITHIN DAYS 条件指定了何时接收关于接近过期日期的证书的通知。 |
| 年限限制 | OR OLDER THAN DAYS 条件指定了何时接收关于有效时间过长的证书的通知。 |
规则计划 (Rule schedule) 定义了评估该条件的频率。
你还可以设置高级选项 (Advanced options),例如在触发警报之前必须满足规则条件的连续运行次数。
在此示例中,当我们监视的网站上的任何 TLS 证书在 30 天内过期或使用超过 730 天时,条件即告满足。这些条件每 6 小时评估一次,并且只有在条件连续三次满足时,你才会收到警报。
通过将规则连接到使用以下支持的内置集成的操作,来扩展您的规则。
- D3 Security
- 电子邮件
- IBM Resilient
- 索引
- Jira
- Microsoft Teams
- 可观测性 AI 助手连接器
- Opsgenie
- PagerDuty
- 服务器日志
- ServiceNow ITOM
- ServiceNow ITSM
- ServiceNow SecOps
- Slack
- Swimlane
- Torq
- Webhook
- xMatters
部分连接器类型是付费商业功能,而其他则是免费的。有关 Elastic 订阅级别的比较,请前往订阅页面。
选择连接器后,您必须设置操作频率。您可以选择在每个检查间隔或自定义间隔上创建告警摘要。例如,每小时发送一次汇总新告警、持续告警和已恢复告警的电子邮件通知
或者,你可以设置动作频率,以便选择动作运行的频率(例如,在每个检查间隔、仅当警报状态更改时、或在自定义动作间隔时)。在这种情况下,你还必须选择影响动作何时运行的具体阈值条件:Synthetics TLS 证书更改时或其已恢复(从故障变为正常)时。
您还可以通过指定仅当操作符合 KQL 查询或当告警发生在特定时间范围内时才运行操作,来进一步限定操作运行的条件
- If alert matches query(如果告警匹配查询):输入定义字段值对或发送通知必须满足的查询条件的 KQL 查询。该查询仅搜索为该规则指定的索引中的告警文档。
- If alert is generated during timeframe(如果在时间范围内生成告警):设置时间范围详细信息。仅当告警在您定义的时间范围内生成时才会发送通知。
使用默认通知消息或进行自定义。您可以通过点击消息文本框上方的图标并从可用变量列表中进行选择,从而为消息添加更多上下文。
以下变量特定于此规则类型。您也可以指定适用于所有规则的通用变量。
context.checkedAt- 监视器运行的时间戳。
context.hostName- 执行检查的位置的主机名。
context.labels- 与监视器关联的标签。
context.lastErrorMessage- 监视器的最后一条错误消息。
context.lastErrorStack- 监视器的最后一次错误堆栈跟踪。
context.locationId- 执行检查的位置 ID。
context.locationName- 执行检查的位置名称。
context.locationNames- 执行检查的位置名称列表。
context.monitorType- 监视器的类型(例如,HTTP/TCP)。
context.monitorUrl- 监视器的 URL。
context.reason- 告警原因的简要说明。
context.recoveryReason- 恢复原因的简要说明。
context.serviceName- 与监视器关联的服务名称。
context.status- 监视器状态(例如,“down”)。
context.viewInAppUrl- 在 Synthetics 应用中打开警报详情和上下文。
使用 Synthetic monitoring(综合监控) 代替 Uptime 应用。
在 Uptime 应用中,创建一个 TLS 证书规则,以便根据错误和中断接收通知。
筛选条件 (Filter by) 部分控制规则的范围。该规则将仅检查与此部分中定义的筛选器相匹配的监视器。
你可以为规则指定以下阈值
| 过期阈值 | HAS A CERTIFICATE EXPIRING WITHIN DAYS 阈值指定了何时接收关于接近过期日期的证书的通知。 |
| 年限限制 | OR OLDER THAN DAYS 阈值指定了何时接收关于有效时间过长的证书的通知。 |
在此示例中,当我们监视的网站上的任何 TLS 证书在 30 天内过期或使用超过 730 天时,条件即告满足。这些条件每 6 小时评估一次,并且只有在条件连续三次满足时,你才会收到警报。
通过将规则连接到使用以下受支持的内置集成的动作来扩展规则。动作是 Kibana 服务或与第三方系统的集成,当满足规则条件时,它们作为后台任务在 Kibana 服务器上运行。
您可以在Settings(设置)页面上配置操作类型。
- D3 Security
- 电子邮件
- IBM Resilient
- 索引
- Jira
- Microsoft Teams
- 可观测性 AI 助手连接器
- Opsgenie
- PagerDuty
- 服务器日志
- ServiceNow ITOM
- ServiceNow ITSM
- ServiceNow SecOps
- Slack
- Swimlane
- Torq
- Webhook
- xMatters
部分连接器类型是付费商业功能,而其他则是免费的。有关 Elastic 订阅级别的比较,请前往订阅页面。
选择连接器后,您必须设置操作频率。您可以选择在每个检查间隔或自定义间隔上创建告警摘要。例如,每小时发送一次汇总新告警、持续告警和已恢复告警的电子邮件通知
或者,你可以设置动作频率,以便选择动作运行的频率(例如,在每个检查间隔、仅当警报状态更改时、或在自定义动作间隔时)。在这种情况下,你还必须选择影响动作运行的具体阈值条件:Uptime TLS 警报或已恢复(从故障变为正常)。
您还可以通过指定仅当操作符合 KQL 查询或当告警发生在特定时间范围内时才运行操作,来进一步限定操作运行的条件
- If alert matches query(如果告警匹配查询):输入定义字段值对或发送通知必须满足的查询条件的 KQL 查询。该查询仅搜索为该规则指定的索引中的告警文档。
- If alert is generated during timeframe(如果在时间范围内生成告警):设置时间范围详细信息。仅当告警在您定义的时间范围内生成时才会发送通知。
使用默认通知消息或进行自定义。您可以通过点击消息文本框上方的图标并从可用变量列表中进行选择,从而为消息添加更多上下文。
以下变量特定于此规则类型。您也可以指定适用于所有规则的通用变量。
context.agingCommonNameAndDate- 检测到的证书的通用名和过期日期/时间。
context.agingCount- 检测到正变得过时的证书数量。
context.alertDetailsUrl- 链接到警报故障排除视图以获取更多上下文和详细信息。如果未配置
server.publicBaseUrl,则此项将为空字符串。 context.count- 警报执行器检测到的证书数量。
context.currentTriggerStarted- 指示当前触发状态开始时间的时间戳(如果警报已被触发)。
context.expiringCommonNameAndDate- 检测到的证书的通用名和过期日期/时间。
context.expiringCount- 警报检测到的即将过期的证书数量。
context.firstCheckedAt- 指示此警报首次检查时间的时间戳。
context.firstTriggeredAt- 指示警报首次触发时间的时间戳。
context.isTriggered- 指示警报当前是否正在触发的标志。
context.lastCheckedAt- 指示警报最近一次检查时间的时间戳。
context.lastResolvedAt- 指示此警报最近一次解决时间的时间戳。
context.lastTriggeredAt- 指示警报最近一次触发时间的时间戳。