如何覆盖 Kibana 中的字段值?

How to overwrite field value in Kibana?

我正在使用 Logstash 将数据输入 Elasticsearch,然后使用 Kibana 分析该数据。我有一个包含数字标识符的字段。这些都不容易阅读。如何让 Kibana 覆盖或显示更易于阅读的值?

更具体地说,我有一个 'ip.proto' 字段。当此字段包含 6 时,应显示为 'TCP'。当此字段包含 7 时,应显示为 'UDP'.

我不确定我需要修改 ELK 堆栈中的哪个工具才能实现此目的。

谢谢

您可以使用条件句和 mutate filter:

filter {
  if [ip][proto] == "6" {
    mutate {
      replace => ["[ip][proto]", "TCP"]
    }
  } else if [ip][proto] == "7" {
    mutate {
      replace => ["[ip][proto]", "UDP"]
    }
  }
}

这很快就会变得笨拙,而 translate filter 更优雅(并且可能更快)。未经测试的示例:

filter {
  translate {
    field => "[ip][proto]"
    dictionary => {
      "6" => "TCP"
      "7" => "UDP"
    }
  }
}