设为首页 收藏本站
查看: 1510|回复: 0

[经验分享] 6.ElasticSearch预警服务-Watcher详解-Transform设置

[复制链接]

尚未签到

发表于 2017-5-21 10:04:23 | 显示全部楼层 |阅读模式
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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379516-1-1.html 上篇帖子: 分布式搜索elasticsearch集群监控工具bigdesk 下篇帖子: 基于Luence的分布式搜索引擎ElasticSearch搜索实例演示(Java API)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表