Elasticsearch 核心技术与实战
阮一鸣
eBay Pronto 平台技术负责人
66492 人已学习
新⼈⾸单¥68
课程目录
已完结/共 100 讲
第八章:保护你的数据 (3讲)
第十一章:索引生命周期管理 (2讲)
第十二章:用Logstash和Beats构建数据管道 (3讲)
第十三章:用Kibana进行数据可视化分析 (4讲)
实战1:电影搜索服务 (3讲)
实战2:Stackoverflow用户调查问卷分析 (3讲)
备战:Elastic认证 (5讲)
Elasticsearch 核心技术与实战
登录|注册
留言
99+
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 07 | 在Docker容器中运行Elasticsearch Kibana和Cerebro
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述及学习建议
03 | Elasticsearch简介及其发展历史
04 | Elastic Stack家族成员及其应用场景
05 | Elasticsearch的安装与简单配置
06 | Kibana的安装与界面快速浏览
07 | 在Docker容器中运行Elasticsearch Kibana和Cerebro
08 | Logstash安装与导入数据
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 | 第一部分总结
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 | 配置跨集群搜索
37 | 集群分布式模型及选主与脑裂问题
38 | 分片与集群的故障转移
39 | 文档分布式存储
40 | 分片及其生命周期
41 | 剖析分布式查询及相关性算分
42 | 排序及Doc Values&Fielddata
43 | 分页与遍历:From, Size, Search After & Scroll API
44 | 处理并发读写操作
45 | Bucket & Metric聚合分析及嵌套聚合
46 | Pipeline聚合分析
47 | 作用范围与排序
48 | 聚合分析的原理及精准度问题
49 | 对象及Nested对象
50 | 文档的父子关系
51 | Update By Query & Reindex API
52 | Ingest Pipeline & Painless Script
53 | Elasticsearch数据建模实例
54 | Elasticsearch数据建模最佳实践
55 | 第二部分总结回顾
56 | 集群身份认证与用户鉴权
57 | 集群内部安全通信
58 | 集群与外部间的安全通信
59 | 常见的集群部署方式
60 | Hot & Warm架构与Shard Filtering
61 | 分片设计及管理
62 | 如何对集群进行容量规划
63 | 在私有云上管理Elasticsearch集群的一些方法
64 | 在公有云上管理与部署Elasticsearch集群
65 | 生产环境常用配置与上线清单
66 | 监控Elasticsearch集群
67 | 诊断集群的潜在问题
68 | 解决集群Yellow与Red的问题
69 | 提升集群写性能
70 | 提升集群读性能
71 | 集群压力测试
72 | 段合并优化及注意事项
73 | 缓存及使用Breaker限制内存使用
74 | 一些运维的相关建议
75 | 使用Shrink与Rollover API有效管理时间序列索引
76 | 索引全生命周期管理及工具介绍
77 | Logstash入门及架构介绍
78 | 利用JDBC插件导入数据到Elasticsearch
79 | Beats介绍
80 | 使用Index Pattern配置数据
81 | 使用Kibana Discover探索数据
82 | 基本可视化组件介绍
83 | 构建Dashboard
84 | 用Monitoring和Alerting监控Elasticsearch集群
85 | 用APM进行程序性能监控
86 | 用机器学习实现时序数据的异常检测(上)
87 | 用机器学习实现时序数据的异常检测(下)
88 | 用ELK进行日志管理
89 | 用Canvas做数据演示
90 | 项目需求分析及架构设计
91 | 将电影数据导入Elasticsearch
92 | 搭建你的电影搜索服务
93 | 需求分析及架构设计
94 | 数据Extract & Enrichment
95 | 构建Insights Dashboard
96 | Elastic认证介绍
97 | 考点梳理
98 | 集群数据备份
99 | 基于Java和Elasticseach构建应用
100 | 结课测试&结束语
登录 后留言

全部留言(250)

  • 最新
  • 精选
业余草
为这一小结,写了三篇帮助教程! https://www.xttblog.com/?p=4402 https://www.xttblog.com/?p=4404 https://www.xttblog.com/?p=4408 辅助大家学习!

作者回复: 👍

2019-07-11
16
50
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
41
15
解决了碰到的几个坑,我是用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
11
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
5
7
天空之熊
docker-compose.yaml文件中指定了kibana 和 es的 image网址,导致自己更换为国内的镜像站也没用,如果也有下载image太慢的,建议删除网址部分,即修改为: kibana: image: kibana:7.2.0 elasticsearch: image: elasticsearch:7.2.0

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

2019-07-16
6
7
Evildoer
呼呼 跟大家分享一下我的经验,我是在Centos7的一台小服务器上部署的docker,然后直接猴急的执行了docker-compose up。 然后就跟大家一样了,访问Kibana提示没准备好,然后用docker ps -a发现挂了两个ES容器,用docker logs 容器名查看ES日志发现打印内存不足 > max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 百度后看到有两种方式解决: 1. `sysctl -w vm.max_map_count=262144` # 一次性生效 重启将失效 2. 另一种就是 `echo 'vm.max_map_count=262144'>/etc/sysctl.conf & sysctl -p` Tips: 两种方式都需要使用root执行 处理完以后使用 `docker-compose down -v & docker-compose up` 重新启动docker,可能是机器性能问题,我启动后等了差不多一分钟才能成功登陆Kibana,好了,祝大家好运。

作者回复: 👍

2019-07-07
4
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
8
6
renguzi
看到有同学说,卡在用docker环境启停ELK。我把在CentOS上的操作流程记录一下: 1 docker安装忽略; 2 安装docker-compose a 参考链接:https://docs.docker.com/compose/install/#install-using-pip b 切到Linux标签页,其实就是根据文档执行这2个命令:sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 以及:sudo chmod +x /usr/local/bin/docker-compose 3 配置OS的/etc/sysct.conf文件;通过命令:grep vm.max_map_count /etc/sysctl.conf检查vm.max_map_count=262144是否设置。如果返回为空,或者该参数值小于最低要求的262144值。则直接在/etc/sysctl.conf加入或者修改vm.max_map_count=262144。然后,记得执行sysctl -p使其生效。为什么要设置这个参数,因为,你可能会遭遇到docker-compose up 报错,导致另外一个es的instance启动不了,我在实验过程中,从docker-compose up命令窗口上看到es7_02启动不了,提示要修改该内核参数。参考链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.2/docker.html#docker-cli-run-prod-mode 4 mkdir 7.x-docker-2-es-instances 5 cd 7.x-docker-2-es-instances 6 vi docker-compose.yaml 把老师的https://github.com/geektime-geekbang/geektime-ELK/tree/master/part-1/2.3-%E5%9C%A8Docker%E5%AE%B9%E5%99%A8%E4%B8%AD%E8%BF%90%E8%A1%8CElasticsearch%2CKibana%E5%92%8CCerebro/7.x-docker-2-es-instances 文件内容,一字不差的填进去 7 在当前路径下,执行 docker-compose up 第一次执行,会根据配置文件下载images,比较慢,等着就好了 8 另外一个命令行窗口,可以执行docker images 或者docker ps 来查看镜像,以及运行的进程。 [root@centos-master 7.x-docker-2-es-instances]# docker images docker.elastic.co/kibana/kibana 7.1.0 714b175e84e8 7 weeks ago 745 MB ...内容超长..省略... [root@centos-master 7.x-docker-2-es-instances]# docker ps CONTAINER ID IMAGE COMMAND CREATED ...内容超长..省略... 9 命令行查看elasticsearch集群健康信息: [root@centos-master 7.x-docker-2-es-instances]# curl http://127.0.0.1:9200/_cat/health 1562729637 03:33:57 geektime green 2 2 4 2 0 0 0 0 - 100.0% [root@centos-master 7.x-docker-2-es-instances]# 10 上面是我的操作步骤和遇到问题的情况,供参考。

作者回复: 👍

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

作者回复: 有一篇学习路径➕书籍推荐。 权威指南很不错的,唯一不足就是版本比较老

2019-07-10
3
芬达
老师的docker-compose.yml文件在哪里可以下载?

作者回复: https://github.com/onebirdrocks/geektime-ELK 进入 Part-1 目录,找到相应的章节

2019-06-27
2
3
收起评论