Mar*_*nik 1 java metering elasticsearch elastic-stack
在我们的项目中,我们使用 ELK 堆栈将日志存储在一个集中的地方。但是我注意到最近版本的 ElasticSearch 支持各种聚合。此外 Kibana 4 支持很好的图形方式来构建图形。即使是最新版本的 grafana 现在也可以使用 Elastic Search 2 数据源。
那么,这一切是否意味着 ELK 堆栈现在可以用于存储系统内部收集的计量信息,或者它仍然不能被视为现有解决方案的严重竞争对手:石墨、流入数据库等。如果是这样,是否有人在生产中使用 ELK 进行计量?你能分享一下你的经验吗?
只是为了澄清这些概念,我认为计量数据是可以汇总并显示在“随时间推移”图表中的东西,而不是主要用例正在搜索的常规日志消息。
非常感谢提前
是的,您可以使用Elasticsearch来存储和分析时间序列数据。
更准确地说,这取决于您的用例。对于例如在我的使用情况下(金融工具价格剔历史数据,在发展中)我能够得到40.000文件插入/秒(〜125页字节的文件各有11场- 1个时间戳,字符串和小数,这意味着5MB / S的有用数据) 14 小时/天,在由企业 SAN 支持的单个节点(具有 192GB ram 的大型现代服务器)上(由旋转磁盘支持,而不是 SSD!)。我去存储高达1TB 的数据,但我预测 2-4TB 也可以在单个节点上工作。
除了 ES_HEAP_SIZE 为 30GB 之外,所有这些都使用默认配置文件设置。我怀疑通过一些调整可以在该硬件上获得显着更好的写入性能(例如,我发现 iostat 报告设备利用率为 25-30% 很奇怪,好像 Elastic 正在限制它/保存 I/O 带宽以进行读取或合并...但也可能是 %util 是 SAN 设备不可靠的指标..)
查询性能也很好 - 只要您使用时间和/或其他字段限制结果数据集,查询/Kibana 图就会快速返回。
在这种情况下,您不会使用 Logstash 加载数据,而是将大批量直接批量插入Elasticsearch。https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
您还需要定义一个映射 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html以确保 elastic 解析您的数据(数字、日期等)创建所需的索引级别等。
此用例的其他推荐做法是每天(或每月/每周,具体取决于您的插入率)使用单独的索引,并确保创建索引时使用的分片刚好足以容纳 1 天的数据(默认情况下为新索引)使用 5 个分片创建,并且分片的性能在分片增长超过特定大小后开始下降 - 通常为几十 GB,但它可能因您的用例而异 - 您需要测量/实验)。
使用 Elasticsearch别名 https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html有助于处理多个索引,通常是推荐的最佳实践。
| 归档时间: |
|
| 查看次数: |
742 次 |
| 最近记录: |