我如何在 ELK Kibana 中添加额外的字段

How can i add extra fields in ELK Kibana

我正在使用 ELK 和 kibana。

我也在使用 filebeat 将数据发送到 Logstash。

我创建的看起来像这样

{
    "mappings": {  
    "_default_": {
                   "properties": {
                                 "msg":{"type":"string", "index":"not_analyzed"}
                                 }
                 },
    "log": {
                   "properties": {
                                 "@timestamp":{"type":"date","format":"strict_date_optional_time||epoch_millis"},
                                 "@version":{"type":"string"},
                                 "beat": {
                                     "properties": {
                                           "hostname":{"type":"string"}, 
                                           "name":{"type":"string"},
                                                    }
                                          },
                                 "count":{"type":"long"},
                                 "host":{"type":"string"},
                                 "input_type":{"type":"string"},
                                 "message":{"type":"string"},
                                 "msg":{"type":"string","index":"not_analyzed"},
                                 "offset":{"type":"long"},
                                 "source":{"type":"string"},
                                 "type":{"type":"string"}

                                 }
                 }
              }
}';

我想知道就像beat一样有hostname和name这2个字段。是否可以添加更多字段,例如我可以在 kibana 中看到的 environment: dev,以便我可以根据

过滤消息

是的,您可以在 filebeat.yml 配置中 specify additional fields。将创建这些新字段。您有两个选择,您可以指定 fields and/or fields_under_root.

如果您使用前者(见下文),一个包含自定义字段的新 fields 子组将出现在您的文档中,您将能够在 Kibana 中使用 fields.environment: dev 过滤消息。

fields:
    environment: dev

如果您使用后者(见下文),您的自定义字段将出现在文档的顶层,您将能够在 Kibana 中使用 environment: dev 过滤消息。

fields_under_root: true