快捷搜索:  汽车  科技

docker在容器中执行主机的脚本(Docker容器中运行ESKibanaCerebro)

docker在容器中执行主机的脚本(Docker容器中运行ESKibanaCerebro)localhost:9200 #ES默认端口为9200 kibana访问地址docker-compose up #启动 docker-compose down #停止容器 docker-compose down -v #停止容器并且移除数据 3、查看是否成功es访问地址xubdeMacBook-Pro:~ xub$ docker --version Docker version 17.03.1-ce-rc1 build 3476dbf 命令 docker-compose —versionxubdeMacBook-Pro:~ xub$ docker-compose --version docker-compose version 1.11.2 build dfed245 2、docker-compose.yml我们可以简单把docker-compose.yml理解成一个

这篇博客的目的就是部署好ES和跟ES相关的辅助工具,同时通过Logstash将测试数据导入ES,这些工作完成之后,之后我们就可以在此基础上深入的去学习它。

一、Docker容器中运行ES Kibana Cerebro1、所需环境

docker docker-compose

首先环境要部署好 Docker 和 docker-compose

检验是否成功

命令 docker —version

xubdeMacBook-Pro:~ xub$ docker --version Docker version 17.03.1-ce-rc1 build 3476dbf

命令 docker-compose —version

xubdeMacBook-Pro:~ xub$ docker-compose --version docker-compose version 1.11.2 build dfed245 2、docker-compose.yml

我们可以简单把docker-compose.yml理解成一个类似Shell的脚本,这个脚本定义了运行多个容器应用程序的信息。

version: '2.2' services: cerebro: image: lmenezes/cerebro:0.8.3 container_name: cerebro ports: - "9000:9000" command: - -Dhosts.0.host=http://elasticsearch:9200 networks: - es7net kibana: image: docker.elastic.co/kibana/kibana:7.1.0 container_name: kibana7 environment: - I18N_LOCALE=zh-CN - XPACK_GRAPH_ENABLED=true - TIMELION_ENABLED=true - XPACK_MONITORING_COLLECTION_ENABLED="true" ports: - "5601:5601" networks: - es7net elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0 container_name: es7_01 environment: - cluster.name=xiaoxiao - node.name=es7_01 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - discovery.seed_hosts=es7_01 es7_02 - cluster.initial_master_nodes=es7_01 es7_02 ulimits: memlock: soft: -1 hard: -1 volumes: - es7data1:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - es7net elasticsearch2: image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0 container_name: es7_02 environment: - cluster.name=xiaoxiao - node.name=es7_02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - discovery.seed_hosts=es7_01 es7_02 - cluster.initial_master_nodes=es7_01 es7_02 ulimits: memlock: soft: -1 hard: -1 volumes: - es7data2:/usr/share/elasticsearch/data networks: - es7net volumes: es7data1: driver: local es7data2: driver: local networks: es7net: driver: bridge

启动命令

docker-compose up #启动 docker-compose down #停止容器 docker-compose down -v #停止容器并且移除数据 3、查看是否成功

es访问地址

localhost:9200 #ES默认端口为9200

docker在容器中执行主机的脚本(Docker容器中运行ESKibanaCerebro)(1)

kibana访问地址

localhost:5601 #kibana默认端口5601

docker在容器中执行主机的脚本(Docker容器中运行ESKibanaCerebro)(2)

cerebro访问地址

localhost:9000 #cerebro默认端口9000

docker在容器中执行主机的脚本(Docker容器中运行ESKibanaCerebro)(3)

整体这样就安装成功了。

说明 项目是在Mac系统部署成功的 尝试在自己的阿里云服务进行部署但是因为内存太小始终无法成功。

二、 Logstash安装与数据导入ES

注意 Logstash和kibana下载的版本要和你的elasticsearch的版本号一一致。

1、配置movices.yml

这个名称是完全任意的

# input代表读取数据 这里读取数据的位置在data文件夹下,文件名称为movies.csv input { file { path => "/Users/xub/opt/logstash-7.1.0/data/movies.csv" start_position => "beginning" sincedb_path => "/dev/null" } } filter { csv { separator => " " columns => ["id" "content" "genre"] } mutate { split => { "genre" => "|" } remove_field => ["path" "host" "@timestamp" "message"] } mutate { split => ["content" "("] add_field => { "title" => "%{[content][0]}"} add_field => { "year" => "%{[content][1]}"} } mutate { convert => { "year" => "integer" } strip => ["title"] remove_field => ["path" "host" "@timestamp" "message" "content"] } } # 输入位置 这里输入数据到本地es 并且索引名称为movies output { elasticsearch { hosts => "http://localhost:9200" index => "movies" document_id => "%{id}" } stdout {} }

启动命令 : 启动命令会和配置文件movices.yml的摆放位置有关,进入bin目录

./logstash ../movices.yml

movices.yml存放的位置

docker在容器中执行主机的脚本(Docker容器中运行ESKibanaCerebro)(4)

启动成功

docker在容器中执行主机的脚本(Docker容器中运行ESKibanaCerebro)(5)

这个时候你去cerebro可视化界面可以看到 已经有名称为movies的索引存在的 上面的图片其实已经存在movies索引了,因为我是Logstash数据导入ES成功才截的图。

总结总的来说这里还是简单的,之前通过Logstash将Mysql数据数据迁移到es会相对复杂点,毕竟它还需要一个数据库驱动包。

这样环境就已经搭建成功了,接下来的学习都在这个的基础上进行演示。



猜您喜欢: