暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Elasticsearch运维篇_ES启动失败常见问题及解决办法整理

原创 尚雷 2023-05-09
14787

一、前言

近期接手生产Elasticsearch运维,为更好的掌握Elasticsearch的相关知识,也是在测试环境先搭建了EK(Elasticsearch-Kibana)集群用于学习,在初期安装部署中也是遇到一系列Elasticsearch相关问题,为此对遇到的问题及解决办法进行整理,后续还会对此块内容进行更新补充。

二、Elasticsearch介绍

1、Elasticsearch是搜索引擎

Elasticsearch在搜索引擎数据领域长期排名第一,Elasticsearch内核基于Lucene构建,支持全文搜索。Elasticsearch支持全文搜索,但在很多项目组中常被用于精确查询加速,查询条件多、速度快且可以任意组合,有些甚至常用Elasticsearch做Redis、Hbase等数据库的二级索引。

2、Elasticsearch是数据库

Elasticsearch不属于关系型数据库,其内部更新采用乐观锁、也无关系型数据库的ACID事务特性。Elasticsearch使用JSON格式承载数据模型,更类似文档数据库,相较于MongoDB,其更擅长基于查询搜索的分析型数据库。

三、Elasticsearch常用领域

1、全文检索

对比传统的Solr,Elasticsearch也是基于Lucene实现,是对Lucene进行二次封装,对Lucene调用进行了优化,但Elasticsearch更重量级,在分布式场景中表现更优。
Elasticsearch支持文件的上传、下载,可根据关键字搜索出相关文件。

2、应用查询

Elasticsearch擅长查询,这得益于其倒排索引核心算法,相较于基于B-Tree类型数据库查询性能更优,尤其是在数据量很大时,检索效率非常明显。

3、大数据应用

在大数据领域,Elasticsearch应用非常广泛,是大数据对外提供查询重要组成部分。Elasticsearch在大数据分析领域提供基于列示存储数据聚合、所支持的聚合功能甚多、且性能优异。

4、日志检索

作为ELK(Elasticsearch-Logstash-Kibana)日志检索三剑客之一,Elasticsearch起步于全文检索,加之其分布式架构特性,尤其适用海量日志快速检索。

5、监控领域

》Elasticsearch利用其倒排索引核心算法,加之日益强大的Elastic Stack生态圈,Elasticsearch也是支持众多时序数据场景,且性能不输众多时序数据库,所以使用Elasticsearch相关监控也是很好的选择。

6、人工智能-机器学习

今年来AI人工智能风头强劲,尤其是chatGPT推出以来,人工智能更是在众多领域广泛应用,Elasticsearch从6.3版本推出机器学习的功能,随着Elasticsearch版本的发展,其机器学习功能也更加强大,能高效提高检测数据质量,减少人力成本。

四、常见启动故障及解决办法

本部分总结了Elasticsearch常见启动故障及相应解决办法,后续会逐步更新本部分内容。

1、java.nio.file.AccessDeniedException故障及处理办法

**问题原因:

由于权限问题导致启动失败,原因是我在elasticsearch/conf/elasticsearch.yml中设置了path.data和path.logs,ES启动建议使用普通用户启动,root权限过大,初期未给path.data和path.logs设置普通用户属组,导致启动失败。

解决办法:

给path.data和path.logs设置普通用户属组。

报错日志:

[root@node1 bin]# su es
[es@node1 bin]$ cd /usr/local/elasticsearch/bin
[es@node1 bin]$ ./elasticsearch
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
./elasticsearch: line 70: -Xms8g -Xmx8g: command not found
Exception in thread "main" java.lang.NullPointerException
        at java.base/java.util.Objects.requireNonNull(Objects.java:221)
        at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:178)
        at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
        at java.base/java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet.lambda$entryConsumer$0(Collections.java:1574)
        at java.base/java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1746)
        at java.base/java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator.forEachRemaining(Collections.java:1599)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.substitutePlaceholders(JvmOptionsParser.java:185)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:133)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:86)
[es@node1 bin]$
[es@node1 bin]$
[es@node1 bin]$
[es@node1 bin]$ ./elasticsearch
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
2023-04-19 13:57:10,610 main ERROR Unable to create file /elk/logs/elk-cluster_deprecation.log java.io.IOException: Permission denied
        at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.base/java.io.File.createNewFile(File.java:1024)
        at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:733)
        at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:716)
        at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:114)
        at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100)
        at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:217)
        at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:146)
        at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:62)
        at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1120)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1045)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1037)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:247)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
        at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
        at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:302)
        at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:222)
        at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:118)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:369)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)
 
2023-04-19 13:57:10,614 main ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@3fa2213] unable to create manager for [/elk/logs/elk-cluster_deprecation.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@3e7634b9[pattern=/elk/logs/elk-cluster_deprecation-%i.log.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[SizeBasedTriggeringPolicy(size=1073741824)]), strategy=DefaultRolloverStrategy(min=1, max=4, useMax=true), advertiseURI=null, layout=[%d{ISO8601}][%-5p][%-25c{1.}] [%node_name] [%product_origin]%marker %m%n, filePermissions=null, fileOwner=null]] java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@3fa2213] unable to create manager for [/elk/logs/elk-cluster_deprecation.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@3e7634b9[pattern=/elk/logs/elk-cluster_deprecation-%i.log.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[SizeBasedTriggeringPolicy(size=1073741824)]), strategy=DefaultRolloverStrategy(min=1, max=4, useMax=true), advertiseURI=null, layout=[%d{ISO8601}][%-5p][%-25c{1.}] [%node_name] [%product_origin]%marker %m%n, filePermissions=null, fileOwner=null]]
        at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:116)
        at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100)
        at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:217)
        at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:146)
        at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:62)
        at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1120)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1045)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1037)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:247)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
        at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
        at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:302)
        at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:222)
        at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:118)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:369)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)
 
2023-04-19 13:57:10,615 main ERROR Unable to invoke factory method in class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender
        at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:236)
        at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:134)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1120)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1045)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1037)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:247)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
        at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
        at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:302)
        at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:222)
        at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:118)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:369)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)
 
2023-04-19 13:57:10,627 main ERROR Unable to create file /elk/logs/elk-cluster_server.json java.io.IOException: Permission denied
        at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.base/java.io.File.createNewFile(File.java:1024)
        at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:733)
        at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:716)
        at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:114)
        at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100)
        at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:217)
        at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:146)
        at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:62)
        at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1120)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1045)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1037)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:247)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
        at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
        at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:302)
        at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:222)
        at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:118)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:369)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)
复制

2、BindTransportException故障及处理办法

问题原因:

该问题由于在elasticsearch/config/elasticsearch.yml设置了network.host: 192.168.0.0,导致无法分配请求的地址。

解决办法:

修改network.host:本机IP地址,如network.host:192.168.17.36,每台es服务器elasticsearch.yml的network.host要对应本机的IP地址。

报错日志:

[2023-04-19T14:04:43,766][INFO ][o.e.n.Node               ] [node1] initialized
[2023-04-19T14:04:43,766][INFO ][o.e.n.Node               ] [node1] starting ...
[2023-04-19T14:04:43,774][INFO ][o.e.x.s.c.f.PersistentCache] [node1] persistent cache index loaded
[2023-04-19T14:04:43,775][INFO ][o.e.x.d.l.DeprecationIndexingComponent] [node1] deprecation component started
[2023-04-19T14:04:43,949][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [node1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: BindTransportException[Failed to bind to 192.168.0.0:[9300-9400]]; nested: BindException[Cannot assign requested address];
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:173) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112) ~[elasticsearch-cli-7.17.9.jar:7.17.9]
        at org.elasticsearch.cli.Command.main(Command.java:77) ~[elasticsearch-cli-7.17.9.jar:7.17.9]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) ~[elasticsearch-7.17.9.jar:7.17.9]
Caused by: org.elasticsearch.transport.BindTransportException: Failed to bind to 192.168.0.0:[9300-9400]
        at org.elasticsearch.transport.TcpTransport.bindToPort(TcpTransport.java:450) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.transport.TcpTransport.bindServer(TcpTransport.java:411) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.transport.netty4.Netty4Transport.doStart(Netty4Transport.java:140) ~[?:?]
        at org.elasticsearch.xpack.core.security.transport.netty4.SecurityNetty4Transport.doStart(SecurityNetty4Transport.java:96) ~[?:?]
        at org.elasticsearch.xpack.security.transport.netty4.SecurityNetty4ServerTransport.doStart(SecurityNetty4ServerTransport.java:59) ~[?:?]
        at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:48) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.transport.TransportService.doStart(TransportService.java:318) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:48) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.node.Node.start(Node.java:1175) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:335) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:443) ~[elasticsearch-7.17.9.jar:7.17.9]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169) ~[elasticsearch-7.17.9.jar:7.17.9]
        ... 6 more
Caused by: java.net.BindException: Cannot assign requested address
        at sun.nio.ch.Net.bind0(Native Method) ~[?:?]
        at sun.nio.ch.Net.bind(Net.java:461) ~[?:?]
        at sun.nio.ch.Net.bind(Net.java:453) ~[?:?]
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227) ~[?:?]
        at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134) ~[?:?]
        at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562) ~[?:?]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334) ~[?:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506) ~[?:?]
        at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491) ~[?:?]
        at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973) ~[?:?]
        at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260) ~[?:?]
        at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356) ~[?:?]
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[?:?]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) ~[?:?]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[?:?]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[?:?]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
uncaught exception in thread [main]
BindTransportException[Failed to bind to 192.168.0.0:[9300-9400]]; nested: BindException[Cannot assign requested address];
Likely root cause: java.net.BindException: Cannot assign requested address
        at java.base/sun.nio.ch.Net.bind0(Native Method)
        at java.base/sun.nio.ch.Net.bind(Net.java:461)
        at java.base/sun.nio.ch.Net.bind(Net.java:453)
        at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227)
        at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
        at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
        at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
        at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
        at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260)
        at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at java.base/java.lang.Thread.run(Thread.java:834)
For complete error details, refer to the log at /elk/logs/elk-cluster.log
[2023-04-19T14:04:44,798][INFO ][o.e.n.Node               ] [node1] stopping ...
[2023-04-19T14:04:44,809][INFO ][o.e.n.Node               ] [node1] stopped
[2023-04-19T14:04:44,810][INFO ][o.e.n.Node               ] [node1] closing ...
[2023-04-19T14:04:44,820][INFO ][o.e.n.Node               ] [node1] closed
[2023-04-19T14:04:44,822][INFO ][o.e.x.m.p.NativeController] [node1] Native controller process has stopped - no new native processes can be started
复制

**3、memory locking requested for elasticsearch process but memory is not locked故障及处理办法
**报错原因:

请求内存锁定,但内存未锁定导致,此问题和参数配置有关。
我在部署了ES后,希望通过服务的方式来启停es,创建了服务配置文件,内容如下:

cat > /usr/lib/systemd/system/elasticsearch.service << EOF
[Unit]
Description=Elasticsearch
Wants=network-online.target
After=network-online.target

[Service]
User=es
Group=es

ExecStart=/usr/local/elasticsearch/bin/elasticsearch
ExecReload=/bin/kill -HUP \$MAINPID
LimitNOFILE=65535
KillMode=process
Restart=no-failure

[Install]
WantedBy=multi-user.target
EOF
复制

然后执行如下命令:

[root@node1 bin]# /bin/systemctl daemon-reload
[root@node1 bin]# /bin/systemctl enable elasticsearch.service
[root@node1 bin]# /bin/systemctl start elasticsearch.service
复制

但在启动时报内存未锁定,启动失败。

**解决办法:

我首先尝试修改了elasticsearch/config下jvm.options文件,将-Xms4g及-Xmx4g取消前面注释,然后重新启动es服务,依然报同样错误。
后来查阅网上资料,修改/usr/lib/systemd/system/elasticsearch.service配置文件,在[Service]块中设置LimitMEMLOCK=infinity,此步骤操作后需要重新执行/bin/systemctl daemon-reload,然后启动es服务,这次启动成功。

报错日志:

[2023-04-19T14:29:17,769][INFO ][o.e.n.Node               ] [192.168.17.36] initialized
[2023-04-19T14:29:17,769][INFO ][o.e.n.Node               ] [192.168.17.36] starting ...
[2023-04-19T14:29:17,776][INFO ][o.e.x.s.c.f.PersistentCache] [192.168.17.36] persistent cache index loaded
[2023-04-19T14:29:17,777][INFO ][o.e.x.d.l.DeprecationIndexingComponent] [192.168.17.36] deprecation component started
[2023-04-19T14:29:17,880][INFO ][o.e.t.TransportService   ] [192.168.17.36] publish_address {192.168.17.36:9300}, bound_addresses {192.168.17.36:9300}
[2023-04-19T14:29:18,017][INFO ][o.e.b.BootstrapChecks    ] [192.168.17.36] bound or publishing to a non-loopback address, enforcing bootstrap checks
[2023-04-19T14:29:18,022][ERROR][o.e.b.Bootstrap          ] [192.168.17.36] node validation exception
[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: memory locking requested for elasticsearch process but memory is not locked
[2023-04-19T14:29:18,026][INFO ][o.e.n.Node               ] [192.168.17.36] stopping ...
[2023-04-19T14:29:18,045][INFO ][o.e.n.Node               ] [192.168.17.36] stopped
[2023-04-19T14:29:18,045][INFO ][o.e.n.Node               ] [192.168.17.36] closing ...
[2023-04-19T14:29:18,057][INFO ][o.e.n.Node               ] [192.168.17.36] closed
[2023-04-19T14:29:18,058][INFO ][o.e.x.m.p.NativeController] [192.168.17.36] Native controller process has stopped - no new native processes can be started
复制

五、总结

本次操作主要是基于Elasticsearch 7在Rocky 8操作系统上安装部署启动时所遇到的问题。
作为Elasticsearch日常运维管理的一部分,后续会根据日常生产及测试中的经验总结更多Elasticsearch相关知识进行输出,敬请期待。
千里之行,始于足下。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论

目录
  • 一、前言
  • 二、Elasticsearch介绍
    • 1、Elasticsearch是搜索引擎
    • 2、Elasticsearch是数据库
  • 三、Elasticsearch常用领域
    • 1、全文检索
    • 2、应用查询
    • 3、大数据应用
    • 4、日志检索
    • 5、监控领域
    • 6、人工智能-机器学习
  • 四、常见启动故障及解决办法
    • 1、java.nio.file.AccessDeniedException故障及处理办法
    • 2、BindTransportException故障及处理办法
  • 五、总结