安装LogStash以及同步mysql数据

接上文安装Elasticsearch

1. 准备

cd /home/elk/
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.13.3-linux-x86_64.tar.gz
tar -xf logstash-7.13.3-linux-x86_64.tar.gz --strip-components 1 -C logstash

./bin/logstash-plugin list
#查看已安装的插件是否有 logstash-input-jdbc 和 logstash-output-elasticsearch
#如果没有,请使用如下方式安装,若已安装,请忽略
./bin/logstash-plugin install logstash-input-jdbc
./bin/logstash-plugin install logstash-output-elasticsearch

#下载连接器
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-8.0.26.tar.gz
tar -xf mysql-connector-java-8.0.26.tar.gz

2.配置

2.1配置 config/jvm.options
#配置可参考上文的相同配置
-Xms512m
-Xms512m
2.2配置mysql的同步规则
vim config/mysql_dbname_tbname1.conf
#填入以下内容,保存
input{
	jdbc{
        #前面下载的,注意配置实际的存放位置
		jdbc_driver_library=>"/home/elk/logstash/mysql-connector-java-8.0.26/mysql-connector-java-8.0.26.jar"
        jdbc_driver_class=>"com.mysql.jdbc.Driver"
        jdbc_connection_string=>"jdbc:mysql://127.0.0.1:3306/dbname"
        #连接mysql的用户名
        jdbc_user=>"mysql_user_name"
        #连接mysql的用户密码
        jdbc_password=>"mysql_user_passwd"
        #类似 crontab 的调度,分 时 年 月 周,这里是没分钟调用一次
        schedule=>"* * * * *"
        #要执行的 sql,以 “:” 开头是定义的变量,可以通过 parameters 来设置变量,这里的 sql_last_value 是内置的变量,表示上一次 sql 执行中 mtime 的值,这里 mtime 条件是 >= 因为时间有可能相等,没有等号可能会漏掉一些增量
        statement=>"SELECT * FROM table_name WHERE mtime >= :sql_last_value"
        #使用递增列
        use_column_value=>true
        #递增字段的名称,这里使用 update_time 这一列,这列的类型是 timestamp
        tracking_column=>"mtime"
        #递增字段的类型,numeric 表示数值类型, timestamp 表示时间戳类型
        tracking_column_type=>"timestamp"
        #同步点文件,这个文件记录了上次的同步点,重启时会读取这个文件,这个文件可以手动修改
        last_run_metadata_path=>"syncpoint_table"
	}
}

output{
    elasticsearch{
        hosts=>"127.0.0.1:9200"
        template_overwrite=>true
        template=>"/home/elk/logstash/template/dbname_tbname.json"
    }
	#elasticsearch{
	#	#ES的IP地址及端口
    #    hosts=>["127.0.0.1:9200"]
    #    #索引名称可自定义
    #    index=>"table_name"
    #    #需要关联的数据库中有有一个id字段,对应类型中的id
    #    document_id=>"%{id}"
    #    document_type=>"_doc"
	#}
    stdout{
		#JSON格式输出
        codec=>json_lines
	}
}

#若有多张表需要同步,则采用和上面一样的规则,在编辑一个conf文件,注意修改其中的标红字段,如:
#vim config/mysql_dbname_tbname2.conf

3. 启动

3.1 单个启动
./bin/logstash -f config/mysql_dbname_tbname1.conf
#或者使用
./bin/logstash -f config/
3.2 若有多个表需要同步,采用批量启动
#首先配置 config/pipelines.yml
vim config/pipelines.yml
- pipeline.id: tablename1
  path.config: "/home/elk/logstash/config/mysql_dbname_tbname1.conf"
- pipeline.id: tablename2
  path.config: "/home/elk/logstash/config/mysql_dbname_tbname2.conf"

#启动
./bin/logstash
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值