想加强ES有关的知识,看了阮一鸣老师讲的《Elasticsearch核心技术与实战》收获很大,所以接下来会跟着他来更加深入的学习ES。

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

一、Docker容器中运行ES,Kibana,Cerebro

1、所需环境

  1. Docker + docker-compose

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

检验是否成功

命令 docker —version

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

命令 docker-compose —version

  1. xubdeMacBook-Pro:~ xub$ docker-compose --version
  2. docker-compose version 1.11.2, build dfed245

2、docker-compose.yml

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

  1. version: '2.2'
  2. services:
  3. cerebro:
  4. image: lmenezes/cerebro:0.8.3
  5. container_name: cerebro
  6. ports:
  7. - "9000:9000"
  8. command:
  9. - -Dhosts.0.host=http://elasticsearch:9200
  10. networks:
  11. - es7net
  12. kibana:
  13. image: docker.elastic.co/kibana/kibana:7.1.0
  14. container_name: kibana7
  15. environment:
  16. - I18N_LOCALE=zh-CN
  17. - XPACK_GRAPH_ENABLED=true
  18. - TIMELION_ENABLED=true
  19. - XPACK_MONITORING_COLLECTION_ENABLED="true"
  20. ports:
  21. - "5601:5601"
  22. networks:
  23. - es7net
  24. elasticsearch:
  25. image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
  26. container_name: es7_01
  27. environment:
  28. - cluster.name=xiaoxiao
  29. - node.name=es7_01
  30. - bootstrap.memory_lock=true
  31. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  32. - discovery.seed_hosts=es7_01,es7_02
  33. - cluster.initial_master_nodes=es7_01,es7_02
  34. ulimits:
  35. memlock:
  36. soft: -1
  37. hard: -1
  38. volumes:
  39. - es7data1:/usr/share/elasticsearch/data
  40. ports:
  41. - 9200:9200
  42. networks:
  43. - es7net
  44. elasticsearch2:
  45. image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
  46. container_name: es7_02
  47. environment:
  48. - cluster.name=xiaoxiao
  49. - node.name=es7_02
  50. - bootstrap.memory_lock=true
  51. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  52. - discovery.seed_hosts=es7_01,es7_02
  53. - cluster.initial_master_nodes=es7_01,es7_02
  54. ulimits:
  55. memlock:
  56. soft: -1
  57. hard: -1
  58. volumes:
  59. - es7data2:/usr/share/elasticsearch/data
  60. networks:
  61. - es7net
  62. volumes:
  63. es7data1:
  64. driver: local
  65. es7data2:
  66. driver: local
  67. networks:
  68. es7net:
  69. driver: bridge

启动命令

  1. docker-compose up #启动
  2. docker-compose down #停止容器
  3. docker-compose down -v #停止容器并且移除数据

3、查看是否成功

es访问地址

  1. localhost:9200 #ES默认端口为9200

kibana访问地址

  1. localhost:5601 #kibana默认端口5601

cerebro访问地址

  1. localhost:9000 #cerebro默认端口9000

整体这样就安装成功了。

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

二、 Logstash安装与数据导入ES

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

1、配置movices.yml

这个名称是完全任意的

  1. # input代表读取数据 这里读取数据的位置在data文件夹下,文件名称为movies.csv
  2. input {
  3. file {
  4. path => "/Users/xub/opt/logstash-7.1.0/data/movies.csv"
  5. start_position => "beginning"
  6. sincedb_path => "/dev/null"
  7. }
  8. }
  9. filter {
  10. csv {
  11. separator => ","
  12. columns => ["id","content","genre"]
  13. }
  14. mutate {
  15. split => { "genre" => "|" }
  16. remove_field => ["path", "host","@timestamp","message"]
  17. }
  18. mutate {
  19. split => ["content", "("]
  20. add_field => { "title" => "%{[content][0]}"}
  21. add_field => { "year" => "%{[content][1]}"}
  22. }
  23. mutate {
  24. convert => {
  25. "year" => "integer"
  26. }
  27. strip => ["title"]
  28. remove_field => ["path", "host","@timestamp","message","content"]
  29. }
  30. }
  31. # 输入位置 这里输入数据到本地es ,并且索引名称为movies
  32. output {
  33. elasticsearch {
  34. hosts => "http://localhost:9200"
  35. index => "movies"
  36. document_id => "%{id}"
  37. }
  38. stdout {}
  39. }

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

  1. ./logstash ../movices.yml

movices.yml存放的位置

启动成功

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

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

Elasticsearch(3)--- Docker容器中运行ES、Kibana、Cerebro的更多相关文章

  1. Elasticsearch核心技术(1)--- Docker容器中运行ES、Kibana、Cerebro

    Docker容器中运行ES,Kibana,Cerebro和Logstash安装与数据导入ES 想加强ES有关的知识,看了阮一鸣老师讲的<Elasticsearch核心技术与实战>收获很大, ...

  2. Docker容器中运行ASP.NET Core

    在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...

  3. .NetCore下使用IdentityServer4 & JwtBearer认证授权在CentOS Docker容器中运行遇到的坑及填坑

    今天我把WebAPI部署到CentOS Docker容器中运行,发现原有在Windows下允许的JWTBearer配置出现了问题 在Window下我一直使用这个配置,没有问题 services.Add ...

  4. 一个docker容器中运行多个服务还是弄一堆docker容器运行?

    不建议直接在单个 Docker 容器中运行多个程序. 以 2017年 10 月18 日 Docker 官方支持 Kubernetes 为分水岭计算,Kubernetes 赢得容器编排之战的最终胜利已经 ...

  5. 在docker容器中运行hello world!

    在docker容器中运行hello world! docker容器可以理解为在沙盒中运行的进程.这个沙盒包含了该进程运行所必须的资源,包括文件系统.系统类库.shell 环境等等.但这个沙盒默认是不会 ...

  6. docker_facenet_image在Docker容器中运行Facenet环境搭建

    对开发和运维人员来说,可能最梦寐以求的就是一次性地创建或配置,可以在任意环境.任意时间让应用正常运行.而Docker恰恰是可以实现这一终极目标的瑞士军刀. 具体来说,Docker在开发和运维过程中,具 ...

  7. .Net Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库

    .Net  Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库  , 一直报下面的错误 ORA-00604: error occurred at recursive SQL ...

  8. 在Linux和Windows的Docker容器中运行ASP.NET Core

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott H ...

  9. 在 Docker 容器中运行应用程序

    案例说明 运行 3 个容器,实现对网站的监控. 三个容器的说明: 容器 web: 创建自 nginx 映像,使用 80 端口,运行于后台,实现 web 服务. 容器 mailer: 该容器中运行一个 ...

  10. .NetCore下利用Jenkins如何将程序自动打包发布到Docker容器中运行

    说道这一块纠结了我两天时间,感觉真的很心累,Jenkins的安装就不多说了 这里我们最好直接安装到宿主机上,应该pull到的jenkins版本是2.6的,里面很多都不支持,我自己试了在容器中安装的情况 ...

随机推荐

  1. TP6 使用 nusoap为第三方webservice调用插件

    composer下载插件 composer require nusoap/nusoap use NuSoap\Client\Client; class Index extends BaseContro ...

  2. 在美国和以色列的技术支持下BP机可以爆炸,那么苹果手机是否也可以被远程引爆

    要知道,这一切在技术上都是可以实现的. 由此可见,带电池的产品,最为稳妥的办法就是购买在中国组装的产品,否则其安全性是无法保证的.有人可能会说美国政府不会单独的通过这种方法去定向的杀害某个中国普通人, ...

  3. UIAbility组件生命周期

    当用户打开.切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换.UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改 ...

  4. 12.Kubernetes集群安全机制

    Kubernetes集群安全机制 概述 当我们访问K8S集群时,需要经过三个步骤完成具体操作 认证 鉴权[授权] 准入控制 进行访问的时候,都需要经过 apiserver, apiserver做统一协 ...

  5. zkw 线段树-原理及其扩展

    前言 许多算法的本质是统计.线段树用于统计,是沟通原数组与前缀和的桥梁. <统计的力量>清华大学-张昆玮 关于线段树 前置知识:线段树 OIWiki. 线段树是一种专门维护区间问题的数据结 ...

  6. QT6.8 编译 MSVC2022-64位MySQL驱动

    QT6.8没有编译MySql驱动,也没有.pro的项目文件,只能自己想办法编译,网上找了很多方法,终于找到了可以成功编译的方法,下面将我的编译过程详细记录如下: [声明:本文为原创,未经允许,不得转载 ...

  7. 升级Linux内核版本

    ```shell# 查看内核版本,jw版本ceph默认format=2, 2.x 及之前的的内核版本需手动调整format=1# 4.x之前要关闭object-map fast-diff deep-f ...

  8. .NET Conf China 2024 AI相关内容解析

    .NET Conf China 2024中国 .NET 开发者峰会即将在上海召开,这次大会是一届完全由社区组织举办的中国.NET 开发者盛会,我们筹备大会之初就定下了大会的主题是"智能.创新 ...

  9. onlyoffice

    https://helpcenter.onlyoffice.com/installation/docs-enterprise-install-centos.aspx?_ga=2.51626159.76 ...

  10. 介绍 MSTest Runner - CLI, Visual Studio 等更多

    介绍 MSTest Runner - CLI, Visual Studio 等更多 https://devblogs.microsoft.com/dotnet/introducing-ms-test- ...