Linux运维知识之linux上Elasticsearch 安装配置、网页访问
小标 2018-09-18 来源 : 阅读 1078 评论 0

摘要:本文主要向大家介绍了Linux运维知识之linux上Elasticsearch 安装配置、网页访问,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

本文主要向大家介绍了Linux运维知识之linux上Elasticsearch 安装配置、网页访问,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

一、ElasticSearch简述

    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题以及可能出现的更多其它问题。

二、今天折腾了一天终于搞定了ElasticSearch在linux上的安装,结果我在安装ElasticSearch的时候遇到了下面的一系列问题,现在写下来让自己记住,经常翻看,希望也能帮到你们。

1.运行环境: 

redhat6.5 
elasticsearch-2.4.0 
jdk1.8.31(我虚拟机的jdk版本)

1.把在官网下载的elasticsearch-2.4.0.tar.gz的安装包,我把解压后得到的elasticsearch-2.4.0放了/opt/elasticsearch下。

2.然后我就使用命令启动elasticsearch: 

报错:[root@localhost bin]# ./elasticsearch 
[2017-07-09  11:52:59,903][WARN ][bootstrap ] jvm uses the client vm, make sure to run java with the server vm for best performance by adding -server to the command line 
Exception in thread “main” java.lang.RuntimeException: Java version: Oracle Corporation 1.7.0_51 [Java HotSpot(TM) Client VM 24.51-b03] suffers from critical bug https://bugs.openjdk.java.net/browse/JDK-8024830 which can cause data corruption. 
Please upgrade the JVM, see 
//www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html for current recommendations. 
If you absolutely cannot upgrade, please add -XX:-UseSuperWord to the JAVA_OPTS environment variable.
Upgrading is preferred, this workaround will result in degraded performance. 
at org.elasticsearch.bootstrap.JVMCheck.check(JVMCheck.java:123) 
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:268) 
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
Refer to the log for complete error details.

大意是: 1.7.0_51遭受来自这个网站https://bugs.openjdk.java.net/browse/JDK-8024830的攻击,它会使数据丢失,需要升级JVM或者添加 -XX:-UseSuperWord to the JAVA_OPTS environment variable.我升级JDK到1.8.31版本。重新启动,结果又报新的错误,

Exception in thread “main” java.lang.RuntimeException: don‘t run elasticsearch as root. 
at.org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) 
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144) 
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270) 
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
Refer to the log for complete error details.

解决了jdk的问题现在又蹦出来另一个问题。这个异常的意思是用root用户是不能直接运行elasticsearch的,后来我想起我还有一个的用户,于是就又换了个test的用户:su test。用test用户再次启动。


结果还是报了下面的异常:

[root@localhost bin]# su test
[test@localhost bin]$ ./elasticsearch 
log4j:ERROR setFile(null,true) call failed. 
java.io.FileNotFoundException: /opt/elasticsearch/logs/elasticsearch.log (Permission denied) 
at java.io.FileOutputStream.open0(Native Method) 
at java.io.FileOutputStream.open(FileOutputStream.java:270) 
at java.io.FileOutputStream.(FileOutputStream.java:213) 
at java.io.FileOutputStream.(FileOutputStream.java:133) 
at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) 
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) 
at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223) 
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) 
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) 
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) 
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) 
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) 
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648) 
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514) 
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440) 
at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128) 
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243) 
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
log4j:ERROR Either File or DatePattern options are not set for appender [file]. 
log4j:ERROR setFile(null,true) call failed. 
java.io.FileNotFoundException: /opt/elasticsearch/logs/elasticsearch.log(Permission denied) 
at java.io.FileOutputStream.open0(Native Method) 
at java.io.FileOutputStream.open(FileOutputStream.java:270) 
at java.io.FileOutputStream.(FileOutputStream.java:213) 
at java.io.FileOutputStream.(FileOutputStream.java:133) 
at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) 
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) 
at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223) 
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) 
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) 
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) 
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) 
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) 
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672) 
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516) 
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440) 
at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128) 
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243) 
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
log4j:ERROR Either File or DatePattern options are not set for appender [deprecation_log_file]. 
log4j:ERROR setFile(null,true) call failed. 
java.io.FileNotFoundException:/opt/elasticsearch/logs/elasticsearch.log (Permission denied) 
at java.io.FileOutputStream.open0(Native Method) 
at java.io.FileOutputStream.open(FileOutputStream.java:270) 
at java.io.FileOutputStream.(FileOutputStream.java:213) 
at java.io.FileOutputStream.(FileOutputStream.java:133) 
at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) 
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) 
at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223) 
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) 
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) 
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) 
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) 
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) 
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672) 
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516) 
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440) 
at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128) 
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243) 
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
log4j:ERROR Either File or DatePattern options are not set for appender [index_indexing_slow_log_file]. 
log4j:ERROR setFile(null,true) call failed. 
java.io.FileNotFoundException: /opt/elasticsearch/logs/elasticsearch.log/logs/elasticsearch_index_search_slowlog.log (Permission denied) 
at java.io.FileOutputStream.open0(Native Method) 
at java.io.FileOutputStream.open(FileOutputStream.java:270) 
at java.io.FileOutputStream.(FileOutputStream.java:213) 
at java.io.FileOutputStream.(FileOutputStream.java:133) 
at org.apache.log4j.FileAppender.setFile(FileAppender.java:294) 
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165) 
at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223) 
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) 
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) 
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) 
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) 
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) 
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672) 
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516) 
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440) 
at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128) 
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243) 
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
log4j:ERROR Either File or DatePattern options are not set for appender [index_search_slow_log_file]. 
[2017-03-16 13:29:45,447][WARN ][bootstrap ] unable to install syscall filter: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in 
Exception in thread “main” java.lang.IllegalStateException: Unable to access ‘path.plugins’ (/usr/local/es/elasticsearch-2.3.5/plugins) 
Likely root cause: java.nio.file.AccessDeniedException: /opt/elasticsearch/plugins 
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84) 
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) 
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) 
at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384) 
at java.nio.file.Files.createDirectory(Files.java:674) 
at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781) 
at java.nio.file.Files.createDirectories(Files.java:767) 
at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:337) 
at org.elasticsearch.bootstrap.Security.addPath(Security.java:314) 
at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:246) 
at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:212) 
at org.elasticsearch.bootstrap.Security.configure(Security.java:118) 
at org.elasticsearch.bootstrap.Bootstrap.setupSecurity(Bootstrap.java:196) 
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:167) 
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270) 
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
Refer to the log for complete error details.

我看了看这些异常,看的不大明白。但感觉根源问题还是用户启动权限哪儿出错了,于是就上网百度了一下解决的方案。看了一篇文章原来真的是用户的问题。Elasticsearch是需要一个专门的用户来管理它的。我依照上面文章的方法创建了一个专门管理elsearch的用户。最后从root切换到新创建的用户权限下去启动elsearch,最后成功启动。ES在linux上的安装、启动终于成功了,真是费劲周折。

test01[/syiptv]$curl -XGET 192.168.13.5:9201

{

  "name" : "hadoop2",

  "cluster_name" : "zjf",

  "version" : {

    "number" : "2.4.0",

    "build_hash" : "ce9f0c7394dee074091dd1bc4e9469251181fc55",

    "build_timestamp" : "2016-08-29T09:14:17Z",

    "build_snapshot" : false,

    "lucene_version" : "5.5.2"

  },

  "tagline" : "You Know, for Search"

}

总算安装成功了,接下来安装插件。

三、安装elasticsearch-head插件


从https://github.com/mobz/elasticsearch-head下载zip包解压至 /opt/elasticsearch/_plugins/head 目录

浏览器访问 //192.168.31.247:9200/_plugin/head/




四、安装bigdesk插件


从https://github.com/lukas-vlcek/bigdesk下载zip包解压至/usr/local/elasticsearch-1.7.3/_plugins/bigdesk/_site 目录

浏览器访问 //192.168.31.247:9200/_plugin/bigdesk




2. 集群配置



    单机多节点配置


elasticsearch集群配置比较简单,只需把每个节点的cluster name设置成相同的,es启动时会自动发现同一网段内相同cluster name的节点自动加入到集群中。




ps: 多台机器部署方式类似

把已经安装好插件的elasticsearch目录复制两份,分别命名为elasticsearch-2.4.0_node1 elasticsearch-2.4.0_node2elasticsearch-2.4.0_node3 按照上边的配置信息修改各个节点elasticsearch.yml配置文件

注意:配置文件 名称:【空格】参数 (不加空格会报错)

 

分别启动3个节点,浏览器访问 //192.168.31.247:9200/_plugin/head/


配置完成。


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程