首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Logstash设置为Mysql,托管在AWS RDS上。连不上

将Logstash设置为Mysql,托管在AWS RDS上。连不上
EN

Stack Overflow用户
提问于 2020-04-06 01:14:23
回答 1查看 988关注 0票数 1

我有一个托管在AWS上的MySQL DB。我在本地运行ElasticSearch,并使用Logstash从AWS上的MYSQL服务器检索数据,然后将数据推送到我的ElasticSearch DB。

问题是,我的logstash文件没有正确设置,我猜:

代码语言:javascript
复制
input {
    jdbc {
        jdbc_connection_string => "jdbc:mysql://aws.ffffffffff.us-east-1.rds.amazonaws.com:3306/dbName?user=userName&password=pword"
        jdbc_user => "user"
        jdbc_password => "pword"
        schedule => "* * * * *"
        jdbc_validate_connection => true
        jdbc_driver_library => "C:\Program Files (x86)\MySQL\Connector J 8.0\mysql-connector-java-8.0.19.jar"
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
        statement => "SELECT * from data-5"
        type => "data-5"
        tags => ["data-5"]
    }

    jdbc {
        jdbc_connection_string => "jdbc:mysql://aws.ffffffffff.us-east-1.rds.amazonaws.com:3306/dbName?user=userName&password=pword"
        jdbc_user => "user"
        jdbc_password => "pword"
        schedule => "* * * * *"
        jdbc_validate_connection => true
        jdbc_driver_library => "C:\Program Files (x86)\MySQL\Connector J 8.0\mysql-connector-java-8.0.19.jar"
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
        statement => "SELECT * from data-4"
        type => "data-4"
        tags => ["data-4"]
    }

    jdbc {
        jdbc_connection_string => "jdbc:mysql://aws.ffffffffff.us-east-1.rds.amazonaws.com:3306/dbName?user=userName&password=pword"
        jdbc_user => "user"
    jdbc_password => "pword"
    schedule => "* * * * *"
        jdbc_validate_connection => true
        jdbc_driver_library => "C:\Program Files (x86)\MySQL\Connector J 8.0\mysql-connector-java-8.0.19.jar"
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
        statement => "SELECT * from data-3"
        type => "data-3"
        tags => ["data-3"]
    }
}
output {
    stdout { codec => json_lines }

    if "data-5" in [tags] {
        elasticsearch {
            hosts => ["http://127.0.0.1:9200/"]
            index => "data-5"
            document_type => "data-%{+YYYY.MM.dd}"
        }
    }

    if "data-4" in [tags] {
        elasticsearch {
            hosts => ["http://127.0.0.1:9200/"]
            index => "data-4"
            document_type => "data-%{+YYYY.MM.dd}"
        }
    }

    if "data-3" in [tags] {
        elasticsearch {
            hosts => ["http://127.0.0.1:9200/"]
            index => "data-3"
            document_type => "data-%{+YYYY.MM.dd}"
        }
    }
}

这是编程中有趣的部分,对吗?

总之,在本地,我在windows上,因为您可以从文件路径中得知jdbc驱动程序库。我与AWS RDS的jdbc连接是从AWS控制台复制和粘贴的,因此不涉及打字。

有人告诉我,我只需要将jdbc://附加到url。但是,在AWS控制台中,我有什么要做的吗?我需要修改我的RDS实例吗?

顺便说一下,错误是:

代码语言:javascript
复制
 Unable to connect to database. Tried 1 times 
{:error_message=>"Java::ComMysqlCjJdbcExceptions::CommunicationsException: 
Communications link failure\n\n
The last packet sent successfully to the server was 0 milliseconds ago. 
The driver has not received any packets from the server."
EN

回答 1

Stack Overflow用户

发布于 2020-06-02 17:05:02

我也遇到了类似的问题,SSL没有启用通信。因此,AWS RDS不允许连接。

我为JDBC连接字符串指定了额外的查询param useSSL=false,并解决了问题。

因此,在您的示例中,jdbc_connection_string如下所示:

代码语言:javascript
复制
"jdbc:mysql://aws.ffffffffff.us-east-1.rds.amazonaws.com:3306/dbName?useSSL=false&user=userName&password=pword"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61051599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档