提到日志系统,很多人都会使用ELK Stack(Elastic/Logstash/Kibana)来采集存储数据,Kafka用作数据临时存储,Flink用来业务数据实时分析,从而实时对业务的监控、风控。但是在以上看似简单的架构中,也隐藏了大量细节需要关注。以ES为例,用户需要关注哪几个方面?
磁盘需要预留的数据空间,即原始数据膨胀系数(1+副本数)*(1+预留空间);数据冷热分离问题,所有数据全部保存到SSD上,成本过高。需要根据数据的重要程度和时间因素,将部分索引数据直接保存至HDD磁盘或使用Rollover功能迁移索引数据;索引设置,每个应用的两类日志,分别按照时间周期性创建索引,根据数据大小合理设置Shard数,单Shard以30~50 GB为宜,但是各应用的日志量很难准确估计,常在遇到写入或查询问题后再调整,然而重建索引的消耗又非常大;Kafka消费设置,使用Logstash消费Kafka数据再写入到ES,需要Kafka topic的patition数和logconsumer_threads相匹配,否则容易导致各partition消费不均。ES参数调优,即对写入吞吐、可见性延时、数据安全性以及查询性能等多方面因素进行综合评估和权衡后,结合集群CPU、内存,对ES一些列参数进行调优,才能更好发挥ES的特性。
以上内容摘自《企业级云原生白皮书项目实战》电子书,点击https://developer.aliyun.com/ebook/download/7774可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。