Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 352|回复: 0

[默认分类] 解决Elasticsearch问题的一些心得体会

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2020-8-1 17:47:26 | 显示全部楼层 |阅读模式
      在开始前先来介绍下背景:我的日志采集系统采用ELKLogstash(收集)、Elasticsearch(存储+搜索)、kibana(展示)三个软件的简称)开源架构,在elasticsearch搭建了三台Linux节点,IP地址分别为:10.0.48.108,10.0.48.97,10.0.48.98,elasticsearch 2.4.6和kibana4.5.4部署在前两个节点服务器上,logstash2.3.1部署在最后一台服务器上,部署过程遇到许多问题,特意记录下来,以后有新的问题出现也会持续更新。
    一、问题1
      今天在启动集群的时候108节点上出现ES【elasticsearch 集群健康值未连接】问题,而97上的ES能正常启动情况下我们用head插件查看elasticsearch集群状态如下图:

    (图1)
      出现这个问题,我最先想到的是去重启该节点,通过命令:service elasticsearch restart,然后用命令:service elasticsearch status查看ES的状态,返回的状态结果如下:

    1. [[WARN ][transport.netty          ] [NODENAME] exception caught on transport layer [[id: 0x9634070f]], closing connection
    2. java.net.NoRouteToHostException: No route to host
    3.     at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    4.     at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
    5.     at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.connect(NioClientBoss.java:152)
    6.     at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.processSelectedKeys(NioClientBoss.java:105)
    7.     at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:79)
    8.     at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)
    9.     at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)
    10.     at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    11.     at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    12.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    13.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    14.     at java.lang.Thread.run(Thread.java:745)
    复制代码


      
      从提示来看是因为找不到路由的原因,首先想到问题可能的原因是防火墙原因导致的,然而我在配置的时候已经打开了9200,9300等ES用到的端口,一时也不知道怎么解决,然后就去Google了一下错误提示,找到的答案都是关闭防火墙,居然都这么说,我就是去关闭了防火墙,不过很显然是毫无作用。后来看到又看到有人说是selinux安全策略导致的,于是也去用命令:setenforce 0关闭了,还是不起作用。到此一直折腾这个问题很久,都没找到最终解决方法,最后还是在这里看到有人说可能是一个系统bug,但是应该不影响ES启动才对,仔细一些它也对,它仅仅是一个警告(WARN)级别的提示,由此我才从这个坑里面退了出来。
      居然不是这个问题,那么就肯定是其他啥原因了,可是一直找啊找就是不知道啥问题啊,看日志每秒钟写进去的都是刚刚那个警告信息,没有其他错误啊,到这里彻底绝望!最后实在没办法只有重装ES咯,不过还要ES中写入的数据不会清空。然后重装,配置,居然还真就可以了,这真是奇妙,不过问题原因我还是不知道,于是我就回想最近对Linux系统的一些操作,后来终于想起我前些天把JDK给卸载了,重新安装了一个新的,我猜测SE安装前就关联了java的,如果后来改变了,那就会影响到SE。
    二、解决问题后的思考
    (1)有时候看到的错误提示,可能不是我们想要的东西,只是表象,解决问题的时候不要钻牛角尖
    (2)在生产系统的话,任何可能的操作都可能影响其他系统,还好我这里是测试环境,以后一定要注意
    (3)解决问题的时候要多尝试,不要怕麻烦,像我这里重装ES也是实在没办法才选择的,如果早一点这么选择,我也不会耽搁一天时候就找原因
    三、问题待续
      有时间再写..........
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-27 11:23 , Processed in 0.386241 second(s), 52 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表