elasticsearch 弹性搜索+;Logstash:如何在导入时基于现有数据添加字段,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" /> elasticsearch 弹性搜索+;Logstash:如何在导入时基于现有数据添加字段,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" />

elasticsearch 弹性搜索+;Logstash:如何在导入时基于现有数据添加字段

elasticsearch 弹性搜索+;Logstash:如何在导入时基于现有数据添加字段,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana,目前,我正在通过logstash将数据导入到Elastic中,此时通过读取csv文件 现在让我们假设csv中有两个数字字段,年龄和重量。 我需要动态添加第三个字段,对年龄、重量和其他外部数据(或函数结果)进行数学计算;我需要在导入数据时创建第三个字段 有没有办法做到这一点? 最佳做法是什么?在所有日志存储过滤器部分,您可以通过add\u field添加字段,但这通常是静态数据 如前所述,ruby过滤器插件可能是您的最佳选择。下面是管道的一个示例代码段 filter { # add

目前,我正在通过logstash将数据导入到Elastic中,此时通过读取csv文件

现在让我们假设csv中有两个数字字段,年龄和重量。 我需要动态添加第三个字段,对年龄、重量和其他外部数据(或函数结果)进行数学计算;我需要在导入数据时创建第三个字段

有没有办法做到这一点?
最佳做法是什么?

在所有日志存储过滤器部分,您可以通过
add\u field
添加字段,但这通常是静态数据

如前所述,ruby过滤器插件可能是您的最佳选择。下面是管道的一个示例代码段

filter {

     # add calculated field, for example BMI, from height and weight 
    ruby {
        code => "event['data']['bmi'] = event['data']['weight'].to_i / (event['data']['height'].to_i)"
   }
}

或者,在Kibana中,可以可视化,但不能查询

“Logstash变量范围”是指在Logstash配置中声明的变量?否。就像在Logstash中解析数据时,可以通过
%{var}
引用它。在某个地方(例如前一个筛选阶段),您需要添加/创建
var
字段变量,然后才能引用该变量。请注意,Logstash中
ruby
的新语法已从
event['field']
更改为
event.get('field')