加载中

常见问题

Elastic Stack Serverless

本页介绍如何解决使用告警时可能遇到的常见问题。

问题

检查间隔较小的规则(例如每两秒)运行时间晚于计划时间。

解决方案

规则作为后台任务运行,其节奏由其**检查间隔**定义。当规则**检查间隔**小于任务管理器 poll_interval时,规则将运行滞后。

调整 Kibana 任务管理器设置或增加有问题的规则的**检查间隔**。

有关更多详细信息,请参阅 计划间隔小的任务运行滞后

问题

计划规则以不一致的节奏运行,通常运行滞后。

操作在规则状态更改后很长时间才运行,从而导致过晚发送更改通知。

解决方案

规则和操作作为后台任务由每个 Kibana 实例以默认速率每三秒执行十个任务。诊断与告警相关的问题时,请关注以 alerting:actions: 开头的任务。

告警任务始终以 alerting: 开头。例如,alerting:.index-threshold 任务支持 索引阈值堆栈规则。操作任务始终以 actions: 开头。例如,actions:.index 任务支持 索引操作

有关在任务管理器中监视和诊断任务的更多详细信息,请参阅 运行状况监视

问题

连接器在连接到服务器以运行操作时,出现 TLS 套接字错误。

解决方案

配置选项可用于专门连接到 TLS 服务器,包括忽略服务器证书验证以及提供证书颁发机构数据以验证使用自定义证书的服务器。有关更多详细信息,请参阅 操作设置

问题

规则运行时间过长,并且影响了部署的整体运行状况。

重要提示

默认情况下,只有具有 superuser 角色的用户才能查询 [预览] Kibana 事件日志,因为它是一个系统索引。要允许其他用户运行此查询,请为 .kibana-event-log* 索引分配 read 权限。

解决方案

默认情况下,规则的超时时间为 5m。运行时间超过此超时的规则将自动取消,以防止它们消耗 Kibana 的过多资源。在规则超时之前可能已计划的告警和操作将被丢弃。当规则超时时,您将在 Kibana 日志中看到此错误

[2022-03-28T13:14:04.062-04:00][WARN ][plugins.taskManager] Cancelling task alerting:.index-threshold "a6ea0070-aec0-11ec-9985-dd576a3fe205" as it expired at 2022-03-28T17:14:03.980Z after running for 05m 10s (with timeout set at 5m).

并在 详细信息页面中看到

Rule details page with timeout error

如果您希望规则运行更长时间,请在您的 告警设置中更新 xpack.alerting.rules.run.timeout 配置。您还可以使用 xpack.alerting.rules.run.ruleTypeOverrides 定位特定规则类型。

持续运行时间超过其 检查间隔 的规则可能会产生意外结果。如果 详细信息页面上可见的平均运行持续时间大于检查间隔,请考虑增加检查间隔。

要获取所有长时间运行的规则,您可以查询规则 ID 列表,按其运行时间进行存储桶化

 GET /.kibana-event-log*/_search {
  "size": 0,
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "@timestamp": {
              "gte": "now-1d",
              "lte": "now"
            }
          }
        },
        {
          "term": {
            "event.action": {
              "value": "execute"
            }
          }
        },
        {
          "term": {
            "event.provider": {
              "value": "alerting"
            }
          }
        }
      ]
    }
  },
  "runtime_mappings": {
    "event.duration_in_seconds": {
      "type": "double",
      "script": {
        "source": "emit(doc['event.duration'].value / 1E9)"
      }
    }
  },
  "aggs": {
    "ruleIdsByExecutionDuration": {
      "histogram": {
        "field": "event.duration_in_seconds",
        "min_doc_count": 1,
        "interval": 1
      },
      "aggs": {
        "ruleId": {
          "nested": {
            "path": "kibana.saved_objects"
          },
          "aggs": {
            "ruleId": {
              "terms": {
                "field": "kibana.saved_objects.id",
                "size": 10
              }
            }
          }
        }
      }
    }
  }
}
  1. 这将查询最近一天运行的规则。更新 ltegte 的值以查询不同的时间范围。
  2. 使用 event.provider: actions 查询长时间运行的操作。
  3. 运行持续时间存储为纳秒。这将添加一个运行时字段,以将该持续时间转换为秒。
  4. 此间隔将 event.duration_in_seconds 运行时字段存储桶化为 1 秒间隔。更新此值以更改存储桶的粒度。如果您无法使用运行时字段,请确保此聚合以 event.duration 为目标,并使用纳秒作为间隔。
  5. 这将检索此持续时间间隔的前 10 个规则 ID。更新此值以检索更多规则 ID。

此查询返回以下结果

{
  "took" : 322,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 326,
      "relation" : "eq"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "ruleIdsByExecutionDuration" : {
      "buckets" : [
        {
          "key" : 0.0,
          "doc_count" : 320,
          "ruleId" : {
            "doc_count" : 320,
            "ruleId" : {
              "doc_count_error_upper_bound" : 0,
              "sum_other_doc_count" : 0,
              "buckets" : [
                {
                  "key" : "1923ada0-a8f3-11eb-a04b-13d723cdfdc5",
                  "doc_count" : 140
                },
                {
                  "key" : "15415ecf-cdb0-4fef-950a-f824bd277fe4",
                  "doc_count" : 130
                },
                {
                  "key" : "dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2",
                  "doc_count" : 50
                }
              ]
            }
          }
        },
        {
          "key" : 30.0,
          "doc_count" : 6,
          "ruleId" : {
            "doc_count" : 6,
            "ruleId" : {
              "doc_count_error_upper_bound" : 0,
              "sum_other_doc_count" : 0,
              "buckets" : [
                {
                  "key" : "41893910-6bca-11eb-9e0d-85d233e3ee35",
                  "doc_count" : 6
                }
              ]
            }
          }
        }
      ]
    }
  }
}
  1. 大多数运行持续时间都落在第一个存储桶(0 - 1 秒)内。
  2. ID 为 41893910-6bca-11eb-9e0d-85d233e3ee35 的单个规则运行了 30 到 31 秒。

使用 get rule API 检索有关运行时间较长的规则的更多信息。

问题:

规则无法运行并出现 Unable to decrypt attribute "apiKey" 错误。

解决方案:

当用于创建规则的 xpack.encryptedSavedObjects.encryptionKey 值与规则运行时使用的值不匹配时,会发生此错误。根据具体情况,有不同的方法来解决此问题

如果 xpack.encryptedSavedObjects.encryptionKey 中的值已手动更改,并且仍然知道以前的加密密钥。 确保任何以前的加密密钥都包含在用于 仅解密的密钥中。
如果另一个具有不同加密密钥的 Kibana 实例连接到集群。 另一个 Kibana 实例可能正在尝试使用与创建规则时不同的加密密钥来运行该规则。确保所有 Kibana 实例之间的加密密钥相同,并为先前使用的加密密钥设置 仅解密密钥
如果其他方案不适用。 为规则生成新的 API 密钥。例如,在 Stack Management > Rules 中,从操作菜单中选择 Update API key

问题:

在 8.2 中创建或编辑的告警规则在您升级到 8.3.0 或 8.3.1 后停止运行。发生以下错误

<rule-type>:<UUID>: execution failed - security_exception: [security_exception] Reason: missing authentication credentials for REST request [/_security/user/_has_privileges], caused by: ""

解决方案:

升级到 8.3.2 或更高版本以避免此问题。要修复失败的规则,请转到 Stack Management > Rules 并多选规则。选择 Manage rules > Update API Keys 以生成新的 API 密钥。有关 API 密钥授权的更多详细信息,请参阅 API 密钥

© . All rights reserved.