在docker上ElasticSearch对接MySQL基本配置

首先得配置好自己的docker的国内云,不然得卡死
修改daemon配置文件/etc/docker/daemon.json 

{
  "registry-mirrors": ["https://wixr7yss.mirror.aliyuncs.com"]
}

重启daemon服务
systemctl daemon-reload
systemctl restart docker

这步不晓得干啥得,得先创建下,否则docker拉取得就是旧版本得elastic
docker network create somenetwork
开始安装,记得需要对应版本,否则会有各种异常:6.7.0对6.7.0
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.7.0
这边我用得是centos镜像,是logstash是安装本地的,通过-v命令共享到容器中
docker run -it --name logstashTest -v /opt/elastic/logstash-6.7.0:/opt/logstash-6.7.0 centos

安装好放置logstash的centos后,需要在容器中安装jdk否则无法运行服务,使用命令:
yum install java-1.8.0-openjdk-devel.x86_64 -y

配置logstash.conf
input {
    stdin {
    }
    jdbc {
      # mysql数据库连接
      jdbc_connection_string => "jdbc:mysql://134.175.147.107/pan_codetip_net?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC"
      # mysqly用户名和密码
      jdbc_user => "pan_codetip_net"
      jdbc_password => "E5RyaRGcw5ApmJBh"
      # 驱动配置
      jdbc_driver_library => "/opt/logstash-7.5.2/config/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      # 执行指定的sql文件
      statement => "select *from article"
      # 设置监听 各字段含义 分 时 天 月  年 ,默认全部为*代表含义:每分钟都更新
      schedule => "* * * * *"
      # 索引类型
      type => "itpan"
    }
}
 
filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}
 
output {

    elasticsearch {
        #es服务器
        hosts => ["134.175.147.107:9200"]
        #ES索引名称
        index => "nf_itpan"
        #自增ID
        document_id => "%{id}"
    }
    stdout {
        codec => json_lines
    }
}



之后进入容器,使用命令,开始运行,拉取我们的MySQL的数据到elasticsearch上:
cd logstash-6.7.0 && bin/logstash -f config/logstash.conf


本博客所有文章如无特别注明均为原创。作者:倪风复制或转载请以超链接形式注明转自 CodeTip技术博客
原文地址《在docker上ElasticSearch对接MySQL基本配置
分享到:更多

网友评论(0)