Elasticsearch 和 Kibana - 可视化一年日志的最佳实践
Elasticseach & Kibana - best practice for visualizing one year's logs
我正在使用 ElasticSearch 和 Kibana 来存储和可视化我日志中的数据。我知道习惯使用 Logstash,但我只是使用 elasticsearch Rest API 和 POST 新元素给它。
考虑到我每天大约有 5 万条日志,我正在尝试寻找关于如何管理我的索引的最佳实践,并且我有时想可视化每周、有时每月、有时每年的数据。而且我不需要一个以上的节点。我不需要高可用集群。
所以我基本上是想确定:
-我应该如何按时间存储我的索引?每月?每周?一个索引代表一切?
- 巨大索引(包含我所有数据的一个索引)有什么缺点?这是否意味着整个索引都在内存中?
谢谢。
我喜欢将索引与数据保留策略相匹配。每日索引对日志文件非常有效,因此您可以在保留 X 天后过期一天的价值。
您拥有的 indexes/shards 越少,Elasticsearch 用于管理它们的开销中使用的 RAM 就越少。
将字段添加到索引后,该字段的映射将被冻结。使用每日索引,我可以更新映射并使其对新索引生效,并等待旧索引过期。使用长期索引,您可能需要重新索引数据,我总是尽量避免这种情况。
创建索引时,分片和副本的设置也会被冻结。
无论它们的存储方式如何,您都可以在 Kibana 中将它们可视化。使用 @timestamp 字段作为 X 轴并将 "interval" 更改为您想要的时间段。
如果您想完全更改日志,使用 logstash 很重要。我们做了很多规范化和新领域的创建,所以这很有帮助。如果这不是你的要求,你也可以看看 filebeats,它可以直接写入 elasticsearch。
需要考虑很多...
我正在使用 ElasticSearch 和 Kibana 来存储和可视化我日志中的数据。我知道习惯使用 Logstash,但我只是使用 elasticsearch Rest API 和 POST 新元素给它。
考虑到我每天大约有 5 万条日志,我正在尝试寻找关于如何管理我的索引的最佳实践,并且我有时想可视化每周、有时每月、有时每年的数据。而且我不需要一个以上的节点。我不需要高可用集群。
所以我基本上是想确定: -我应该如何按时间存储我的索引?每月?每周?一个索引代表一切? - 巨大索引(包含我所有数据的一个索引)有什么缺点?这是否意味着整个索引都在内存中?
谢谢。
我喜欢将索引与数据保留策略相匹配。每日索引对日志文件非常有效,因此您可以在保留 X 天后过期一天的价值。
您拥有的 indexes/shards 越少,Elasticsearch 用于管理它们的开销中使用的 RAM 就越少。
将字段添加到索引后,该字段的映射将被冻结。使用每日索引,我可以更新映射并使其对新索引生效,并等待旧索引过期。使用长期索引,您可能需要重新索引数据,我总是尽量避免这种情况。
创建索引时,分片和副本的设置也会被冻结。
无论它们的存储方式如何,您都可以在 Kibana 中将它们可视化。使用 @timestamp 字段作为 X 轴并将 "interval" 更改为您想要的时间段。
如果您想完全更改日志,使用 logstash 很重要。我们做了很多规范化和新领域的创建,所以这很有帮助。如果这不是你的要求,你也可以看看 filebeats,它可以直接写入 elasticsearch。
需要考虑很多...