Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.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入门到精通教程
查看: 701|回复: 0

解决Elasticsearch问题的一些心得体会

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-5-26 15:15:05 | 显示全部楼层 |阅读模式

      在开始前先来介绍下背景:我的日志采集系统采用ELK(logstash(收集)、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的状态,返回的状态结果如下:

    [[WARN ][transport.netty          ] [NODENAME] exception caught on transport layer [[id: 0x9634070f]], closing connection
    java.net.NoRouteToHostException: No route to host
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
        at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.connect(NioClientBoss.java:152)
        at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.processSelectedKeys(NioClientBoss.java:105)
        at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:79)
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)
        at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)
        at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        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也是实在没办法才选择的,如果早一点这么选择,我也不会耽搁一天时候就找原因

    三、问题待续

      有时间再写..........

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-14 04:46 , Processed in 0.063878 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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