Elasticsearch显示CPU使用率高,导致日志无法写入
问题现象
Elasticsearch在某一时间段CPU比较高,Logstash在该时刻报错“Elasticsearch Unreachable”,导致日志数据无法写入Elasticsearch集群。
原因分析
由于index是单shard,压力承载于单个节点,负载过高,造成队列满后,作业被拒绝。
处理步骤
- 登录云搜索服务管理控制台。
- 在左侧导航栏,选择“集群管理 > Elasticsearch”。
- 在集群列表,选择目标集群名称,单击操作列的“更多 > Cerebro”,登录Cerebro。
- 在Cerebro中查看集群的分片数、各节点的cpu、load、head、disk等数据指标。
- 根据指标分析可能出现的原因,针对性优化。
- 增加队列数,减少拒绝作业,修改参数write.queue_size取值。
- 单击需要修改参数的集群名称,进入集群详情页面。
- 选择“集群配置 > 参数配置”。
- 在自定义模块,查找write.queue_size参数并改大该参数值。
参数修改的详细操作指导请参见参数配置章节。
- 重建索引,使分片数大于集群节点数。
- 增加队列数,减少拒绝作业,修改参数write.queue_size取值。
- 如果分片数和队列大小都满足条件,但是cpu和负载依然比较高,建议扩容节点。