elasticsearch + logstash + kinaba 数据库自动同步es

1、前置准备

创建mysql.conf

input {
    stdin{
    }
    jdbc {
        # mysql 数据库连接
        jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/es?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC"
        jdbc_user => "root"
        jdbc_password => "root"
        # 驱动配置
        jdbc_driver_library => "/usr/local/data/logstash/driver/mysql-connector-java-8.0.19.jar"
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
        jdbc_paging_enabled => "true"
        jdbc_page_size => "50000"
        # 执行的sql文件
        statement_filepath => "/usr/local/data/logstash/mysqlconfig/blog.sql"
         # 设置监听 各字段含义 分 时 天 月  年 ,默认全部为*代表含义:每分钟都更新
        schedule => "* * * * *"
        # 索引类型
        type => "blog"
    }
}
 
 
output {
    elasticsearch {
        #es服务器
        hosts => ["localhost:9200"]
        # es索引名称
        index => "sl_blog"
        #id自增长
        document_id => "%{id}"
    }
    
    stdout {
        codec => json_lines
    }
}

 

创建blog.sql

select * from t_blog

 

将mysql驱动包添加到指定文件夹

/usr/local/data/logstash/driver/mysql-connector-java-8.0.19.jar

 

创建测试数据库

# 创建数据库
create database es;
use es;
# 创建表
CREATE TABLE `t_blog` (
  `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `title` varchar(32) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  `content` varchar(2000) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# 添加数据
INSERT INTO `t_blog` VALUES ('1', '中国', '2019-04-24 15:22:30', '中国当自强');
INSERT INTO `t_blog` VALUES ('2', 'myblog', '2019-04-24 15:22:50', 'my blog content');
INSERT INTO `t_blog` VALUES ('3', '上海', '2019-04-24 15:23:08', '中国上海');
INSERT INTO `t_blog` VALUES ('4', '成都', '2020-01-03 01:48:15', '四川省会');

 

2、执行

logstash -f ../mysql/mysql.conf

 

3、访问kinaba验证es数据

posted @ 2021-09-09 14:19  过期可乐  阅读(75)  评论(0编辑  收藏  举报