Logstash / Kibana:将新字段添加到Kibana中的现有索引

时间:2020-10-20 06:24:36

标签: logstash kibana

目前,我有以下索引模板用于过滤防火墙日志:

GET /_template/my_logstash

{
  "my_logstash" : {
    "order" : 1000,
    "index_patterns" : [
      "filebeat-*",
      "firewall-*",
      "syslog-*",
    ],
    "settings" : {
      "index" : {
        "analysis" : {
          "analyzer" : {
            "whitespace_lowercase" : {
              "filter" : [
                "lowercase"
              ],
              "tokenizer" : "whitespace"
            },
            "keyword_lowercase" : {
              "filter" : [
                "lowercase"
              ],
              "tokenizer" : "keyword"
            }
          }
        },
        "mapping" : {
          "total_fields" : {
            "limit" : "3000"
          }
        }
      }
    },
    "mappings" : {
      "doc" : {
        "dynamic" : "true",
        "properties" : {
          "bytes" : {
            "type" : "long"
          },
          "bytes_in" : {
            "type" : "long"
          },
          "bytes_out" : {
            "type" : "long"
          },
          "dest_port" : {
            "type" : "integer"
          },
          "src_port" : {
            "type" : "integer"
          },
          "dest_translated_ip" : {
            "type" : "ip"
          },
          "src_translated_ip" : {
            "type" : "ip"
          },
          "dest_ip" : {
            "type" : "ip"
          },
          "src_ip" : {
            "type" : "ip"
          },
          "host" : {
            "type" : "text",
            "analyzer" : "whitespace_lowercase",
            "fields" : {
              "keyword" : {
                "type" : "keyword"
              }
            }
          },
          "logsource" : {
            "type" : "text",
            "analyzer" : "whitespace_lowercase",
            "fields" : {
              "keyword" : {
                "type" : "keyword"
              }
            }
          },
          "program" : {
            "type" : "text",
            "analyzer" : "whitespace_lowercase",
            "fields" : {
              "keyword" : {
                "type" : "keyword"
              }
            }
          },
          "source" : {
            "type" : "text",
            "analyzer" : "keyword_lowercase",
            "fields" : {
              "keyword" : {
                "type" : "keyword"
              }
            }
          },
          "sourcetype" : {
            "type" : "text",
            "analyzer" : "whitespace_lowercase",
            "fields" : {
              "keyword" : {
                "type" : "keyword"
              }
            }
          },
          "username" : {
            "type" : "text",
            "analyzer" : "whitespace_lowercase",
            "fields" : {
              "keyword" : {
                "type" : "keyword"
              }
            }
          },
          "geoip" : {
            "properties" : {
              "ip" : {
                "type" : "ip"
              },
              "location" : {
                "type" : "geo_point"
              },
              "latitude" : {
                "type" : "half_float"
              },
              "longitude" : {
                "type" : "half_float"
              }
            }
          }
        }
      }
    },
    "aliases" : { }
  }
}

我想在mappings/doc中添加以下字段:

     "domain": {
          "type": "text",
          }

     "threat_contenttype": {
          "type": "text",
          }

我想通过Kibana的控制台执行此操作。通过阅读logtash doco,我认为可能是这样的:

PUT /_template/my_logstash/_mapping
     "domain": {
          "type": "text",
          }

     "threat_contenttype": {
          "type": "text",
          }

这是正确的吗?我不确定它是否太害怕运行,以防它破坏了我当前的索引。 我不想将字段添加到当前数据中-我只想将新字段用于将向Logstash发送日志的一些新防火墙设备。

欣赏您的想法,

J

1 个答案:

答案 0 :(得分:0)

您更新的任何映射模板都将仅用于创建新索引,并且不会影响已建立索引的数据。

Elastic支持动态映射,因此当您使用其他字段为新数据建立索引时,将自动添加它们。但是由于某些特定原因,您可能希望控制映射。

在更改已经索引的字段的类型时,您可能需要格外小心。看看下面的链接。

Elastic Mapping

相关问题