Logstash中的数学函数

Sup*_*der 3 logstash

我期待在Logstash中收到的输入上使用数学运算,但是看不到任何此类过滤器

输入如下:

{
  "user_id": "User123",
  "date": "2016 Jun 26 12:00:12",
  "data": {
    "doc_name": "mydocs.xls",
    "doc_size": "8526587",
  }
}
Run Code Online (Sandbox Code Playgroud)

“ doc_size”字段将具有字节,我想添加一个新字段,例如“ doc_size_mb”,其中将包含以MB为单位的大小。

所以我想要一个简单的除法运算,例如:

doc_size_mb = doc_size /(1024 * 1024)

我可以看到一个链接,该链接显示Logstash具有数学过滤器,但这在这里看不到。

Val*_*Val 5

logstash-filter-math不是核心插件,但它是可用在这里。您可以按顺序执行以下步骤或进行安装:

> git clone https://github.com/robin13/logstash-filter-math.git
> cd logstash-filter-math
> gem build
> $LS_HOME/bin/logstash-plugin install logstash-filter-math-0.2.gem
Run Code Online (Sandbox Code Playgroud)

如果您不想为此安装第三方插件,也可以使用ruby过滤器轻松实现相同的计算:

filter {
   ruby {
      code => "event['data']['doc_size_mb'] = event['data']['doc_size'].to_i / (1024 * 1024)"
   }
}
Run Code Online (Sandbox Code Playgroud)