-
下载logstash-6.3.2的tar包和mysql-connector-java-5.1.31的jar包。
https://elasticsearch.cn/download/
https://mvnrepository.com/artifact/mysql/mysql-connector-java -
切到/usr/local目录下,上传logstash-6.3.2的tar包,解压tar包。
cd /usr/local/
tar -zxvf logstash-6.3.2.tar.gz
- 切到/usr/local/logstash-6.3.2目录下,上传mysql-connector-java-5.1.31的jar包。
cd /usr/local/logstash-6.3.2/
- 切到/usr/local/logstash-6.3.2/config目录下,创建mysql.conf文件,编辑文件。
cd /usr/local/logstash-6.3.2/config/
touch mysql.conf
vim mysql.conf
mysql.conf的内容
input {
# 多张表的同步只需要设置多个jdbc的模块就行了
jdbc {
# 驱动
jdbc_driver_library => "/usr/local/logstash-6.3.2/mysql-connector-java-5.1.31.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.jdbc.Driver"
# mysql 数据库链接
jdbc_connection_string => "jdbc:mysql://数据库的IP:3306/数据库名?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
# 用户名和密码
jdbc_user => "xxxxxx"
jdbc_password => "xxxxxx"
#设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
#清空上次的sql_last_value记录
clean_run => true
#直接执行sql语句
statement =>"SELECT * FROM 表名 WHERE update_time > :sql_last_value AND update_time < NOW() ORDER BY update_time DESC"
}
}
output {
elasticsearch {
#es的ip和端口
hosts => ["http://es的ip:9200"]
#ES索引名称
index => "xxx"
#设置数据的id为数据库中的字段
document_id => "%{id}"
}
}
- 切到/usr/local/kibana-6.3.2/bin目录下,启动logstash。
cd /usr/local/logstash-6.3.2/bin/
./logstash -f ../config/mysql.conf