我已经在一台服务器上设置了ELK堆栈,并在另外两台服务器上设置了文件拍子,以将数据直接发送到logstash。
设置工作正常,并且根据需要获得了日志结果,但是当我在Kibana UI(左侧)上看到字段部分时,我看到“ host.hostname ”字段,其中包含两个服务器fqdns(即“ ip-113-331-116-35.us-east-1.compute.internal ”, “ ip-122-231-123-35.us-east-1.compute.internal ” )
我想设置别名或将这些值分别重命名为 Production-1 和 Production-2 以显示在kibana UI上
如何在不破坏任何内容的情况下更改这些值
如果您需要任何代码段,请告诉我
答案 0 :(得分:1)
您可以在logstash管道的过滤器块中使用translate
过滤器来重命名值。
filter {
translate {
field => "[host][hostname]"
destination => "[host][hostname]"
dictionary => {
"ip-113-331-116-35.us-east-1.compute.internal" => "Production-1"
"ip-122-231-123-35.us-east-1.compute.internal" => "Production-2"
}
}
}
答案 1 :(得分:0)
由于字段 host.hostname 是ECS字段,因此我不建议重命名该特定字段。
我认为您有两种选择:
1。)在Logstash中创建管道
您可以在Logstash中设置一个简单的管道,在其中使用mutate过滤器插件并执行 add_field操作。这将在您的事件上创建一个具有host.hostname值的新字段。这是一个简单的示例:
filter{
if [host][hostname]{
mutate{
add_field => { "your_cool_field_name" => "%{[host][hostname]}" }
}
}
}
2。)设置自定义映射/索引模板
您可以在自定义映射中定义字段别名。我建议阅读this article about field aliases