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 &

启动成功

原文地址:https://www.cnblogs.com/zyulike/p/11491971.html