
正文
Logstash 安装及简单实用(同步MySql数据到Elasticsearch)(Linux)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
1、下载logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.6.0.tar.gz
2. 解压logstash
tar -zxvf logstash-6.6.0.tar.gz
3. 在logstash 目录创建 mysql 文件夹
[root@VM_0_17_centos logstash-6.6.]# mkdir mysql
4. 将 mysql 驱动文件和数据库查询文件 放进mysql中
5. 在config 目录下创建 mysqltoes.conf 文件
6. mysqltoes.conf 配置
input {
# 多张表的同步只需要设置多个jdbc的模块就行了
jdbc {
# mysql 数据库链接,shop为数据库名
jdbc_connection_string => "jdbc:mysql://ip:3306/mall?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
# 用户名和密码
jdbc_user => "root"
jdbc_password => ""
# 驱动
jdbc_driver_library => "/usr/local/logstash-6.6.0/mysql/mysql-connector-java-8.0.16.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.jdbc.Driver"
#是否分页
jdbc_paging_enabled => "true"
jdbc_page_size => ""
#直接执行sql语句
# statement =>"select * from t_item"
# 执行的sql 文件路径+名称
statement_filepath => "/usr/local/logstash-6.6.0/mysql/item.sql"
# 默认列名转换为小写
lowercase_column_names => "false"
#设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
# 索引类型
#type => "jdbc"
}
}
output {
elasticsearch {
#es的ip和端口
hosts => ["http://ip:9200"]
#ES索引名称(自己定义的)
index => "mall"
#文档类型
document_type => "mall_item"
#设置数据的id为数据库中的字段
document_id => "%{iteId}"
}
stdout {
codec => json_lines
}
}
7. 启动 logstash
前台启动:
[root@VM_0_17_centos bin]# ./logstash -f ../config/mysqltoes.conf
后台启动:
[root@VM_0_17_centos bin]# nohup ./logstash -f ../config/mysqltoes.conf >logstash.log &
启动成功






