修改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