【发布时间】:2016-03-03 04:32:27
【问题描述】:
我正在使用 Logstash RSS 输入来收集和标记 Google 新闻提醒。为了正确标记,我想先对文本进行规范化,同时保持原来的大小写在 UI 上显示。
我尝试了以下方法,但每个组合似乎都以原始字段和克隆字段小写结尾,而没有专门询问 Logstash。
方法一 - 使用 mutate { add_field
input {
rss { [my RSS feed URLs] }
}
filter {
mutate
{
add_field => ["displayTitle", "%{@title}"] }
mutate
{
add_field => ["displayText", "%{@message}"] }
mutate {
lowercase => [ "title","message" ] }
if "3d-print" in [title] or "3d-print" in [message] { mutate { add_tag => "3d printing" } }
output {}
方法二-使用Ruby代码克隆事件
input {
rss { [my RSS feed URLs] }
}
filter {
ruby {
code => "event['displayTitle'] = event['title']" }
ruby {
code => "event['displayText'] = event['message']" }
mutate {
lowercase => [ "title","message" ] }
if "3d-print" in [title] or "3d-print" in [message] { mutate { add_tag => "3d printing" } }
output {}
方法三-使用Clone插件克隆事件
input {
rss { [my RSS feed URLs] }
}
filter {
clone {
add_field => { "%{title}" => "displayTitle" } }
mutate {
lowercase => [ "title","message" ] }
if "3d-print" in [title] or "3d-print" in [message] { mutate { add_tag => "3d printing" } }
output {}
所有这三种方法都会产生输出,其中 'displayTitle' 和 'title' 字段都是小写的,即使我只在 title 字段上使用了 mutate { lowercase =>。
“displayText”和“message”字段也是如此。我希望 displayTitle 和 displayMessage 字段保留原始大小写。
感谢您的帮助!
【问题讨论】:
-
尝试在第二个过滤器{}块中使用小写字母。
-
感谢@AlainCollins!这似乎确实有效。
标签: ruby logstash logstash-configuration