繁体   English   中英

如何在弹性搜索中从logstash索引自定义字段?

[英]How to index Custom field from logstash in elastic search?

以下是我的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
          },

我对模板和映射感到困惑。 请清楚解释。

添加“ if”语句和grok插件。 您需要分别解析此事件。 如果您显示事件,我可以帮助您进行过滤。

根据您最近的编辑,看起来您在语法上仅落后了一点:

filter {
    if [myField] == "myValue" {
        mutate {
            add_field => { ... }
        }
    }
    else {
        mutate {
            add_field => { ... }
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM