elasticsearch Logstash ElasticSearch中的聚合
我将logstash与输入elasticsearch和输出elasticsearch一起使用。这两种elasticsearch都有不同的实例。 在数据进入输出块之前,我想聚合一些文档,创建新文档的散列,并在弹性搜索中插入嵌套文档。 所以基本上我想在elasticsearch中插入嵌套文档之前做一些处理。这可能吗
elasticsearch Logstash ElasticSearch中的聚合,
elasticsearch,logstash,
elasticsearch,Logstash,我将logstash与输入elasticsearch和输出elasticsearch一起使用。这两种elasticsearch都有不同的实例。 在数据进入输出块之前,我想聚合一些文档,创建新文档的散列,并在弹性搜索中插入嵌套文档。 所以基本上我想在elasticsearch中插入嵌套文档之前做一些处理。这可能吗 input{ # something here to get a value of variable stored in a different file elastic
input{
# something here to get a value of variable stored in a different file
elasticsearch{
hosts=>"abc.de.fg.hi:jklm"
query=>'{--some query---}'
}
}
output{
elasticsearch{
hosts=>"xxx.xx.xx.xx:yyyy"
}
我正在使用“聚合”插件
在我的例子中,输入来自UDP,我使用“grok”对其进行过滤,但我相信您可以通过稍微调整代码来实现您想要做的事情
如果没有您想要准确实现的示例,我所能做的就是向您展示我的代码示例:
aggregate {
task_id => “%{action}_%{progress}”
code =>
“
map[‘avg’] || = 0;
map[‘avg’] += event.get(‘elapsed’);
map[‘my_count’] || = 0;
map[‘my_count’] += 1;
if (map[‘my_count’] == ${LogstashAggregationCount})#Environment variable
event.set(‘elapsedAvg’, (map[‘avg’] / map[‘my_count’]))
event.set(‘Aggregetion’, true)
map[‘avg’] = 0
map[‘my_count’] = 0
end
“
}
if (![Aggregetion]) {
drop {}
}
当然,您需要根据您的具体情况进行调整。有关我的代码的更深入解释,请阅读此处:我正在使用“聚合”插件
在我的例子中,输入来自UDP,我使用“grok”对其进行过滤,但我相信您可以通过稍微调整代码来实现您想要做的事情
如果没有您想要准确实现的示例,我所能做的就是向您展示我的代码示例:
aggregate {
task_id => “%{action}_%{progress}”
code =>
“
map[‘avg’] || = 0;
map[‘avg’] += event.get(‘elapsed’);
map[‘my_count’] || = 0;
map[‘my_count’] += 1;
if (map[‘my_count’] == ${LogstashAggregationCount})#Environment variable
event.set(‘elapsedAvg’, (map[‘avg’] / map[‘my_count’]))
event.set(‘Aggregetion’, true)
map[‘avg’] = 0
map[‘my_count’] = 0
end
“
}
if (![Aggregetion]) {
drop {}
}
当然,您需要根据您的具体情况进行调整。要更深入地解释我的代码,请阅读此处:不幸的是,目前无法从Logstash中运行聚合。值得一提的是,我一直在开发一个插件来实现这一点,但我还没有发布它。我将在运行某些内容时更新此线程。您可能希望同时研究,这可能会起作用。没有关于如何使用Aggregation的新闻不幸的是,目前无法从Logstash中运行聚合。值得一提的是,我一直在开发一个插件来实现这一点,但我还没有发布它。我将在运行某些内容时更新此线程。在此期间,您可能需要研究聚合,这可能会奏效。没有关于如何使用聚合的新闻