0. 准备MySQL的驱动
下载并拷贝mysql-connector-java-5.1.44-bin.jar到"/Elastic/logstash-6.0.0-beta2/lib/mysqldriver/mysql-connector-java-5.1.44-bin.jar"
1. logstash配置文件 mysql.conf
input {
jdbc {
jdbc_driver_library => "/Elastic/logstash-6.0.0-beta2/lib/mysqldriver/mysql-connector-java-5.1.44-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://es:3306/forelk?autoReconnect=true&useSSL=false"
jdbc_user => "root"
jdbc_password => "root"
schedule => "* * * * *"
jdbc_default_timezone => "Asia/Shanghai"
statement => "SELECT * FROM elktable;"
}
}
output {
elasticsearch {
index => "elkdb"
document_type => "elktable"
document_id => "%{elkid}"
hosts => ["es:9200"]
}
}
2. 参数配置说明:
dbc_driver_library:
数据库驱动路径,这里我填写的是绝对路径,可自行尝试相对路径;
jdbc_driver_class:
驱动名称;
jdbc_connection_string:
数据库的连接字符串;
forelk为数据库名;
?autoReconnect=true&useSSL=false自动重连并禁用SSL;
jdbc_user:
数据库用户名;
jdbc_password:
数据库密码;
schedule:
重复执行导入任务的时间间隔;
jdbc_default_timezone:
默认时区设置;
statement:
导入的表(查询SQL,可以过滤数据)
index:
索引名称(类似数据库名称);
document_type:
类型名称(类似数据库表名);
document_id:
类似主键;
hosts:
要导入到的Elasticsearch所在的主机;
3. 执行导入
cd bin
./logstash -f mysql.conf
4.执行查询
http://es:5601 ->Dev Tools -> GET elkdb/_search
5.准备mysql数据,建库forelk 建表elktable
CREATE DATABASE `forelk` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
CREATE TABLE `elktable` (
`elkid` int(11) NOT NULL,
`elkname` varchar(45) COLLATE utf8_bin DEFAULT NULL,
`elkage` int(11) DEFAULT NULL,
`elksex` tinyint(4) DEFAULT NULL,
`elkbirth` date DEFAULT NULL,
PRIMARY KEY (`elkid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO `forelk`.`elktable`
(`elkid`,
`elkname`,
`elkage`,
`elksex`,
`elkbirth`)
VALUES
(111,
aa,
11,
1,
2006);
INSERT INTO `forelk`.`elktable`
(`elkid`,
`elkname`,
`elkage`,
`elksex`,
`elkbirth`)
VALUES
(222,
bb,
22,
0,
1995);
下载并拷贝mysql-connector-java-5.1.44-bin.jar到"/Elastic/logstash-6.0.0-beta2/lib/mysqldriver/mysql-connector-java-5.1.44-bin.jar"
1. logstash配置文件 mysql.conf
input {
jdbc {
jdbc_driver_library => "/Elastic/logstash-6.0.0-beta2/lib/mysqldriver/mysql-connector-java-5.1.44-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://es:3306/forelk?autoReconnect=true&useSSL=false"
jdbc_user => "root"
jdbc_password => "root"
schedule => "* * * * *"
jdbc_default_timezone => "Asia/Shanghai"
statement => "SELECT * FROM elktable;"
}
}
output {
elasticsearch {
index => "elkdb"
document_type => "elktable"
document_id => "%{elkid}"
hosts => ["es:9200"]
}
}
2. 参数配置说明:
dbc_driver_library:
数据库驱动路径,这里我填写的是绝对路径,可自行尝试相对路径;
jdbc_driver_class:
驱动名称;
jdbc_connection_string:
数据库的连接字符串;
forelk为数据库名;
?autoReconnect=true&useSSL=false自动重连并禁用SSL;
jdbc_user:
数据库用户名;
jdbc_password:
数据库密码;
schedule:
重复执行导入任务的时间间隔;
jdbc_default_timezone:
默认时区设置;
statement:
导入的表(查询SQL,可以过滤数据)
index:
索引名称(类似数据库名称);
document_type:
类型名称(类似数据库表名);
document_id:
类似主键;
hosts:
要导入到的Elasticsearch所在的主机;
3. 执行导入
cd bin
./logstash -f mysql.conf
4.执行查询
http://es:5601 ->Dev Tools -> GET elkdb/_search
5.准备mysql数据,建库forelk 建表elktable
CREATE DATABASE `forelk` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
CREATE TABLE `elktable` (
`elkid` int(11) NOT NULL,
`elkname` varchar(45) COLLATE utf8_bin DEFAULT NULL,
`elkage` int(11) DEFAULT NULL,
`elksex` tinyint(4) DEFAULT NULL,
`elkbirth` date DEFAULT NULL,
PRIMARY KEY (`elkid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO `forelk`.`elktable`
(`elkid`,
`elkname`,
`elkage`,
`elksex`,
`elkbirth`)
VALUES
(111,
aa,
11,
1,
2006);
INSERT INTO `forelk`.`elktable`
(`elkid`,
`elkname`,
`elkage`,
`elksex`,
`elkbirth`)
VALUES
(222,
bb,
22,
0,
1995);