windows下logstash同步mysql数据到elasticsearch中

1、自己安装elasticsearch(本人版本7.6);

2、安装数据现实化插件(elasticsearch-head获取kibana);

3、下载logstashs(我的版本7.7.0) 地址https://www.elastic.co/cn/downloads/logstash

4、下载mysql-connector-java(应该是驱动架包吧 不懂java不知道说得对不对)

地址 https://mvnrepository.com/artifact/mysql/mysql-connector-java

这个jar包要用maven或其他方式导入

然后放在logstash-7.0.0目录下(目录可以自定义)

5.添加logstash的bin目录下添加mysql_info.conf

6.编辑mysql_info.conf

input {
    stdin {
    }
    jdbc {
      # mysql数据库连接
      jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/fast?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
      # mysqly用户名和密码
      jdbc_user => "root"
      jdbc_password => ""
      # 驱动配置
      jdbc_driver_library => "D:\service\logstash-7.7.0\mysql\mysql-connector-java\8.0.20\mysql-connector-java-8.0.20.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      # 执行指定的sql文件
      #statement_filepath => "D:\service\logstash-7.7.0\mysql\sql\fa_search.sql"

     #执行的sql语句
       statement => "SELECT * FROM fa_search"
      # 设置监听 各字段含义 分 时 天 月  年 ,默认全部为*代表含义:每分钟都更新
      schedule => "* * * * *"
      # 索引类型
      #type => "blog"
    }
}


output {

    elasticsearch {
        #es服务器
        hosts => ["localhost:9200"]
        #ES索引名称
        index => "fa_search"
        #自增ID
        document_id => "%{id}"
    }
    

    stdout {
        codec => json_lines
    }
}

7、附上mysql表

CREATE TABLE `fa_search` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) CHARACTER SET utf8 NOT NULL,
  `content` text NOT NULL,
  `createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

8、利用php-elasticearch api 创建索引(要添加ik中文分词插件)

$params = [
            'index' => 'fa_search',
            'body' => [
                'settings' => [
                    'number_of_shards' => 1,
                    'number_of_replicas' => 0
                ],
                'mappings' => [
                    '_source' => [
                        'enabled' => true
                    ],
                    'properties' => [
                        'id' => [
                            'type' => 'keyword'
                        ],
                        'name' => [
                            'type' => 'text',
                            'analyzer' => 'ik_max_word'
                        ],
                        'content' => [
                            'type' => 'text',
                            'analyzer' => 'ik_max_word'
                        ],
                        'createtime' => [
                            'type' => 'date'
                        ]
                    ]
                ]
            ]
        ];

        $response = $this->client->indices()->create($params);
        var_dump($response);
        die;

9、最后启动logstash  -f mysql_info.conf

如有报错就查询报错信息解决

猜你喜欢

转载自blog.csdn.net/dw5235/article/details/106850232