使用logstash Elasticsearch输出插件错误:NameError:找不到SSLConnectionSocketFactory

时间:2017-12-19 22:04:24

标签: mysql elasticsearch search logstash

我正在尝试使用logstash版本将数据从MySQL导入Elasticsearch。

使用的软件版本:

  • Java / JRE 1.8
  • Elasticsearch 6.1.0
  • Logstash 6.1.0

我的内容如下:

file:simple-out.conf

input {
    jdbc {
        # MySQL jdbc connection string to our database, mydb
        jdbc_connection_string => "jdbc:mysql://valid/validDBNAME?useSSL=false"
        # The user we wish to execute our statement as
        jdbc_user => "MY USER"
        jdbc_password => "MY PWD"
        # The path to our downloaded jdbc driver
        jdbc_driver_library => "C:\JavaDevelopment\TomcatServer\apache-tomcat-8.5.20\lib\mysql-connector-java-5.1.45-bin.jar"
        # The name of the driver class for Postgresql
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        # our query
        statement => "SELECT * from testtable"
        jdbc_paging_enabled => "true"
        jdbc_page_size => "50000"
    }
}
output {
    stdout { codec => json_lines }
    elasticsearch {     
        hosts => "http://localhost:9200"
        index => "test-migrate" 
        document_type => "data" 
    }
}

当我运行logstash时,我收到以下错误:

[2017-12-19T16:50:08,055][ERROR][logstash.pipeline        ] Pipeline aborted due to error {:pipeline_id=>"main", :exception=>#<NameError: SSLConnectionSocketFactory not found ERROR 

请建议如何解决这个问题。 感谢

2 个答案:

答案 0 :(得分:0)

尝试将httpclient-VERSION.jarhttpcore-VERSION.jar个文件添加到LOGSTASH_HOME/vendor/jruby/lib/文件夹。

答案 1 :(得分:0)

我遇到了同样的问题,解决方法是:
将我的计算机属性中的环境变量中的LOGSTASH_HOME变量路径添加到C:\ some_path \ logstash-6.3.0
然后将这些文件添加到C:\ some_path \ logstash-6.3.0 \ logstash-core \ lib \ jars

文件:
httpclient-4.5.2.jar
log4j-1.2.17.jar
httpcore-VERSION.jar

这是因为logstash并不随ssl jar文件一起提供,您需要将其添加到jar文件夹并设置环境,以便logstash可以读取那些jar文件
并尝试使用gitbash而不是cmd或powershell!
并尝试关闭并重新启动logstash和elasticsearch
点击此链接,查看哪个索引即将加入Elasticsearch。
http://localhost:9200/_cat/indices?v 如果您在差异上运行。端口,请更改端口号



其他提示
在jdk 10.x上对我不起作用,因此请使用jdk 8.x
甚至安装程序都无法工作,所以即使解压缩文件并在bin文件夹中运行elasticsearch.bat和logstash -f cong_filepath \ configfile.config
Windows用户可以在路径顶部输入cmd
请确保MySQL正在服务器上运行(并不意味着打开)
学习@ https://www.elastic.co/blog/logstash-jdbc-input-plugin




以后自行解决:
打开logstash / bin文件夹,然后右键单击和gitbash(需要git)
键入“ vi log”,然后按Tab 3次,直到显示所有logstahsh文件
将出现一个新行,键入“ vi logstash”,然后按Enter键打开源文件

您将拥有理解流程的代码,..如果仔细看一下,Logstash_home和javacmd(在底部)对于执行jar很重要,则应将javacmd设置为jdk8.x的env变量中的java_home变量,并且Logstash_home具有jar的路径目录,请更改它或将jar放入此文件夹。
希望这会有所帮助!