为什么Logstash写入两个索引? (默认和自定义)

时间:2017-02-15 17:26:58

标签: elasticsearch logstash logstash-configuration

我正在使用Elasticsearch 5.2和Logstash 5.2。

我的问题是Logstash写入默认索引(格式logstash-2017.02.15)并写入我的自定义索引。 我只是希望它将写入我的“logstash-secure”索引。我该怎么办?

这是我的简单配置:

output {
    elasticsearch {
        hosts => [ "elasticsearch:9200" ]
        index => "logstash-secure"
    }
    stdout { codec => rubydebug }
}

PS:如果你告诉我必须使用自定义模板,你能解释一下为什么吗? :)

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。 实际上我有两个配置文件,但我认为没有发生。

我用条件语句解决了我的问题。然后,Logstash将信息存储为两个不同的索引,具体取决于源。

这是我的新第一个conf文件:

input {
    beats {
        port => "5044"
        add_field => { "log_type" => "apache" }
    }
}
filter {
[some conf]
}
output {
    if [log_type] == "apache" {
        elasticsearch {
            hosts => [ "elasticsearch:9200" ]
        }
    }
}

我的第二个conf文件:

input {
  file {
    path => "/var/log/secure"
    start_position => "beginning"
    add_field => { "log_type" => "secure.log" }
  }
}
filter {
[some conf]
}
output {
        if [log_type] == "secure.log" {
           elasticsearch {
               hosts => [ "elasticsearch:9200" ]
               index => "logstash-secure"
           }
       }
}