m0_60461532 2022-10-15 19:24 采纳率: 75%
浏览 23
已结题

logstash运行报错NameError: cannot link Java class

问题遇到的现象和发生背景

大数据采集课程使用ELK工具中logstash的报错

用代码块功能插入代码,请勿粘贴截图

用终端运行logstash后报错
如下是我logstash想要运行的.conf文件
input {
jbdc{
jdbc_connection_string => "jdbc:mysql://localhost:3306/lab4"
jdbc_user => "root"
jdbc_password => "g"
jdbc_validate_connection => true
jdbc_driver_library => "D:\ELK\logstash-5.6.16\logstash-5.6.16\mysqltest\mysql-connector-java-8.0.22.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
statement_filepath => "D:\ELK\logstash-5.6.16\logstash-5.6.16\mysqltest\test4.sql"
schedule => "* * * * *"
}
}

filter{
json{
source => "message"
remove_field => ["message"]
}
}
output {
elasticswarch {
hosts =>"http://localhost:9200"
index =>"index_test"
document_type => "_doc"
}
}

运行结果及报错内容

D:\ELK\logstash-5.6.16\logstash-5.6.16\bin>java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

D:\ELK\logstash-5.6.16\logstash-5.6.16\bin>logstash.bat
NameError: cannot link Java class org.apache.logging.log4j.core.config.LoggerConfig needs Java 8 (java.lang.UnsupportedClassVersionError: org/logstash/log/LogstashLogEventFactory : Unsupported major.minor version 52.0)
get_proxy_or_package_under_package at org/jruby/javasupport/JavaUtilities.java:54
method_missing at file:/D:/ELK/logstash-5.6.16/logstash-5.6.16/vendor/jruby/lib/jruby.jar!/jruby/java/java_package_module_template.rb:14
Logging at D:/ELK/logstash-5.6.16/logstash-5.6.16/logstash -core/lib/logstash/logging/logger.rb:10
LogStash at D:/ELK/logstash-5.6.16/logstash-5.6.16/logstash -core/lib/logstash/logging/logger.rb:5
(root) at D:/ELK/logstash-5.6.16/logstash-5.6.16/logstash -core/lib/logstash/logging/logger.rb:4
require at org/jruby/RubyKernel.java:1040
(root) at D:/ELK/logstash-5.6.16/logstash-5.6.16/logstash -core/lib/logstash/util/loggable.rb:1
require at org/jruby/RubyKernel.java:1040
(root) at D:/ELK/logstash-5.6.16/logstash-5.6.16/logstash -core/lib/logstash/util/loggable.rb:2
require at org/jruby/RubyKernel.java:1040
(root) at D:/ELK/logstash-5.6.16/logstash-5.6.16/logstash -core/lib/logstash/settings.rb:1
require at org/jruby/RubyKernel.java:1040
(root) at D:/ELK/logstash-5.6.16/logstash-5.6.16/logstash -core/lib/logstash/settings.rb:2
require at org/jruby/RubyKernel.java:1040
(root) at D:\ELK\logstash-5.6.16\logstash-5.6.16\lib\bootstrap\environment.rb:70

我的解答思路和尝试过的方法

报错说是连接不上java 网上查询后有一条一模一样的问题,但是他是说jdk的版本不对要1.8以上的,然而我的jdk是1.8.0_201,并且我尝试换1.8.X其他版本的jdk后仍然这样报错。

我想要达到的结果

能够通过logstash将mysql或者csv文件传输到我的es上(能让我的logstash运行起来也好.)

  • 写回答

1条回答 默认 最新

  • IT民工金鱼哥 运维领域新星创作者 2022-10-17 14:33
    关注

    查了官网了,是只能使用1.8 的JDK,你1.8 的版本,是支持的啦。

    img


    然后看报错,是说你的JAVA 版本不支持?

    img

    奇怪,按道理是支持才对,上一下你的Logstash配置文件,还有,环境变量是设置正确的吧(这个很重要)?
    再有,你还是别部署 这么旧的版本啊。。。起码都玩 7 的版本。。。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月26日
  • 已采纳回答 10月18日
  • 创建了问题 10月15日

悬赏问题

  • ¥15 memory.limit()' is no longer supported
  • ¥15 基于stm32f4产生两路pwm信号并可由串口通信调节
  • ¥15 C++/QT设置函数调用条件(多个功能调用同一,且各自调用条件不同)
  • ¥15 UE5样条线生成的网格UV问题
  • ¥15 如何用最短的时间大致看懂springboot+vue的项目
  • ¥15 (有偿)懂数值分析和含时变参数微分方程的来
  • ¥15 abaqus随机生成二维颗粒
  • ¥15 安装ansys许可证管理器时出现了这个问题,如何解决?
  • ¥100 高价求算法,利用智能手机传感器计算车辆的三轴g值
  • ¥15 uni-app开发APP运行到浏览器访问接口跨域