我正在使用ElasticSearch和Kibana来存储和可视化我的日志中的数据。我知道习惯使用Logstash,但我只是使用elasticsearch Rest API并POST新元素。
我正在努力寻找最佳实践,以便我如何管理我的指数,因为我每天有大约5万条日志,而且我希望有时可视化每周,有时是每月,有时甚至是年度数据。而且我也不需要多个节点。我不需要高可用集群。
所以我基本上试图确定: - 我应该如何按时间存储我的索引?每月?每周?一切都是一个指数? - 一个巨大的索引(一个包含我所有数据的索引)的缺点是什么?这是否意味着整个索引都在内存中?
谢谢。
答案 0 :(得分:5)
我喜欢将索引与数据保留策略相匹配。每日索引对日志文件非常有效,因此您可以在保留X天后过期一天。
您拥有的索引/分片越少,Elasticsearch管理它们的开销就越少。
将字段添加到索引时,将冻结字段的映射。使用每日索引,我可以更新映射并使其对新索引生效,并等待旧索引到期。使用较长期的索引,您可能需要重新索引数据,这是我一直试图避免的。
创建索引时,也会冻结分片和副本的设置。
您可以在Kibana中将它们可视化,无论它们如何存储。使用@timestamp字段作为X轴并更改" interval"到你想要的时期。
如果您想要更改日志,则使用logstash非常重要。我们做了很多规范化和新领域的创建,所以它非常有帮助。如果它不是您的要求,您也可以查看文件标记,它可以直接写入elasticsearch。
很多人要考虑......