数据未与Elastic Search 6.5.1同步

时间:2018-11-30 12:45:18

标签: java mysql elasticsearch logstash

数据库Mysql

我已经链接了

https://www.elastic.co/blog/logstash-jdbc-input-plugin

ElasticSearch how to integrate with Mysql

配置文件

logstash-sample.conf

                # Sample Logstash configuration for creating a simple
                # Beats -> Logstash -> Elasticsearch pipeline.

                                            jdbc {
                jdbc_driver_library => "C:/logstash-6.5.1/logstash-core/lib/jars/x-pack-sql-jdbc-6.5.1.jar"
                jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
                jdbc_connection_string => "jdbc:mysql://localhost:3306/test"
                jdbc_user => "root"
                jdbc_password => ""
                statement => "SELECT * FROM persons"
                jdbc_paging_enabled => "true"
                jdbc_page_size => "50000"
                }

                }

                output{
                elasticsearch { codec => json hosts => ["localhost:9200"] index => "persons" }
                stdout { codec => rubydebug }
                }

数据库名称测试

数据表人员

索引人

日志

            C:\logstash-6.5.1\bin>logstash -f logstash-sample.conf
            Sending Logstash logs to C:/logstash-6.5.1/logs which is now configured via log4j2.properties
            [2018-11-30T18:10:52,868][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
            [2018-11-30T18:10:52,883][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"6.5.1"}
            [2018-11-30T18:10:53,550][INFO ][logstash.config.source.local.configpathloader] No config files found in path {:path=>"C:/logstash-6.5.1/bin/logstash-sample.conf"}
            [2018-11-30T18:10:53,559][ERROR][logstash.config.sourceloader] No configuration found in the configured sources.
            [2018-11-30T18:10:53,894][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

请求GET

http://localhost:9200/persons/_search/?pretty

            {
                "error": {
                    "root_cause": [
                        {
                            "type": "index_not_found_exception",
                            "reason": "no such index",
                            "resource.type": "index_or_alias",
                            "resource.id": "persons",
                            "index_uuid": "_na_",
                            "index": "persons"
                        }
                    ],
                    "type": "index_not_found_exception",
                    "reason": "no such index",
                    "resource.type": "index_or_alias",
                    "resource.id": "persons",
                    "index_uuid": "_na_",
                    "index": "persons"
                },
                "status": 404
            }

任何建议都是最欢迎的

2 个答案:

答案 0 :(得分:1)

好吧,因为您位于logstash/bin文件夹中,而logstash-sample.conf字段也位于logstash/config文件夹中,所以您需要像这样运行logstash:

C:\logstash-6.5.1\bin> logstash -f ../config/logstash-sample.conf
                                        ^
                                        |
                               add this relative path

答案 1 :(得分:0)

有效的解决方案

windows

  1. 错误的Jdbc路径。
  2. mysql驱动程序问题。

配置

                        jdbc {
                        jdbc_driver_library => "C:/logstash-6.5.1/logstash-core/lib/jars/x-pack-sql-jdbc-6.5.1.jar"
                        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
                        jdbc_connection_string => "jdbc:mysql://localhost:3306/test"
                        jdbc_user => "root"
                        jdbc_password => ""
                        statement => "SELECT * FROM persons"
                        jdbc_paging_enabled => "true"
                        jdbc_page_size => "50000"
                        }

                        }

                        output{
                        elasticsearch { codec => json hosts => ["127.0.0.1:9200:9200"] index => "persons" }
                        stdout { codec => rubydebug }
                        }

希望它可以帮助别人。