linux 安装 Logtash 同步mysql数据到Elasticsearch
官网下载Logtash 离线安装包
下载地址
https://www.elastic.co/cn/downloads/logstash 需要注意版本与es 对应
新建配置文件
新建文件夹
mkdir logtashconf
创建两个文件
touch jdbc.conf #logtash 启动配置
touch jdbc.sql # logtash 执行的sql文件
jdbc.conf配置如下
input {
stdin {
}
jdbc {
# mysql jdbc connection string to our backup databse 后面的ktsee对应mysql中的test数据库
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/testes?useUnicode=true&characterEncoding=utf-8&useSSL=false"
# the user we wish to excute our statement as
jdbc_user => "root"
jdbc_password => "123456"
# the path to our downloaded jdbc driver 这里需要设置正确的mysql-connector-java-5.1.38.jar路径,找不到可以从网上下载后放在配置路径中
jdbc_driver_library => "/home/es/logstash/mysql-connector-java-5.1.41.jar"
# the name of the driver class for mysql
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
# 以下对应着要执行的sql的绝对路径
statement_filepath => "/home/es/logstash/esandmysql/jdbc.sql"
# 定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
# 设定ES索引类型
type => "ktsee_type"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
elasticsearch {
#ESIP地址与端口
hosts => "127.0.0.1:9200"
#ES索引名称(自己定义的)
index => "emp"
#自增ID编号
document_id => "%{id}"
}
stdout {
#以JSON格式输出
codec => json_lines
}
}
需要注意几点
数据库连接串
数据库地址
es地址,如果是同一台机器,不可配置实际ip否则联不通
jdbc.sql配置如下
配置 jdbc.sql这里测试,只写了一条sql
运行logtash
./logstash -f /home/es/logstash/esandmysql/jdbc.conf
可以看到控制台打印了sql语句和查询到的结果集
使用kibana查看结果(kibana安装配置请看上一篇)
注:emp 同logtash配置文件中的index 要一致
结束!!!