解决Elasticsearch问题的一些心得体会
在开始前先来介绍下背景:我的日志采集系统采用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:)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.connect(NioClientBoss.java:)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.processSelectedKeys(NioClientBoss.java:)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:)
at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:)
at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:)
at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:)
at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$.run(DeadLockProofWorker.java:)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:)
at java.lang.Thread.run(Thread.java:)
从提示来看是因为找不到路由的原因,首先想到问题可能的原因是防火墙原因导致的,然而我在配置的时候已经打开了9200,9300等ES用到的端口,一时也不知道怎么解决,然后就去Google了一下错误提示,找到的答案都是关闭防火墙,居然都这么说,我就是去关闭了防火墙,不过很显然是毫无作用。后来看到又看到有人说是selinux安全策略导致的,于是也去用命令:setenforce 0关闭了,还是不起作用。到此一直折腾这个问题很久,都没找到最终解决方法,最后还是在这里看到有人说可能是一个系统bug,但是应该不影响ES启动才对,仔细一些它也对,它仅仅是一个警告(WARN)级别的提示,由此我才从这个坑里面退了出来。
居然不是这个问题,那么就肯定是其他啥原因了,可是一直找啊找就是不知道啥问题啊,看日志每秒钟写进去的都是刚刚那个警告信息,没有其他错误啊,到这里彻底绝望!最后实在没办法只有重装ES咯,不过还要ES中写入的数据不会清空。然后重装,配置,居然还真就可以了,这真是奇妙,不过问题原因我还是不知道,于是我就回想最近对Linux系统的一些操作,后来终于想起我前些天把JDK给卸载了,重新安装了一个新的,我猜测SE安装前就关联了JAVA的,如果后来改变了,那就会影响到SE。
二、解决问题后的思考
(1)有时候看到的错误提示,可能不是我们想要的东西,只是表象,解决问题的时候不要钻牛角尖
(2)在生产系统的话,任何可能的操作都可能影响其他系统,还好我这里是测试环境,以后一定要注意
(3)解决问题的时候要多尝试,不要怕麻烦,像我这里重装ES也是实在没办法才选择的,如果早一点这么选择,我也不会耽搁一天时候就找原因
三、问题待续
有时间再写..........
解决Elasticsearch问题的一些心得体会的更多相关文章
- 十天来学习java的心得体会
有关学习java是几天来的心得体会: 十天学习java遇到很多问题,每个问题都是经过反复的看书本以及上网查找资料来解决的,发现这一点真的需要自己来而不是去遇到什么问题就去依靠他人(师兄.同学).在其中 ...
- AngularJS心得体会
AngularJS早些时候有过了解,知道这是一个JS的MVC框架,同类型的框架还有Backbone等.这次是由于项目需要,学习了两天的Angular后开始着手改之前的项目代码,这里大概说一下这一周学习 ...
- 部署maven的一些要点、遇到的问题和心得体会
maven的部署.遇到的问题和心得体会 2013-10-24 | 阅: 转: | 分享 部署maven的一些要点.遇到的问题和心得体会 (图片看不了,可以下载doc文件) 一. ...
- Salty Fish 结对学习心得体会及创意照 (20165211 20165208)
小组结对学习心得体会及创意照 在阅读了软件工程讲义 3 两人合作(2) 要会做汉堡包和现代软件工程讲义 3 结对编程和两人合作后,加之对于这几周组队学习的感悟,我们对于组队学习的一些感悟和想法如下: ...
- Scrum培训心得体会
# Scrum培训心得体会 非常荣幸能够参加公司组织的这场为期两天的培训,赛宝的老师讲的非常好.通过这次学习,理解了当前最流行的Scrum开发框架,下面总结了我对Scrum的理解. ## scrum的 ...
- "亿家App"问卷调查分析结果及心得体会
一.问卷问题设计 调查背景:随着现代社会互联网的发展,基于家庭产生的服务项目也越来越多.为增加家庭之间的交流和互助,增加家庭内部.家庭与家庭之间的沟通互助,并利用互联网便捷交流的优势,使家庭在享受服务 ...
- IT增值服务实践心得体会:企业客户的钱比个人客户好赚得多
友情提示 本人喜欢直言不讳,不喜欢拐弯抹角.喜欢从客观和主观.自身和他人等多种角度去探讨问题.如有不当之处,欢迎吐槽. 若干心得体会1.企业客户的钱更好赚,个人客户的钱很难. 为什么这么说呢? a. ...
- Alpha版本后的心得体会
Alpha版本后的心得体会 在我们一系列的努力之下,我们团队打造的校园互助式快递代取APP——U-Help的α版本终于能够问世了.尽管这个版本存在着这样那样的问题,但是我们还是对此抱有充足的信心.另一 ...
- Git使用与心得体会
Git使用与心得体会 一.闲聊 闲暇时间学一下Git,也算是不用在网页端操作github了 二.Git相关 集中式与分布式 Git是一个分布式的版本控制系统,而传统的SVN则属于集中式 集中式与分布式 ...
随机推荐
- EOS 理解
1.通过石墨烯技术来解决延迟和吞吐量. 2.账户体系:账户是可读的唯一标识符,不是地址.可包含多对公私钥.账户有权限规划.权限有阈值,公私钥有权重,公私钥的权重大于等于阀值才能拥有该权限进行相应操作. ...
- map集合的见解、排序
map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等 HashMap:我们最常用的Map,它根据key的HashCode 值 ...
- mysql 导出数据时进行压缩
mysqldump < mysqldump options> | gzip > outputfile.sql.gz 例子: mysqldump -uroot -p your_data ...
- PTA (Advanced Level) 1006 Sign In and Sign Out
Sign In and Sign Out At the beginning of every day, the first person who signs in the computer room ...
- python学习: 优秀Python学习资源收集汇总--转
Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl ...
- java Multimap
实现 { "a": [ , , ], "b": [ , ] } 当然, HashMap<String, List<Integer>> 是 ...
- SpringMVC源码阅读系列汇总
1.前言 1.1 导入 SpringMVC是基于Servlet和Spring框架设计的Web框架,做JavaWeb的同学应该都知道 本文基于Spring4.3.7源码分析,(不要被图片欺骗了,手动滑稽 ...
- es6学习笔记2-—symbol、变量与作用域
1.新的字符串特性 标签模板: String.raw(callSite, ...substitutions) : string 用于获取“原始”字符串内容的模板标签(反斜杠不再是转义字符): > ...
- 装饰者模式的学习(c#)
案例转自https://www.cnblogs.com/stonefeng/p/5679638.html //主体基类 using System;using System.Collections.Ge ...
- 在WPF中实现平滑滚动
WPF实现滚动条还是比较方便的,只要在控件外围加上ScrollViewer即可,但美中不足的是:滚动的时候没有动画效果.在滚动的时候添加过渡动画能给我们的软件增色不少,例如Office 2013的滚动 ...