有什么方法可以改善ElasticSearch上的索引编制?

时间:2018-11-08 12:04:51

标签: elasticsearch logstash-configuration aws-elasticsearch

我正在使用ELK处理和监视相当大的日志文件。我正在从本地文件系统推送日志。

但是我面临几个问题:

  1. 由于数据量大,使用LogStash进行解析非常慢。随着过滤器插件的增加,它变得越来越慢。 (3.2GB的日志需要4天的时间!)
  2. 在Kibana中通过这些索引进行API调用和建立可视化效果也很慢。

我该如何解决这些问题?

  1. 移至云解决方案:AWS还是Google Cloud?但是这些可能需要 费用增加。
  2. 改进索引技术。如何在ES中实现这一目标?

任何帮助都是有益的。谢谢!

ETA:

我的logstash配置:

input {
    file {
        path => "/home/adb/data/**/**/*.gz" #path to subfolder (2nd level) containing .gz files
        mode => "read"
        file_completed_action => "log"
        file_completed_log_path => "/home/adb/data/log.txt"
    }
}

filter {
    csv {
        separator => "&"
        columns => ["T", "D", "CID", "RT", "RP" ...]
    }

    kv {
        source => "RP"
        target => "RP"
        value_split => "#"
        field_split => "*"
    }

    mutate {
        split => { "RT" => "*" }
    }

    date {
                match => ["T", "yyyy-MM-dd HH:mm:ss"]
                timezone => "UTC"
                target => "ET"
        }

     mutate {
                convert => {
                        "RT" => "integer"
                }
        }

}

output {
    elasticsearch {
        hosts => "localhost"
        index => "trial1"
        document_type => "A_C"
    }
    stdout {}
}

1 个答案:

答案 0 :(得分:1)

当弹性搜索索引具有大量带有logstash的数据时,索引编制可能会很慢。您可以将apache kafka放在您的应用程序和logstash之间,以加快索引编制速度。