2

之前在Windows上尝试过搭建ELK环境,并将MySQL或SQLServer中的数据导入到Elasticsearch中。现在用Docker提供的镜像可以快速的完成这一操作。

  • 环境说明
    系统:Windows 10 企业版
    MySQL:MySQL 5.7(官方下载链接
    MySQL驱动:mysql-connector-java-5.1.44-bin.jar(官方下载链接
    Docker for Windows:Docker Community Edition for Windows(Docker官网下载

    Docker详细版本

  • MySQL的安装与设置
    MySQL的安装与设置,请参照通过Logstash由MySQL和SQL Server向Elasticsearch导入数据
    需要注意的是:root的From Host需要设置为%,如下图:

    设置root的From Host为%

    否则,logstash连接数据库时会被拒绝连接。
    另外记得创建一个测试库和表,用于测试logstash的导入功能。

  • docker-compose.yml
    创建一个空的文件夹,用于存储用到的配置文件和驱动程序。如:C:\RunDocker\ELK(后面简称该文件夹
    然后在该文件夹下创建docker-compose.yml,并进行编辑,内容如下:

    version: "2.2"
    services:
     elasticsearch:
       image: elasticsearch
       ports: 
       - "9200:9200"
       - "9300:9300"
     kibana:
       image: kibana
       ports:
       - "5601:5601"
       links:
       - elasticsearch
       depends_on:
       - elasticsearch
     logstash:
       image: logstash
       links:
       - elasticsearch
       volumes:
       - ./:/configdir
       command: logstash -f /configdir/mysql.conf
       depends_on:
       - elasticsearch
    
  • mysql.conf
    该文件夹下创建mysql.conf,并进行编辑,内容如下:

    input {
       jdbc {
           jdbc_driver_library => "/configdir/mysql-connector-java-5.1.44-bin.jar"
           jdbc_driver_class => "com.mysql.jdbc.Driver"
           jdbc_connection_string => "jdbc:mysql://123.12.1.123:3306/forelk?autoReconnect=true&useSSL=false"
           jdbc_user => "root"
           jdbc_password => "123qwe4r"
           schedule => "* * * * *"
           jdbc_default_timezone => "Asia/Shanghai"
           statement => "SELECT * FROM elktable;"
       }
    }
    output {
       elasticsearch {
           index => "elkdb"
           document_type => "elktable"
           document_id => "%{elkid}"
           hosts => ["123.12.1.123:9200"]
       }
    }

    说明:
    IP123.12.1.123需要替换成你本地的IP;
    123qwe4r需要替换成你本地MySQL的密码;
    任务计划schedule => "* * * * *"的值根据自己的需求进行更改;

  • 驱动程序
    将下载好的驱动程序mysql-connector-java-5.1.44-bin.jar拷贝到该文件夹
  • 启动
    通过DockerKitematic左下角的DOCKER CLI启动PowerShell工具,然后进入到该文件夹,执行命令:docker-compose up即可看到Elasticsearch、Kibana、Logstash的容器依次启动。在PowerShell里可以看到导入数据的操作记录,如下图:

    导入数据的操作记录

    然后在本地服务器访问http://localhost:5601,在Dev Tools下执行查询命令,即可看到导入的结果,如下图:

    Kibana下的查询结果

如果遇到其他问题,请自行谷歌百度。
如需转载,请注明原文链接https://segmentfault.com/a/11...


Ably
603 声望44 粉丝

Let everything around us become better