Docker下logstash同步mysql和elasticsearch

1 配置elasticsearch环境

参考{% post_link ElasticSearch %}

2 搭建logstash环境

elasticsearch和logstash版本要一致

  1. 拉取镜像

    docker pull logstash:5.6.8
    
  2. 创建容器,同时映射文件夹,这样可以把文件同步到容器内

    将/home/docker/logstash/文件夹映射到/etc/logstash/pipeline目录下

    docker run -dit --name logstash -v /home/docker/logstash/:/etc/logstash/pipeline logstash:5.6.8
    
  3. 安装jdbc和elasticsearch插件

    通过docker exec -it logstash /bin/bash命令进入容器内,然后在下载插件

    进入bin目录,执行以下命令

    #下载jdbc插件
    logstash-plugin install logstash-input-jdbc
    #下载elasticsearch插件
    logstash-plugin install logstash-output-elasticsearch
    
  4. 下载mysql-connector-java的jar包,放在刚刚配置的映射/home/docker/logstash/文件夹中,同时在这个文件夹下创建mysql.conf配置文件,内容如下

    input {
    	jdbc {
    	# mysql jdbc connection string to our backup databse 后面的test对应mysql中的test数据库
    	jdbc_connection_string =>"jdbc:mysql://8.140.127.197:3306/tensquare_article?characterEncoding=UTF8"
    	# the user we wish to excute our statement as
    	jdbc_user => "root"
    	jdbc_password => "root"
    	#这个jar包的地址是容器内的地址
    	jdbc_driver_library => "/etc/logstash/pipeline/mysql-connector-java-5.1.47.jar"
    	# the name of the driver class for mysql
    	jdbc_driver_class => "com.mysql.jdbc.Driver"
    	jdbc_paging_enabled => "true"
    	jdbc_page_size => "50000"
    	#以下对应着要执行的sql的绝对路径。
    	statement => "select id,title,content from tb_article"
    	#定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
    	schedule => "* * * * *"
    	}
    }
    
    output {
    elasticsearch {
        #ESIP地址与端口
        hosts => "8.140.127.197:9200"
        #ES索引名称(自己定义的)
        index => "tensquare"
        #自增ID编号
        document_id => "%{id}"
        document_type => "article"
        }
        stdout {
        #以JSON格式输出
        codec => json_lines
        }
    }
    
  5. 执行,进行同步

    logstash -f /etc/logstash/pipeline/mysql.conf
    

报错问题

参考:https://blog.csdn.net/weixin_41676972/article/details/87773783

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker Compose是一个用于定义和管理多个Docker容器的工具。下面是关于如何使用Docker Compose安装MySQL、Redis、MongoDB、Zookeeper、Kafka、ElasticsearchLogstash和Kibana的简要说明。 首先,需要在机器上安装DockerDocker Compose。可以从Docker官方网站下载并按照说明进行安装MySQL:创建一个名为docker-compose.yml的文件并输入以下内容: ``` version: '3.1' services: mysql: image: mysql:latest restart: always environment: MYSQL_ROOT_PASSWORD: root ports: - 3306:3306 ``` 然后,在终端中导航到该文件所在的目录,并运行以下命令: ``` $ docker-compose up -d ``` Redis:创建一个名为docker-compose.yml的文件并输入以下内容: ``` version: '3.1' services: redis: image: redis:latest restart: always ports: - 6379:6379 ``` 然后,在终端中导航到该文件所在的目录,并运行以下命令: ``` $ docker-compose up -d ``` MongoDB:创建一个名为docker-compose.yml的文件并输入以下内容: ``` version: '3.1' services: mongo: image: mongo:latest restart: always ports: - 27017:27017 ``` 然后,在终端中导航到该文件所在的目录,并运行以下命令: ``` $ docker-compose up -d ``` Zookeeper、Kafka、ElasticsearchLogstash和Kibana:可以通过使用Docker Compose来配置和运行这些服务。需要为每个服务创建一个独立的配置文件,并在docker-compose.yml中引用这些配置文件。具体配置内容可以参考各自官方文档。 在终端中导航到docker-compose.yml文件所在的目录,并运行以下命令: ``` $ docker-compose up -d ``` 以上是使用Docker Compose来安装MySQL、Redis、MongoDB、Zookeeper、Kafka、ElasticsearchLogstash和Kibana的简要说明。根据每个服务的具体要求,可能需要进一步的配置和设置。请参考各自的官方文档以获取更详细的说明。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qnjy惊鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值