ES啟動失敗;java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.c


https://blog.csdn.net/qq_41725214/article/details/95904502?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-1.control

 

今天啟動Elasticsearch的時候,報了 如下錯誤(非root用戶啟動):

2019-07-14 05:40:06,326 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:229)
        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:958)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:898)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:890)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:513)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:237)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:249)
        at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545)
        at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:261)
        at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:166)
        at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:122)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:307)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134)
        at org.elasticsearch.cli.Command.main(Command.java:90)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2019-07-14 05:40:06,445 main ERROR Null object returned for RollingFile in Appenders.
2019-07-14 05:40:06,445 main ERROR Unable to locate appender "rolling" for logger config "root"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

首先想到的是,es要在在非root用戶狀態下啟動,但是我已經是在非root用戶狀態下了,檢查/logs/es-cluster.log的日志文件,發現都是以前的日志,沒有今天啟動的日志,然后查看logs目錄下的文件屬性,如下圖所示:
在這里插入圖片描述
這個es-cluster.log文件是屬於root的呀,怪不得非root用戶查看沒有今天的啟動日志。再回去看報錯信息,最后兩行說明報錯就是因為es-cluster.log文件的屬主為root引起的。

在root用戶下把es-cluster.log文件的屬主改為你要啟動es的用戶:

 chown ywq es-cluster.log
  • 1

在這里插入圖片描述
這時即可正常啟動es。

至於es-cluster.log為什么會變成root用戶下的,網上說是用root用戶登錄啟動es之后查看日志,導致elasticsearch.log的屬主變成了root。

解決方案:

root用戶 

chown elk:elk  elk目錄 -R


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM