1. logstash 下载地址:
https://www.elastic.co/cn/downloads/logstash
2. 设置mysql数据源 创建mysql文件夹
3. 创建sqlConfig文件夹,创建一个sql文件,查询你需要数据sql语句,可以单表也可以多表等等。
4. 导入数据过滤 并转发至es .conf文件
input {
stdin {
}
jdbc {
# 数据库连接地址
jdbc_connection_string => "jdbc:mysql://localhost:3306/你的数据库?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false"
# mysql 用户
jdbc_user => "root"
jdbc_password => "root"
# mysql 导入引入的jar包
jdbc_driver_library => "./mysql/mysql-connector-java-8.0.26.jar"
# mysql 驱动
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
jdbc_paging_enabled => "true"
#处理中文乱码问题
codec => plain { charset => "UTF-8"}
#使用其它字段追踪
use_column_value => false
#时区
jdbc_default_timezone => "Asia/Shanghai"
#追踪的字段
#tracking_column => createtime
#record_last_run => true
jdbc_paging_enabled => "true"
jdbc_page_size => "10000"
#不转换小写
lowercase_column_names => "false"
#以下对应着要执行的sql的绝对路径。
statement_filepath => "E:\logstash\logstash-7.7.1\mysql\sqlConfig\你写的单表或者多表查询语句.sql"
#定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
#schedule => "* * * * *"
#设定ES索引名称
type => "index_name"
}
}
#sql文件查询出来的数据可以根据需求过滤
filter {
json {
source => "message"
remove_field => ["message"]
}
mutate {
remove_field => ["@version"]
remove_field => ["message"]
remove_field => ["@timestamp"]
}
}
#输出至你的es
output {
if [type]=="index_name" {
elasticsearch {
#ESIP地址与端口
hosts => ["http://127.0.0.1:9200"]
#ES索引名称(自己定义的)
index => "index_name"
#自增ID编号
document_id => "%{id}"
#指定自定义es Mapping模板
#template => "E:\elasticsearch\logstash-6.2.4\mysqlTools\template\xx.json"
}
}
stdout {
#以JSON格式输出
codec => json_lines
}
}
6. 运行命令
在这一层文件夹下打开cmd,输入:
xx.conf 就可以运行了