当前播放: 07 | 在Docker容器中运行Elasticsearch Kibana和Cerebro
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:概述 (4讲)
01 | 课程介绍
免费
02 | 内容综述及学习建议
免费
03 | Elasticsearch简介及其发展历史
免费
04 | Elastic Stack家族成员及其应用场景
免费
第二章:安装上手 (4讲)
05 | Elasticsearch的安装与简单配置
免费
06 | Kibana的安装与界面快速浏览
07 | 在Docker容器中运行Elasticsearch Kibana和Cerebro
08 | Logstash安装与导入数据
第三章:Elasticsearch入门 (15讲)
09 | 基本概念:索引、文档和REST API
10 | 基本概念:节点、集群、分片及副本
11 | 文档的基本CRUD与批量操作
12 | 倒排索引介绍
13 | 通过Analyzer进行分词
14 | Search API概览
15 | URI Search详解
16 | Request Body与Query DSL简介
17 | Query String&Simple Query String查询
18 | Dynamic Mapping和常见字段类型
19 | 显式Mapping设置与常见参数介绍
20 | 多字段特性及Mapping中配置自定义Analyzer
21 | Index Template和Dynamic Template
22 | Elasticsearch聚合分析简介
23 | 第一部分总结
第四章:深入搜索 (13讲)
24 | 基于词项和基于全文的搜索
25 | 结构化搜索
26 | 搜索的相关性算分
27 | Query&Filtering与多字符串多字段查询
28 | 单字符串多字段查询:Dis Max Query
29 | 单字符串多字段查询:Multi Match
30 | 多语言及中文分词与检索
31 | Space Jam,一次全文搜索的实例
32 | 使用Search Template和Index Alias查询
33 | 综合排序:Function Score Query优化算分
34 | Term&Phrase Suggester
35 | 自动补全与基于上下文的提示
36 | 配置跨集群搜索
第五章:分布式特性及分布式搜索的机制 (8讲)
37 | 集群分布式模型及选主与脑裂问题
38 | 分片与集群的故障转移
39 | 文档分布式存储
40 | 分片及其生命周期
41 | 剖析分布式查询及相关性算分
42 | 排序及Doc Values&Fielddata
43 | 分页与遍历:From, Size, Search After & Scroll API
44 | 处理并发读写操作
第六章:深入聚合分析 (4讲)
45 | Bucket & Metric聚合分析及嵌套聚合
46 | Pipeline聚合分析
47 | 作用范围与排序
48 | 聚合分析的原理及精准度问题
第七章:数据建模 (7讲)
49 | 对象及Nested对象
50 | 文档的父子关系
51 | Update By Query & Reindex API
52 | Ingest Pipeline & Painless Script
53 | Elasticsearch数据建模实例
54 | Elasticsearch数据建模最佳实践
55 | 第二部分总结回顾
第八章:保护你的数据 (3讲)
56 | 集群身份认证与用户鉴权
57 | 集群内部安全通信
58 | 集群与外部间的安全通信
第九章:水平扩展Elasticsearch集群 (6讲)
59 | 常见的集群部署方式
60 | Hot & Warm架构与Shard Filtering
61 | 分片设计及管理
62 | 如何对集群进行容量规划
63 | 在私有云上管理Elasticsearch集群的一些方法
64 | 在公有云上管理与部署Elasticsearch集群
第十章:生产环境中的集群运维 (10讲)
65 | 生产环境常用配置与上线清单
66 | 监控Elasticsearch集群
67 | 诊断集群的潜在问题
68 | 解决集群Yellow与Red的问题
69 | 提升集群写性能
70 | 提升进群读性能
71 | 集群压力测试
72 | 段合并优化及注意事项
73 | 缓存及使用Breaker限制内存使用
74 | 一些运维的相关建议
第十一章:索引生命周期管理 (2讲)
75 | 使用Shrink与Rollover API有效管理时间序列索引
76 | 索引全生命周期管理及工具介绍
第十二章:用Logstash和Beats构建数据管道 (3讲)
77 | Logstash入门及架构介绍
78 | 利用JDBC插件导入数据到Elasticsearch
79 | Beats介绍
第十三章:用Kibana进行数据可视化分析 (4讲)
80 | 使用Index Pattern配置数据
81 | 使用Kibana Discover探索数据
82 | 基本可视化组件介绍
83 | 构建Dashboard
第十四章:探索X-Pack套件 (6讲)
84 | 用Monitoring和Alerting监控Elasticsearch集群
85 | 用APM进行程序性能监控
86 | 用机器学习实现时序数据的异常检测(上)
87 | 用机器学习实现时序数据的异常检测(下)
88 | 用ELK进行日志管理
89 | 用Canvas做数据演示
实战1:电影搜索服务 (3讲)
90 | 项目需求分析及架构设计
91 | 将电影数据导入Elasticsearch
92 | 搭建你的电影搜索服务
实战2:Stackoverflow用户调查问卷分析 (3讲)
93 | 需求分析及架构设计
94 | 数据Extract & Enrichment
95 | 构建Insights Dashboard
备战:Elastic认证 (5讲)
96 | Elastic认证介绍
97 | 考点梳理
98 | 集群数据备份
99 | 基于Java和Elasticseach构建应用
100 | 结束语
07 | 	在Docker容器中运行Elasticsearch Kibana和Cerebro

07 | 在Docker容器中运行Elasticsearch Kibana和Cerebro

阮一鸣
eBay Pronto平台技术负责人
100讲 约1000分钟16911
单独订阅¥129
2人成团¥99
16
本节摘要
展开
登录 后留言

精选留言(188)

  • 业余草
    为这一小结,写了三篇帮助教程!

    https://www.xttblog.com/?p=4402
    https://www.xttblog.com/?p=4404
    https://www.xttblog.com/?p=4408

    辅助大家学习!

    作者回复: 👍

    2019-07-11
    7
    31
  • LY
    老师您好,我没有修改docker-compose.yaml文件,直接启动的,es启动9200端口正常,但是kibana启动失败,cerebro无法链接 http://elasticsearch:9200。
    一、kibana启动失败。
    kibana7 | {"type":"log","@timestamp":"2019-06-25T10:18:08Z","tags":["fatal","root"],"pid":1,"message":"{ Error: Request Timeout after 30000ms\n at /usr/share/kibana/node_modules/elasticsearch/src/lib/transport.js:355:15\n at Timeout.<anonymous> (/usr/share/kibana/node_modules/elasticsearch/src/lib/transport.js:384:7)\n at ontimeout (timers.js:436:11)\n at tryOnTimeout (timers.js:300:5)\n at listOnTimeout (timers.js:263:5)\n at Timer.processTimers (timers.js:223:10)\n status: undefined,\n displayName: 'RequestTimeout',\n message: 'Request Timeout after 30000ms',\n body: undefined,\n isBoom: true,\n isServer: true,\n data: null,\n output:\n { statusCode: 503,\n payload:\n { statusCode: 503,\n error: 'Service Unavailable',\n message: 'Request Timeout after 30000ms' },\n headers: {} },\n reformat: [Function],\n [Symbol(SavedObjectsClientErrorCode)]: 'SavedObjectsClient/esUnavailable' }"}
    kibana7 |
    kibana7 | FATAL Error: Request Timeout after 30000ms
    kibana7 |
    kibana7 exited with code 1

    二、cerebro 链接 http://elasticsearch:9200 报错
    Unexpected response status: [503]

    作者回复: 你的ES在我看来,并没有正常启动。或者是 Docker 网络有问题。你可以访问

     http://localhost:9200/_cat/health?v
    查看集群的正常状态,是否为 Green?

    2019-06-25
    36
    12
  • 解决了碰到的几个坑,我是用vagrant启动的虚拟机,然后装的docker
    1.内存要设置大点,默认内存不够
    2.max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]编辑 /etc/sysctl.conf,追加以下内容:vm.max_map_count=262144保存后,执行:sysctl -p重新启动,成功。

    现在还有一个问题没有解决,打开kibana,是空白界面

    作者回复: 感谢分享。动手实践是最好的学习方式,为你👍

    2019-06-25
    9
  • 知行筠
    提供的geektime-ELK/part-1/2.3-在Docker容器中运行Elasticsearch,Kibana和Cerebro/docker-es-7.3/docker-compose.yml文件中,是不是有两处错误:
    1.第14行- es7net 应该是 - es73net
    2.第16行 image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
    2019-08-25
    5
    6
  • zj
    es集群起不来。报错如下:
    es7_01 | "stacktrace": ["org.elasticsearch.discovery.MasterNotDiscoveredException: null",
    es7_01 | "at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$4.onTimeout(TransportMasterNodeAction.java:259) [elasticsearch-7.1.0.jar:7.1.0]",
    es7_01 | "at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onTimeout(ClusterStateObserver.java:322) [elasticsearch-7.1.0.jar:7.1.0]",
    es7_01 | "at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:249) [elasticsearch-7.1.0.jar:7.1.0]",
    es7_01 | "at org.elasticsearch.cluster.service.ClusterApplierService$NotifyTimeout.run(ClusterApplierService.java:555) [elasticsearch-7.1.0.jar:7.1.0]",
    es7_01 | "at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:681) [elasticsearch-7.1.0.jar:7.1.0]",
    es7_01 | "at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]",
    es7_01 | "at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]",
    es7_01 | "at java.lang.Thread.run(Thread.java:835) [?:?]"] }
    es7_01 | {"type": "server", "timestamp": "2019-07-03T08:44:36,151+0000", "level": "WARN", "component": "o.e.c.c.ClusterFormationFailureHelper", "cluster.name": "geektime", "node.name": "es7_01", "message": "master not discovered or elected yet, an election requires a node with id [-NtPuq1vRzGRi8CKL1st-A], have discovered [] which is not a quorum; discovery will continue using [] from hosts providers and [{es7_01}{Rl60TSJ3SUqhrb8hl0B0-Q}{8iiqMNQMSreXXgbyzWylfg}{172.19.0.3}{172.19.0.3:9300}{ml.machine_memory=2096164864, xpack.installed=true, ml.max_open_jobs=20}] from last-known cluster state; node term 2, last-accepted version 75 in term 2" }

    作者回复: docker-compose down -v
    再重新docker-compose up
    同时记得把docker的memory调大

    2019-07-03
    5
    4
  • zhangtnty
    老师好,尝试了好多次7.2版本的配置,只能起来一个node,第二个节点总是提示选主问题。
    elasticsearch显示:{"type":"master_not_discovered_exception","reason":null}
    docker集群显示:es72_02 | {"type": "server", "timestamp": "2019-08-05T01:01:27,200+0000", "level": "WARN", "component": "o.e.c.c.ClusterFormationFailureHelper", "cluster.name": "geektime", "node.name": "es72_02", "message": "master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and this node must discover master-eligible nodes [es72_01, es72_02] to bootstrap a cluster: have discovered []; discovery will continue using [192.168.32.2:9300] from hosts providers and [{es72_02}{sgHR6nTtRBCOizQ8xytmcA}{QiWV227ZS_iwzsD_d9PIRQ}{elasticsearch}{192.168.32.5:9300}{ml.machine_memory=4139405312, xpack.installed=true, ml.max_open_jobs=20}] from last-known cluster state; node term 0, last-accepted version 0 in term 0" }

    只要是配置1个节点就可以:
    - discovery.seed_hosts=es72_01
    - network.publish_host=elasticsearch
    - cluster.initial_master_nodes=es72_01
    多个节点就报错:
    - discovery.seed_hosts=es72_01,es72_02
    - network.publish_host=elasticsearch
    - cluster.initial_master_nodes=es72_01,es72_02
    请老师帮助解答一下,MAC环境,本地安装,没有使用任何其他虚拟机。

    作者回复: 你去掉network.publish_host试试?

    2019-08-05
    2
    3
  • 天空之熊
    docker-compose.yaml文件中指定了kibana 和 es的 image网址,导致自己更换为国内的镜像站也没用,如果也有下载image太慢的,建议删除网址部分,即修改为: kibana:
        image: kibana:7.2.0
      elasticsearch:
        image: elasticsearch:7.2.0

    作者回复: 谢谢分享。这个会去docker的reopo下载?速度比较快?

    2019-07-16
    4
    3
  • renguzi
    阮老师,您好!谢谢您的辛苦付出。请问两个问题:1 对于ELK新手,请帮忙给出自学ELK,阅读官方文档的路径,比如先看什么,再看什么等。2 对于MySQL、PostgreSQL数据库的日志,是否可以用ELK来分析,并获取其慢SQL的报告。第一个问题,对于我来说,我可以课下自己阅读相关官方文档来打基础,巩固知识,第二问题,我希望学完本系列课程之后,可以自己搭建一套ELK来分析我手上的数据库的慢SQL,给优化带来帮助。再次感谢。

    作者回复: 有一篇学习路径➕书籍推荐。

    权威指南很不错的,唯一不足就是版本比较老

    2019-07-10
    3
  • 康元
    老师你好,请问,["java.net.UnknownHostException这个怎么解决呀,和第一个同学遇见的问题一样,希望老师解答一下
    2019-07-30
    2
  • Geek_53fe7f
    云上部署7.2 ,需要删除 network.publish_host 才能启动elasticsearch 集群成功,否则起不来。
    7.1 没有问题,他没有配置这个选项。

    作者回复: 谢谢你的分享👍

    2019-07-30
    2
  • 绅士
    看到这里已经卡了两天了,这两天一直在看docker的东西,docker-compose,Docker Image,这些目前为止还是不太清楚是什么,我用的mac ,感觉跟老师的不一样啊

    作者回复: 你可以把碰到的具体问题列出来。看看大家能否帮助你。

    另外,不是必需使用docker-compose 运行。使用docker的好处是当年在开发机器上管理多套环境。

    这个问题如果你一下解决不了,完全可以用命令行启动es实例

    2019-07-04
    1
    2
  • zj
    各位同学们,我第一次启动起来了,再启动就失败了。我发现跟中文目录有关!大家把github下载下来的docker-compose.yaml放在其他非中文目录吧!不谢,😄

    作者回复: 🐂,大家可以试试。我自己是没有在中文目录下使用

    2019-07-03
    1
    2
  • Sunshine.
    当我下载Kibana镜像时候每次都超时,国内访问有限制?

    作者回复: 应该只是速度慢,可以尝试找一下国内的镜像

    2019-07-03
    3
    2
  • 节示
    老师用docker-compose.yaml有问题,发现启动完,一会就退出。71和7.2版本都是这个问题,目前没有头绪,请老师给予指导,多谢。
    启动:
     Name Command State Ports
    ---------------------------------------------------------------------------
    cerebro /opt/cerebro/bin/cerebro - ... Up 0.0.0.0:9000->9000/tcp
    es7_01 /usr/local/bin/docker-entr ... Up 0.0.0.0:9200->9200/tcp, 9300/tcp
    es7_02 /usr/local/bin/docker-entr ... Up 9200/tcp, 9300/tcp
    kibana7 /usr/local/bin/kibana-docker Up 0.0.0.0:5601->5601/tcp
    过几十秒后:
    cerebro /opt/cerebro/bin/cerebro - ... Up javascript:; 0.0.0.0:9000->9000/tcp
    es7_01 /usr/local/bin/docker-entr ... Up 0.0.0.0:9200->9200/tcp, 9300/tcp
    es7_02 /usr/local/bin/docker-entr ... Exit 137
    kibana7 /usr/local/bin/kibana-docker Up 0.0.0.0:5601->5601/tcp
    错误日志:
    {"type": "server", "timestamp": "2019-06-27T09:56:02,465+0000", "level": "WARN", "component": "o.e.d.SeedHostsResolver", "cluster.name": "geektime", "node.name": "es7_02", "message": "failed to resolve host [es7_01]" ,

    .java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]",
    es7_02 | "at java.lang.Thread.run(Thread.java:835) [?:?]"] }
    es7_02 | {"type": "server", "timestamp": "2019-06-27T09:56:03,496+0000", "level": "WARN", "component": "o.e.d.SeedHostsResolver", "cluster.name": "geektime", "node.name": "es7_02", "message": "failed to resolve host [es7_01]" ,
    es7_02 | "stacktrace": ["java.net.UnknownHostException: es7_01: Name or service not known",
    es7_02 | "at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[?:?]",

    2019-06-27
    1
    2
  • 节示
    es7_02 | {"type": "server", "timestamp": "2019-06-27T09:40:35,984+0000", "level": "WARN", "component": "o.e.d.SeedHostsResolver", "cluster.name": "geektime", "node.name": "es7_02", "message": "failed to resolve host [es7_01]" ,
    es7_02 | "stacktrace": ["java.net.UnknownHostException: es7_01",
    es7_02 | "at java.net.InetAddress$CachedAddresses.get(InetAddress.java:797) ~[?:?]",
    es7_02 | "at java.net.InetAddress.getAllByName0(InetAddress.java:1505) ~[?:?]",
    es7_02 | "at java.net.InetAddress.getAllByName(InetAddress.java:1364) ~[?:?]",
    es7_02 | "at java.net.InetAddress.getAllByName(InetAddress.java:1298) ~[?:?]",
    es7_02 | "at org.elasticsearch.transport.TcpTransport.parse(TcpTransport.java:528) ~[elasticsearch-7.2.0.jar:7.2.0]",
    es7_02 | "at org.elasticsearch.transport.TcpTransport.addressesFromString(TcpTransport.java:470) ~[elasticsearch-7.2.0.jar:7.2.0]",
    es7_02 | "at org.elasticsearch.transport.TransportService.addressesFromString(TransportService.java:754) ~[elasticsearch-7.2.0.jar:7.2.0]",
    es7_02 | "at org.elasticsearch.discovery.SeedHostsResolver.lambda$resolveHostsLists$0(SeedHostsResolver.java:141) ~[elasticsearch-7.2.0.jar:7.2.0]",
    es7_02 | "at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]",
    es7_02 | "at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:688) ~[elasticsearch-7.2.0.jar:7.2.0]",
    es7_02 | "at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]",
    es7_02 | "at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]",
    es7_02 | "at java.lang.Thread.ru
    2019-06-27
    1
    2
  • 大匡
    kibana的监控不能满足课程需求吗?为何还特意选择cerebro?

    作者回复: CEREBRO的有些界面比较方便用户从集群的角度理解一些内部的分布式工作机制。并不是用来做单纯的监控。

    2019-06-26
    2
  • 老苏gogogo
    老师您好,根据您的docker-compose.yml文件可以启动双节点的es和kibana/cerebro。但是es中没有数据。您的示例数据从哪里导入进去?

    作者回复: 在Kibana安装和界面概览这一节,有介绍。你可以通过点kiban的首页,看到有一个导入数据的功能。kibana提供了:电子商务,飞机航班和日志信息三个数据集。点击页面就可以导入数据了。

    或者在logatash 导入数据那一节,通过运行logstash -f yourconfig.cofig,导入电影数据

    2019-06-26
    2
  • HMX
    打开Kibana显示Kibana server is not ready yet是什么原因?
    2019-10-17
    2
    1
  • 你大《于》哥
    老师离线安装需要注意哪些

    作者回复: 不知道你指的离线安装是什么意思?

    如果是安装plugin,你需要下载对应版本的plugin文件。通过elasticsearch-plugin install file://loc-of-your-plugin.zip 安装。如果是在docker中安装,你需要查一下如何写Dockerfile,es文档中有响应的章节。应该就在install es那章里面

    2019-08-08
    1
  • 吾爱有三
    老师希望能得到您的帮助,我是windos系统用vm虚拟机centos7跑的
    执行docker-compose up命令后
    执行一段时间都正常显示,但是之后就会出现
    kibana7 | {"type":"log","@timestamp":"2019-07-23T07:55:05Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"No living connections"}
    kibana7 | {"type":"log","@timestamp":"2019-07-23T07:55:06Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://ela
    sticsearch:9200/"}
    浏览器访问5601出现Kibana server is not ready yet
    查了很多,还是没能解决,希望老师指点一下。谢谢您了

    作者回复: 你跑vm再加docker-compose,对机器性能要求很高。不建议。直接笔记本上运行或者直接装docker都行

    2019-07-23
    2
    1
收起评论
看过的人还看
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

48讲 | 44076 人已学习

拼团 ¥79 原价 ¥99
Kafka核心技术与实战

胡夕  人人贷计算平台部总监,Apache Kafka Contributor

46讲 | 8567 人已学习

拼团 ¥79 原价 ¥99
从0开始学架构

李运华  资深技术专家

59讲 | 39228 人已学习

¥99
趣谈网络协议

刘超  网易研究院云计算技术部首席架构师

51讲 | 40024 人已学习

拼团 ¥79 原价 ¥99