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.0]# 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 => "50000" #直接执行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 &
启动成功