【发布时间】:2018-11-08 12:04:51
【问题描述】:
我正在使用 ELK 来处理和监控相当大的日志文件。我正在从本地文件系统推送日志。
但我面临几个问题:
- 由于数据量大,使用 LogStash 进行解析非常慢。随着过滤器插件的增加,它变得更慢。 (3.2GB 的日志需要 4 多天!)
- 在 Kibana 中对这些索引进行 API 调用和构建可视化效果也很慢。
我该如何解决这些问题?
- 迁移到云解决方案:AWS 还是 Google Cloud?但这些可能需要 增加的费用。
- 改进索引技术。如何在 ES 中实现这一点?
任何帮助都是有益的。谢谢!
预计到达时间:
我的 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 {}
}
【问题讨论】:
-
你是如何在 logstash 中解析的?你可以发布logstash配置吗?您的索引设置如何?什么是分片配置?我强烈建议您查看 Elastic Cloud (elastic.co/cloud/elasticsearch-service),他们的定价也不错。要提高索引性能,建议查看elastic.co/guide/en/elasticsearch/reference/current/…。尤其要注意禁用刷新,因为它可以显着提高索引性能。
-
如果您正在执行大量聚合或集群处于负载之下,Kibana 中的可视化可能会很慢。看看你的资源使用情况,够不够?
-
@ben5556 我是 ELK Stack 的新手……所以我还没有进行任何索引设置或分片配置。到目前为止,我正在使用通用 CPU。尚未将其放在专用服务器系统上。
-
我们曾经在 2-2.5 年前使用过 Logstash。据我所知,这是一种饥饿而缓慢的记忆。移至基于 Java 的应用程序进行解析,并且从未回头。尽管随着时间的推移,我们的用例也确实发生了变化。
标签: elasticsearch logstash-configuration aws-elasticsearch