logstash导入mysql数剧到elasticSearch

logstash 安装

下载logstash-6.6.0安装包,下载路径:logstash-6.6.0,然后解压之es的同级目录(方便管理);或直接在服务器上下载:

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

将安装包上次到服务器,然后解压安装包,例如解压到:/usr/local/

#解压安装包
tar –zxvf logstash-6.6.0.tar.gz 
#重命名安装目录
mv logstash-6.6.0 logstash

安装logstash-input-jdbc

安装logstash后通过命令安装logstash-input-jdbc插件

#进入logstash
cd /logstash-6.6.0/bin
#安装
./logstash-plugin install logstash-input-jdbc

在logstash-6.4.2/config文件夹下新建jdbc.conf,配置如下

input {
    jdbc {
        # mysql 数据库链接
        jdbc_connection_string => "jdbc:mysql://192.168.99.197:3306/kylwsp"
        # 用户名和密码
        jdbc_user => "root"
        jdbc_password => "123456"
        # 驱动, 下载地址: https://dev.mysql.com/downloads/connector/j/
        jdbc_driver_library => "/usr/local/logstash/logstash-6.6.0/lib/utils/mysql-connector-java-5.1.38.jar"
        # 驱动类名
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        # 开启分页查询
        jdbc_paging_enabled => "true"
        jdbc_page_size => "5000"
        # 执行sql的文件路径
         statement_filepath => "/usr/local/logstash/logstash-6.6.0/config/jdbc.sql"
        # 或直接执行的sql语句 (例如 mtime 字段为修改时间)
       # statement => "SELECT * FROM test WHERE ticket_time > :sql_last_value"
        # 设置监听间隔, 各字段含义(由左至右)分、时、天、月、年, 全部为*默认含义为每分钟都更新
        schedule => "* * * * *"
        # 索引类型 (同步多表时用来区分)
        type => "jdbc"
        # 是否将 column 名称转小写
        # lowercase_column_names => false
        # 是否清除 last_run_metadata_path 的记录, 如果为真, 那么每次都相当于从头开始查询所有的数据库记录
        clean_run => false
        record_last_run => "true"
        use_column_value => "true"
        tracking_column => "mtime"
        # 最后运行时保存 tracking_column 的文件路径
        last_run_metadata_path => "/usr/share/logstash/data/logstash-input-jdbc-last_run"
    }
}

filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
    date {
        match => ["ctime", "yyyy-MM-dd HH:mm:ss,SSS", "UNIX"]
        #match => ["ctime", "UNIX"] 或者这样
        target => "@timestamp"
        locale => "cn"
    }
}

output {
    elasticsearch {
        # ES的IP地址及端口
        hosts => ["localhost:9200"]
        # 索引名称
        index => "test"
        # 自增ID 需要关联的数据库中有有一个id字段,对应索引的id号
        document_id => "%{ticket_seq}"
    }
}

在logstash-6.4.2/config 目录下新建jdbc.sql文件

statement => "SELECT * FROM test WHERE ticket_time > :sql_last_value"

运行logstash

#进入
cd logstash-6.0.0
# 检查配置文件语法是否正确
bin/logstash -f config/jdbc.conf --config.test_and_exit
# 启动
bin/logstash -f config/jdbc.conf --config.reload.automatic
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值