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 要一致

 

结束!!!

posted @ 2021-05-25 20:27  采采卷耳&不盈倾筐  阅读(74)  评论(0编辑  收藏  举报