下面是我的logstash配置文件。
input {
stdin{}
}
filter {
mutate {
if(message =~ "*FF"){
add_field => { "vname" => "olive" }
}
else{
add_field => { "vname" => "popeye" }
}
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => ["localhost:9200"]
index => "servererrors"
}
}
下图显示了我的kibana输出。
http://i.stack.imgur.com/pJANQ.png
问题是我需要过滤"橄榄"单独。正如您可以在主机字段中看到过滤器并过滤掉它,但它不适用于vname字段。
以下是我对vname
的映射文件响应"vname": {
"type": "string",
"store": true
},
我对模板和映射感到困惑。请解释清楚。
答案 0 :(得分:0)
添加"如果"声明和grok插件。您需要单独解析此事件。 如果您展示您的活动,我可以帮助您过滤。
答案 1 :(得分:0)
根据您最近的编辑,看起来您只是在语法上稍微倒退:
filter {
if [myField] == "myValue" {
mutate {
add_field => { ... }
}
}
else {
mutate {
add_field => { ... }
}
}
}