第一步下载不写版本默认最新的

docker pull elasticsearch

 

第二步启动

docker run -it --name elasticsearch -d -p 9200:9200 -p 9300:9300 -p 5601:5601 elasticsearch

-p 5601:5601 是kibana的端口地址 (我这里kibana的container共用elasticsearch的网络,所以这样设置

第三步进行访问:注如果访问不到确认防火墙是否关闭  ----可以使用命令关闭:systemctl stop firewalld.service

http://192.168.74.110:9200/

显示下面json说明安装成功

{
  "name" : "Rouw414",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "8NafzKJGT5e9URHk1bf1nA",
  "version" : {
    "number" : "5.6.12",
    "build_hash" : "cfe3d9f",
    "build_date" : "2018-09-10T20:12:43.732Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

 

 

 

安装Kibana

docker run -it -d -e ELASTICSEARCH_URL=http://127.0.0.1:9200 --name kibana --network=container:elasticsearch kibana

测试运行结果

http://192.168.74.110:5601/app/kibana

 

 

以上但基本安装成功

 

现在需要做到---logstash mysql 同步到 elasticsearch

Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地

1.上传logstash-6.4.3.tar.gz到服务中 -----这个可以自行百度搜索下载

2.tar –zxvf  logstash-6.4.3.tar.gz

3.cd logstash-6.4.3

4. bin/logstash-plugin install logstash-input-jdbc      --还需要安装一下两个插件

5. bin/logstash-plugin install logstash-output-elasticsearch

 

然后上传需要同步mysql的配置文件  ---一个输入、一个输出需要配置你的数据库信息 上传到咱们安装好的logstash-6.4.3 目录中

mysql.conf 

input {
  jdbc {
    jdbc_driver_library => "/usr/local/sql/mysql-connector-java-5.1.46.jar"  #别忘记下载这个
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://192.168.74.110:3308/test"
    jdbc_user => "root"
    jdbc_password => "root"
    schedule => "* * * * *"
    statement => "SELECT * FROM user WHERE update_time >= :sql_last_value"
    use_column_value => true
    tracking_column_type => "timestamp"
    tracking_column => "update_time"
    last_run_metadata_path => "syncpoint_table"
  }
}


output {
    elasticsearch {
        # ES的IP地址及端口
        hosts => ["192.168.74.110:9200"]
        # 索引名称 可自定义
        index => "user"
        # 需要关联的数据库中有有一个id字段,对应类型中的id
        document_id => "%{id}"
        document_type => "user"
    }
    stdout {
        # JSON格式输出
        codec => json_lines
    }
}
 

成功之后咱们使用命令启动一下 

./bin/logstash -f mysql.conf 启动 你会发现报错了

因为上面的--/usr/local/sql/mysql-connector-java-5.1.46.jar 你没有、需要下载上传到 usr/local/sql目录下

在启动即可

看下我数据库的

 

 

上面玩着如果不给力 

现在教你如何搭建同步多个表 需要把第一次上传的配置文件在命名为2 修改对应的表 上传到usr/local即可

进入咱们安装的logstash-6.4.3 目录

cd /config/ 

vi pipelines.yml 这个配置 配置多表 写入如下配置

- pipeline.id: table1

  path.config: "usr/local/sql/mysql.conf " 

- pipeline.id: table2

  path.config: "usr/local/sql/mysql.conf 2"

 

./bin/logstash 启动完成 去ES中查询即可同步两张表成功

不想下载的 扣我要资料

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐