logstash同步mysql数据到elasticsearch,动态模板

后台运行logstash

Last login: Thu Jul 23 17:50:26 2020
[root@localhost ~]# nohup  /home/essoft/logstash-6.8.0/bin/logstash  -f   /home/essoft/logstash-6.8.0/bin/mysql/allfiledtalentid.conf >/dev/null &

 

只是单纯的模板记录,各项属性待研究

input {
    stdin { }
    jdbc {
        type => "talent_all_type"
        
        #数据库地址
        
        # mysql 数据库链接,itv_web_log为数据库名
        jdbc_connection_string => "jdbc:mysql://192.168.0.100:3306/ztwbxwtest?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
        
        # 用户名和密码
        jdbc_user => "root"
        jdbc_password => "123456"
        
        # 驱动
        jdbc_driver_library => "/home/elksofts/logstash-6.8.0/bin/mysqlv1/mysql-connector-java-5.1.37.jar"
        
        # 驱动类名
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        
        
        #sql路径
        # 执行的sql 文件路径+名称
        statement_filepath => "/home/elksofts/logstash-6.8.0/bin/mysqlv1/allfiledtalentid.sql"
        
        
        #是否开启记录追踪
        record_last_run => "true"
        #是否需要追踪字段,如果为true,则需要指定tracking_column,默认是timestamp
        use_column_value => "true"
        #指定追踪的字段
        tracking_column => "f_talent_id"
        #追踪字段的类型,目前只有数字和时间类型,默认是数字类型
        #tracking_column_type => "timestamp"
        
        #设置时区
        #jdbc_default_timezone =>"Asia/Shanghai"
        
        #是否每次清除 last_run_metadata_path 的内容
        clean_run => "false"
        
        #这里可以手动设置:sql_last_value的值,默认时间是1970-01-01,默认数字是0
        #们只需要在 SQL 语句中 WHERE MY_ID > :last_sql_value 即可. 其中 :sql_last_value 取得就是该文件中的值
        last_run_metadata_path => "/home/elksofts/logstash-6.8.0/bin/mysqlv1/logstashrun/allfiledtalentid.txt"
        
        #多久同步一次
        schedule => "* * * * *"
        #是否分页
        jdbc_paging_enabled => "true"
        jdbc_page_size => "50000"
    }
    
    jdbc {
        type => "cv_talent_resume_jobs_type"
        
        #数据库地址
        
        # mysql 数据库链接,itv_web_log为数据库名
        jdbc_connection_string => "jdbc:mysql://192.168.0.100:3306/ztwbxwtest?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
        
        # 用户名和密码
        jdbc_user => "root"
        jdbc_password => "123456"
        
        # 驱动
        jdbc_driver_library => "/home/elksofts/logstash-6.8.0/bin/mysqlv1/mysql-connector-java-5.1.37.jar"
        
        # 驱动类名
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        
        
        #sql路径
        # 执行的sql 文件路径+名称
        statement_filepath => "/home/elksofts/logstash-6.8.0/bin/mysqlv1/cv_talent_resume_jobs.sql"
        
        
        #是否开启记录追踪
        record_last_run => "true"
        #是否需要追踪字段,如果为true,则需要指定tracking_column,默认是timestamp
        use_column_value => "true"
        #指定追踪的字段
        tracking_column => "f_ctj_id"
        #追踪字段的类型,目前只有数字和时间类型,默认是数字类型
        #tracking_column_type => "timestamp"
        
        #设置时区
        #jdbc_default_timezone =>"Asia/Shanghai"
        
        #是否每次清除 last_run_metadata_path 的内容
        clean_run => "false"
        
        #这里可以手动设置:sql_last_value的值,默认时间是1970-01-01,默认数字是0
        #们只需要在 SQL 语句中 WHERE MY_ID > :last_sql_value 即可. 其中 :sql_last_value 取得就是该文件中的值
        last_run_metadata_path => "/home/elksofts/logstash-6.8.0/bin/mysqlv1/logstashrun/cv_talent_resume_jobs.txt"
        
        #多久同步一次
        schedule => "* * * * *"
        #是否分页
        jdbc_paging_enabled => "true"
        jdbc_page_size => "50000"
    }
}
filter {
    # json {
    #     source => "message"
    #     remove_field => ["message"]
    # }
    


    mutate {
        #指定要删除的字段         
        #remove_field => "tempid"
        #remove_field => "f_ctr_talentId"
        #remove_field => "f_ctj_resumeId"
        #remove_field => "f_ctre_resumeId"
        #remove_field => "f_ctrp_resumeId"
        #remove_field => "f_ctrs_resumeId"
        
        #merge => {"author"  => ["name","price"]}
    }
    
 
}
output {
         
    #stdout {
    #    codec =>  rubydebug
    #}
    
    if[type] == "talent_all_type"{
        elasticsearch {
            hosts => ["http://192.168.0.101:9200/"]
            index => "talent_all"
            upsert => "update"
            document_id => "%{f_talent_id}"
            
            manage_template => true
            template_overwrite => true
            template_name => "talent_allfiled"
            template => "/home/elksofts/logstash-6.8.0/bin/mysqlv1/personalset/cv_talent_allfiled_template.json"
        }
    }
    
    if[type] == "cv_talent_resume_jobs_type"{
        elasticsearch {
            hosts => ["http://192.168.0.101:9200/"]
            index => "resume_jobs"
            upsert => "update"
            document_id => "%{f_ctj_id}"
            
            manage_template => true
            template_overwrite => true
            template_name => "cv_talent_resume_jobs_template"
            template => "/home/elksofts/logstash-6.8.0/bin/mysqlv1/personalset/cv_talent_resume_jobs_template.json"
        }
    }
}

 

 

======

cv_talent_allfiled_template.json

{
    "settings":{
        "number_of_shards": 3,
        "number_of_replicas": 0
    },
    "template": "talent_all",    
    "mappings": {
        "doc": {
          "dynamic_templates": [
            {
              "integers": {
                "match_mapping_type": "long",
                "mapping": {
                  "type": "integer"
                }
              }
            },
            {
              "strings": {
                "match_mapping_type": "string",
                "mapping": {
                  "type": "text",
                  "analyzer": "ik_max_word",
                  "fields": {
                    "keyword": {
                      "type": "keyword",
                      "ignore_above": 256
                    }
                  }
                }
              }
            }
          ]
        }
    }
}

=====

cv_talent_resume_jobs_template.json

{
    "settings":{
        "number_of_shards": 3,
        "number_of_replicas": 0
    },
    "template": "resume_jobs",    
    "mappings": {
        "doc": {
          "dynamic_templates": [
            {
              "integers": {
                "match_mapping_type": "long",
                "mapping": {
                  "type": "integer"
                }
              }
            },
            {
              "strings": {
                "match_mapping_type": "string",
                "mapping": {
                  "type": "text",
                  "analyzer": "ik_max_word",
                  "fields": {
                    "keyword": {
                      "type": "keyword",
                      "ignore_above": 256
                    }
                  }
                }
              }
            }
          ]
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值