Logstash:将格式化的度量事件发送到Elasticsearch



我能够使用以下相关插件从logstash中的事件中捕获stdout中的一些度量:

在我的filter文件中:

if "somekeyword" in [tags] {
metrics {
meter => "events_somekeyword"
flush_interval => 60
add_tag => "metric_somekeyword"
}
}

在我的outputs文件中

if "metric_somekeyword" in [tags] {
stdout {
codec => line {
format => "Time: %{+YYYY-MM-dd HH:mm:ss Z} | Metric: rate 1m | Client: SomeJeyword | Rate: %{[events_somekeyword][rate_1m]}"
}
}

我的问题是如何根据elasticsearch输出来翻译完全相同的操作/格式。

例如

{
"Metric Rate": "1m",
"Client": "SomeKeyword",
"Rate": "THE_ACTUAL_RATE_VALUE_HERE",
"@timestamp": "2018-11-02T11:34:34.000Z",
}

我还希望(如果可能的话(Rate四舍五入到其最接近的整数值;

以上内容应按每日指数进行分组

如果我理解正确,您需要像以下一样解析键值消息

filter {
kv { 
source => "field_containing_the_message_to_parse"
field_split => "|"
value_split => ":"
}
}

如果这是您想要的,那么还有更多选项可用于自定义解析https://www.elastic.co/guide/en/logstash/current/plugins-filters-kv.html

最新更新