`
corejava2008
  • 浏览: 296581 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

6.ElasticSearch预警服务-Watcher详解-Transform设置

阅读更多

ElasticSearch预警服务-Watcher详解-Transform设置
Transform(数据转换),在Watcher服务的Action执行前执行。
可以执行Transform的位置有两次,分别是:
1.全局定义(Watch Level),将对所有的Watch动作生效
2.局部定义(Action Level),只对指定的Watch动作生效

设置案例:

{
  "trigger" : { ...}
  "input" : { ... },
  "condition" : { ... },
  "transform" : { #此处为全局的 
    "search" : {
      "body" : { "query" : { "match_all" : {} } }
    }
  }
  "actions" : {
    "tyler_webhook": {
      "transform" : { #次数为局部
        "script" : "return ctx.payload.hits"
      }
      "webhook" : {
        "host" : "host.domain",
        "port" : 8089,
        "path" : "/notify/{{ctx.watch_id}}"
      }
    }
  ]
  ...
}

目前支持的三种定义类型为search, script ,chain
1.Search Transform
执行一个查询,并将返回结果替换Context中的内容。
来看一下局部定义的Search Transform:

{
  ...
  "transform" : {
    "search" : {
      "body" : { "query" : { "match_all" : {} } }
    }
  }
  ...
}

 #带参数定义

{
  "transform" : {
    "search" : {
      "search_type" : "count", #执行Count操作
      "indices" : [ "logstash-*" ], #查询所有以logstash开头的索引
      "body" : {
        "query" : {
          "match" : { "priority" : "error"} #查询proiority为Error的数据
        }
      }
    }
  }
}

 #支持ES的全部搜索API格式...

{
  "transform" : {
    "search" : {
      "search_type" : "count",
      "index" : [ "logstash-*" ],
      "type" : "event",
      "body" : {
        "query" : {
          "filtered" : {
            "filter" : {
              "bool" : {
                "must" : [
                  {
                    "range" : {
                      "@timestamp" : {
                        "from" : "{{ctx.trigger.scheduled_time}}||-30s",
                        "to" : "{{ctx.trigger.triggered_time}}"
                      }
                    }
                  },
                  {
                    "query" : {
                      "match" : { "priority" : "error"}
                    }
                  }
                ]
              }
            }
          }
        }
      }
    }
  }
}

 #支持 inline template查询

{
  "transform" : {
    "search" : {
      "search_type" : "count",
      "index" : [ "logstash-*" ],
      "type" : "event",
      "body" : {
        "template" {
          "inline" : {
            "query" : {
              "filtered" : {
                "filter" : {
                  "bool" : {
                    "must" : [
                      {
                        "range" : {
                          "@timestamp" : {
                            "from" : "{{ctx.trigger.scheduled_time}}||-30s",
                            "to" : "{{ctx.trigger.triggered_time}}"
                          }
                        }
                      },
                      {
                        "query" : {
                          "match" : { "priority" : "{{priority}}"}
                        }
                      }
                    ]
                  }
                }
              }
            },
            "params" : {
              "priority" : "error"
            }
          }
        }
      }
    }
  }
}

 2.Script Transform
需要注意的是,从ESv1.4.3开始, inline groovy scripts功能是默认关闭的,请注意开启
简单的脚本设置定义:

{  ...
  "transform" : {
    "script" : "return [ time : ctx.trigger.scheduled_time ]" #Groovy脚本
  }
  ...
}

 3.Chain Transform
链式数据转换,指可以指定多个Transform组成数据量,一个Transform的输出作为下一个Transfrom的输入.

{
  ...

  "transform" : {
    "chain" : [ #定义格式
      {
        "search" : {  #搜索Transform,执行count查询
          "search_type" : "count",
          "indices" : [ "logstash-*" ],
          "body" : {
            "query" : {
              "match" : { "priority" : "error"}
            }
          }
        }
      },
      { #脚本Transform,将count结果赋值给Error_count字段
        "script" : "return [ error_count : ctx.payload.hits.total ]"  
      }
    ]
  }
  ...
}

 

 

1
0
分享到:
评论

相关推荐

    elasticsearch-analysis-ik-7.17.0

    《Elasticsearch全文检索插件IK分析器7.17.0详解》 Elasticsearch是一种流行的开源全文搜索引擎,广泛应用于大数据和big data环境中的数据检索与分析。它以其高效、灵活和可扩展性赢得了业界的青睐。在Elastic...

    windows版本ES7.17.3中文分词器elasticsearch-analysis-ik-7.17.3 .zip

    用于elasticsearch7.17.3这个版本的ik中文分词器,考虑到官网有时网络不稳定下载不下来,这里特意上传,方便大家使用; 目录结构如下: config -- 文件夹 plugin-security.policy plugin-descriptor.properties ...

    最新版 elasticsearch-analysis-ik-7.17.6.zip

    《Elasticsearch Analysis IK插件详解与7.17.6版本特性》 Elasticsearch是一种流行的开源全文搜索引擎,以其高效、灵活和可扩展性深受开发者喜爱。在处理中文分词方面,Elasticsearch-analysis-ik插件是不可或缺的...

    最新版windows elasticsearch-7.17.6-windows-x86_64.zip

    本篇将详细阐述关于"最新版windows elasticsearch-7.17.6-windows-x86_64.zip"的相关知识点。 首先,版本号7.17.6代表了Elasticsearch的特定更新迭代,通常包含了错误修复、性能优化以及新功能的添加。每个版本的...

    elasticsearch-analysis-ik-7.16.2.zip

    配置方面,用户可以在Elasticsearch的配置文件中指定分词器参数,如自定义词典路径,或者通过API动态调整设置。 总结,elasticsearch-analysis-ik-7.16.2作为Elasticsearch中的中文分词利器,结合其依赖库,为中文...

    最新版 elasticsearch-analysis-ik-7.9.3.zip

    《Elasticsearch Analysis IK插件7.9.3详解》 Elasticsearch作为一个强大的全文搜索引擎,其灵活性和可扩展性深受开发者喜爱。然而,对于中文处理,Elasticsearch原生支持并不理想,这时就需要借助于插件来实现,...

    最新版linux elasticsearch-7.13.4-linux-x86_64.tar.gz

    5. 设置环境变量:在`~/.bashrc`或`~/.bash_profile`中添加`export PATH=$PATH:/usr/local/elasticsearch/elasticsearch-7.13.4/bin` 6. 使环境变量生效:`source ~/.bashrc` 7. 由于Elasticsearch需要运行在Java...

    Elasticsearch(elasticsearch-7.17.0-linux-aarch64.tar.gz)

    Elasticsearch(elasticsearch-7.17.0-linux-aarch64.tar.gz适用于Linux x86_64 Arm芯片)是一个高度可扩展的开源全文本搜索和分析引擎。它使您可以快速,近乎实时地存储,搜索和分析大量数据。它通常用作支持具有...

    elasticsearch-head-compile-after.tar.gz+node-v8.1.2-linux-x64.ta

    用户在使用前需要先解压,然后根据项目文档指示,安装必要的依赖,配置环境,最后启动Node.js服务来运行Elasticsearch-Head。 总的来说,这个压缩包提供了用于管理和监控Elasticsearch集群的前端工具,以及运行这个...

    elasticsearch-7.8.0-x86_64.rpm + kibana-7.8.0-x86_64.rpm + logstash-7.8.0.rpm

    Elasticsearch、Kibana和Logstash是 Elastic Stack(前称为 ELK Stack)的重要组成部分,这是一个流行的开源数据处理和分析工具链。这三个组件在大数据、日志管理和实时分析领域广泛应用。 1. **Elasticsearch**:...

    elasticsearch-analysis-ik-7.3.2.zip

    《Elasticsearch中文分词器IK插件详解》 Elasticsearch(ES)作为一个强大的全文搜索引擎,其在处理中文文档时,对中文分词的准确性和效率有着至关重要的作用。"elasticsearch-analysis-ik"是ES中最受欢迎的中文...

    Elasticsearch(elasticsearch-7.17.0-linux-x86_64.tar.gz)

    Elasticsearch(elasticsearch-7.17.0-linux-x86_64.tar.gz适用于Linux x86_64 )是一个高度可扩展的开源全文本搜索和分析引擎。它使您可以快速,近乎实时地存储,搜索和分析大量数据。它通常用作支持具有复杂搜索...

    elasticsearch-7.17.7-windows-x86-64.zip

    10. **安装与配置**:解压"elasticsearch-7.17.7"文件后,用户需按照官方文档配置环境变量,设置内存大小、网络端口等参数,然后启动服务,即可开始使用。 总的来说,Elasticsearch是现代大数据时代的一个重要工具...

    最新版windows elasticsearch-8.8.2-windows-x86-64.zip

    最新版windows elasticsearch-8.8.2-windows-x86_64.zip最新版windows elasticsearch-8.8.2-windows-x86_64.zip最新版windows elasticsearch-8.8.2-windows-x86_64.zip最新版windows elasticsearch-8.8.2-windows-...

    elasticsearch-analysis-ik-7.16.3.zip

    《Elasticsearch中文分词器IK插件详解》 在现代大数据分析和搜索引擎领域,Elasticsearch(ES)因其高效、灵活的全文检索能力而备受青睐。然而,对于中文这样的多字节语言,如何准确地进行分词是关键。这时,我们就...

    elasticsearch-analysis-ik-7.12.0.zip

    《Elasticsearch IK 分析器插件7.12.0版详解》 Elasticsearch是一种流行的开源全文搜索引擎,以其强大的搜索能力和灵活的数据处理能力深受开发者喜爱。在处理中文文本时,选择合适的分析器至关重要,而`elastic...

    elasticsearch-analysis-ik-6.8.0.zip

    使用 IK 分词器时,首先需要将压缩包中的 JAR 文件和配置文件复制到 Elasticsearch 的 plugins 目录下,然后重启 Elasticsearch 服务以加载插件。IK 分词器支持两种分词模式:"smart" 和 "strict",前者更注重语义...

    最新版 elasticsearch-analysis-ik-8.5.1.zip

    6. plugin-security.policy:这是 Elasticsearch 插件的安全策略文件,定义了插件可以执行的操作,以限制潜在的安全风险。 7. plugin-descriptor.properties:插件的元数据描述文件,包含插件的名称、版本、描述等...

    elasticsearch-7.17.4-x86-64.rpm文件(分享给需要的同学)

    elasticsearch-7.17.4-x86_64.rpm文件 elasticsearch-7.17.4-x86_64.rpm文件 elasticsearch-7.17.4-x86_64.rpm文件 elasticsearch-7.17.4-x86_64.rpm文件 elasticsearch-7.17.4-x86_64.rpm文件 elasticsearch-7.17.4...

    elasticsearch-7.13.2-darwin-x86_64.tar.gz

    解压完成后,进入解压后的目录,启动Elasticsearch服务,通常执行`bin/elasticsearch`脚本即可。 **配置** Elasticsearch的配置文件位于`config/elasticsearch.yml`。你可以根据需求调整设置,比如更改默认端口、...

Global site tag (gtag.js) - Google Analytics