按查询和按桶监控器

按查询监控器是一种告警监控器类型,可用于识别和告警针对 UDB-SX 索引运行的特定查询;例如,检测和响应特定查询中异常的查询。按查询监控器一次只触发一个告警。

按桶监控器是一种告警监控器类型,可用于识别和告警由针对 UDB-SX 索引的查询创建的特定数据桶。

两种监控器类型都支持查询远程索引,使用与跨集群搜索相同的 cluster-name:index-name 模式,或使用 UDB-SX Dashboards 2.12 或更高版本。

要通过仪表板 UI 创建跨集群监控器,需要以下权限cluster:admin/opensearch/alerting/remote/indexes/getindices:admin/resolve/indexcluster:monitor/healthindices:admin/mappings/get

集群指标监控器

创建按查询或按桶监控器

要创建按查询监控器,请按照以下步骤操作:

步骤 1. 定义您的查询和触发器。您可以使用以下任何一种方法:可视化编辑器、查询编辑器或异常检测器。

  • 可视化定义适用于可以定义为”某个值在某个时间段内高于或低于某个阈值”的监控器。它也适用于大多数监控器。

  • 查询定义在您的查询(使用 UDB-SX 查询 DSL)以及如何评估该查询结果(Painless 脚本)方面提供了灵活性。

以下示例对 cpu_usage 字段求平均值:

     {
       "size": 0,
       "query": {
         "match_all": {}
       },
       "aggs": {
         "avg_cpu": {
           "avg": {
             "field": "cpu_usage"
           }
         }
       }
     }

您还可以使用 {% raw %}{{period_start}}{% endraw %}{% raw %}{{period_end}}{% endraw %} 筛选查询结果:

     {
       "size": 0,
       "query": {
         "bool": {
           "filter": [{
             "range": {
               "timestamp": {
                 "from": "{% raw %}{{period_end}}{% endraw %}||-1h",
                 "to": "{% raw %}{{period_end}}{% endraw %}",
                 "include_lower": true,
                 "include_upper": true,
                 "format": "epoch_millis",
                 "boost": 1
               }
             }
           }],
           "adjust_pure_negative": true,
           "boost": 1
         }
       },
       "aggregations": {}
     }

“开始”和”结束”指的是监控器运行的间隔。请参阅监控器变量

要可视化定义监控器,请选择 Visual editor。然后选择源索引、时间范围、聚合(例如 count()average())、数据筛选器(如果要监控源索引的子集),以及如果您希望在查询中包含聚合字段,则选择一个分组字段。如果定义按桶监控器,则至少需要一个分组字段。

可视化定义适用于大多数监控器。

如果您使用 Security 插件,则只能选择您有权访问的索引。详情请参阅告警安全性

要使用查询,请选择 Extraction query editor,添加您的查询(使用UDB-SX 查询 DSL),并使用 Run 按钮进行测试。

监控器会根据计划频率向 UDB-SX 发出此查询;请检查 Query Performance 部分,并确保您对性能影响感到满意。

异常检测仅在定义按查询监控器时可用。

要使用异常检测器,请选择 Anomaly detector 并选择您的 Detector

异常检测选项用于与 Anomaly Detection 插件配对使用。

对于异常检测器,请根据检测器间隔为监控器选择适当的计划。否则,告警监控器可能会错过读取结果。例如,假设您将监控器间隔和检测器间隔都设置为 5 分钟,并在 12:00 启动检测器。如果在 12:05 检测到异常,它可能在 12:06 才可用,因为写入异常与可供查询之间存在延迟。监控器在 12:00 到 12:05 之间读取异常结果,因此无法获取在 12:06 可用的异常结果。

为避免此问题,请确保告警监控器的间隔至少是检测器间隔的两倍。当您使用 UDB-SX Dashboards 创建监控器时,异常检测器插件会生成一个默认的监控器计划,该计划是检测器间隔的两倍。

每当更新检测器的间隔时,请确保更新关联的监控器间隔,因为 Anomaly Detection 插件不会自动执行此操作。

步骤 2. 选择运行监控器的频率,例如按时间间隔(分钟、小时、天)或按计划运行。如果按时间间隔或自定义cron 表达式运行,则必须提供时区。

步骤 3. 向监控器添加触发器。