• 【最新】 ELK之 logstash 同步数据库数据到Elasticsearch


    cd /usr/local
    

      

    下载logstash 6.4.3版本

    wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.3.tar.gz
    

      

    解压

    tar -zxvf  logstash-6.4.3.tar.gz
    

      

    下载input和output插件

    cd logstash-6.4.3
    
    bin/logstash-plugin install logstash-input-jdbc
    
    bin/logstash-plugin install logstash-output-elasticsearch
    

      

    新建logstash.conf

    vi /usr/local/logstash-6.4.3/config/logstash.conf
    

      

    内容输入案例

    input {
      jdbc {
        jdbc_driver_library => "/usr/local/sql/mysql-connector-java-5.1.46.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        jdbc_connection_string => "jdbc:mysql://localhost:3306/test"
        jdbc_user => "root"
        jdbc_password => "root"
        schedule => "* * * * *"
        statement => "SELECT * FROM user WHERE update_time >= :sql_last_value"
        use_column_value => true
        tracking_column_type => "timestamp"
        tracking_column => "update_time"
        last_run_metadata_path => "syncpoint_user"
      }
    }
    
    
    output {
        elasticsearch {
            # ES的IP地址及端口
            hosts => ["172.31.73.140:9200","172.31.73.140:9201"]
            # 索引名称 可自定义
            index => "user"
            # 需要关联的数据库中有有一个id字段,对应类型中的id
            document_id => "%{user_id}"
            document_type => "user"
        }
        stdout {
            # JSON格式输出
            codec => json_lines
        }
    }
    

      

    注意:这里边需要先安装下mysql-connector-java-5.1.46.jar包,存放到以上指定位置

    配置pipelines.yml

    vi /usr/local/logstash-6.4.3/config/pipelines.yml
    

      

    在文件底部添加

    - pipeline.id: user
      path.config: "/usr/local/logstash-6.4.3/config/logstash.conf"

      

    启动logstash

    cd /usr/local/logstash-6.4.3
    
    ./bin/logstash -f
    

      

      

    命令行启动(-e的意思允许命令行启动)

    bin/logstash -e 'input { stdin {} } output { stdout {} }'
    

      

    启动后输入hello world

    logstash 默认读取文件位置为

    /usr/local/logstash-6.4.3/config/pipelines.yml
    

      

    当然,你也可以新建文件 启动时候指定一下

    ./bin/logstash -f filename
    

      

    命令行参数解释

    -e 执行一段字符串脚本
    -f 或–config 指定配置, logstash -f /etc/logstash.d/会自动读取该目录下所有文件文本,拼接成完整的大配置,各小配置会以字母排序加载,因此最后以数字编号方式命令配置文件
    -t 测试配置文件是否能正常解析
    -l或–log ,logstash默认输出日志到标准错误。该选项可指定日志输出位置,如 bin/logstash -l logs/logstash.log
    –pipeline-workers或-w, 运行filter和output的pipline线程数量,默认是cpu核数
    –pipeline-batch-size或-b, 每个logstash pipline线程,在执行具体filter和output函数之前,最多能累积的日志条数,默认125条,越大性能越好,消耗jvm内存也越大
    –pipline-batch-delay或-u, 每个线程在打包批量日志的时候,最多等到几毫秒,默认5ms
    –pluginpath或-P, bin/logstash –pluginpath /path/to/own/plugins加载插件
    –verbose, 输出一定调试日志
    –debug输出更多调试日志
    

      

    启动自动配置加载

    bin/logstash -f first-pipeline.conf --config.reload.automatic
    

     --config.reload.automatic选项的意思是启用自动配置加载,以至于每次你修改完配置文件以后无需停止然后重启Logstash

    &符号 保证关闭当前窗口程序依旧运行

    bin/logstash  &
    

      

  • 相关阅读:
    装饰器的初识
    闭包
    匿名函数lambda
    内置函数Ⅱ
    Java生鲜电商平台-API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)
    Java生鲜电商平台-电商中"再来一单"功能架构与详细设计(APP/小程序)
    Java生鲜电商平台-商品中心的架构设计与源码解析(小程序/APP)
    Java生鲜电商平台-生鲜电商小程序如何做好代码设计?(微信小程序/APP)
    Java生鲜电商平台-生鲜电商订单结算系统的深入解析与反思总结
    Java生鲜电商平台-生鲜电商高并发下的接口幂等性实现与代码讲解
  • 原文地址:https://www.cnblogs.com/wbl001/p/11625814.html
Copyright © 2020-2023  润新知