搭建 logstash 同步数据库

搭建 logstash 同步数据库

Linux 2023-08-29 23:52:15 1年以前

首先安装镜像  docker pull logstash:7.7.0

如何配合其它ES,kibanas,使用的话需要版本一致

首先创建本地目录 /sh/config-mysql 方便维护用来配置mysql

然后建立建立镜像 docker run -d --name=logstash --restart=always -p 5044:5044 -v /sh/config-mysql:/config-mysql -m 1024m logstash:7.7.0

注:-v /sh/config-mysql:/config-mysql 本地mysql目录映射docker容器目录

logstash容器编辑配置文件 /usr/share/logstash/config/logstash.yml

http.host: "0.0.0.0"
xpack.management.enabled: false
xpack.monitoring.elasticsearch.hosts: [ "http://你需要连接的的IP:9200" ]
path.config: /config-mysql/mysql.conf

#注:这里是我的mysql配置

接下来可以配置 /config-mysql/mysql.conf 同步配置了

input {
    # beats {
    #     port => 5044
    # }
    jdbc {
        jdbc_driver_library => "/config-mysql/mysql-connector-j-8.0.33.jar" #插件百度下
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
        jdbc_connection_string => "jdbc:mysql://172.17.0.1:3306/数据库名称?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
        jdbc_user => "数据库用户名"
        jdbc_password => "数据库密码"
        jdbc_paging_enabled => true
        jdbc_page_size => 1000
        jdbc_default_timezone =>"Asia/Shanghai"
        use_column_value => true
        tracking_column => "id"
        #追踪字段的类型,目前只有数字(numeric)和时间类型(timestamp),默认是数fvz字类型 "timestamp"
        #tracking_column_type=>"timestamp"
        record_last_run=>true
        last_run_metadata_path => "/config-mysql/demo.yml" #同步记录
        # 首次同步完整,后期可以单独过滤下条件,字段需要加上索引
        #DAY 天   HOUR  小时
        statement => "MYSQL语句"
        # 设置定时任务间隔  含义:分、时、天、月、年,全部为*默认含义为每分钟跑一次任务
        schedule => "*/30 * * * *"
    }
}

output {
    elasticsearch {
        #hosts => ["127.0.0.1:9200","127.0.0.2:9200"]
        hosts => ["127.0.0.1:9200"]
        index => "myik"
        document_id => "%{id}"
	document_type => "_doc"
        template_name => "myik"
        template => "/config-mysql/logstash-ik.json" #同步过去ES使用的模版
        template_overwrite => true
	manage_template =>true
    }
    stdout {
        codec => json_lines
    }
}

配置同步跟ik自定义模板,如果不生效删除原来默认的,在测试。

docker logs -f --tail 20 logstash 查看日志 来发现报错信息

特别要注意数据库是否有访问权限,插件是否完整大小,各IP访问是否畅通。

文章版权声明:除非注明,否则均为网络转载文章,转载或复制请以超链接形式并注明出处。

最新资讯

热门资讯