问题描述
发现kibana中日志不在更新了,停留在了一个时间点没有继续更新,然后就去检查各个服务,发现es、logstash、kibana均正常,不过发现es里面没有新日志产生,初步怀疑是logstash没有成功推送过来日志。
问题解决
1.检查logstash日志,logstahs是java开发的,笔者将日志记录到了nohup.out文件中
检查日志文件发现错误:Attempted to resurrect connection to dead ES instance, but got an error
2.然后再次检查es服务健康度,发现es的三个结点均无问题。
3.再次怀疑是logstash问题,发现logstash接收日志都正常,只是将日志输送到es时出了问题,最后还是怀疑问题出在了es。
4.然后c了一下,有网友提供修改es索引数量限制的配置,笔者尝试了下,发现不行。
5.检查es日志(elasticsearch.yml里面配置的日志路径),发现日志里报出了大量的overheap,虽然不是OOM,但是猜测还是和jvm的对大小配置有关,尝试将所有结点的堆容量提升了一倍,栈大小提升了9倍。配置如下:
-Xms4g -Xmx4g -Xss10m
6.然后重启了es三个结点、logstash、kibana,之后恢复正常。
问题总结
定位问题,排除了所有不可能,即使剩下的选项再不可能,那问题也一定是在他身上。大胆假设小心求证,就能顺利解决问题。