2018~2019年是个逐渐井喷的阶段,那时候公司有几个千亿级日志收集和处理的项目开始上马,我做为项目架构师,天然要对Elastic stack玩得更加精深一点,因而便决心想要体系化的学习一下。正好在2019年7月极客时间推出了阮一鸣的ES7.1的视频课,那时便绝不犹豫的买了下来,2019年9月开始被assign到一个AIOps的项目中去,因此以后也只是断断续续的学习。编程
但也正是在那个AIOps的项目中,我对ES这个强大的数据平台及其与上下游周边系统的关系有了更加清晰的认识,今年年初老板同我谈起建设运维自动化平台的想法,因而想要拿下Elastic 认证的决心也就坚决了下来。浏览器
2.1 5月16日 到6月15日 第一阶段
今年5/1考完CKA认证后,便决心攻下Elastic 认证。由于平时从事的是架构师方面的工做,因此工做侧重点比较多在ES的运维和容量规划等方面,而对于搜索,聚合这些,乃至写DSL语句等,操练的没有那么多,其中的有些概念以前也只是有个了解,因此第一阶段的复习我对本身的目标是“夯实基础”。安全
ES 的文档虽然很成体系,但也正由于文档繁多,因此新手直接盲目看文档会很容易迷失,形成越看越多,最后每每会不了了之。所以我复习时主要采用的是如下两个材料:数据结构
阮一鸣在极客时间的ES视频课
B站上的中华石杉的的视频
阮老师的课优点在于覆盖面广,Elastic 认证考试的全部知识点所有都覆盖到了,并且偏重实践。但也许是由于受限于每一个视频课的时间不能超过15分钟的关系,所以每堂课的节奏很是快,每每一节课里包含不少知识点,这对于以前没有太接触过某个知识点的话挑战会比较大,可能要反反复复观看才行。架构
遇到这种状况,中华石杉的讲解就是一个很好的辅助。中华石衫的课相对更加是理论和实践并重,因此有些知识点讲解的比较透,等看完了,理解了,再回去看阮一鸣的课,就会有高屋建瓴的感受。app
在观看课程之后,我也作了大量的笔记。。Elastic 认证考试的覆盖面是至关普遍的,好比光是DSL查询语句在各类状况下的用法这一个知识点就很复杂,牵涉面很广。这个时候,作笔记是个很重要的帮助本身理解和消化的过程 。Microsoft Onenote是个很好的笔记软件,各个设备之间同步很方便,方便随时随地查阅。less
光看,光记,但不动手是绝对不行的。任何一个IT技术都是实践动手的过程。阮一鸣的每堂课上的测试用例是很好的练习素材,我对本身的要求是每一个case的代码至少敲过3遍以上, Kibana提供的3个sample data也是很好的数据源,方便来练习查询和聚合。运维
就这样反反复复,在不停的观看——练习——观看——练习——查阅——练习的过程当中,一个月的时间过去了,等到了6月中的时候,我把对Elastic 认证的主要考点都基本过了一遍,到最后几乎能够摆脱文档来徒手写各类查询,聚合和API操做语句。基本实现了最初定下的“夯实基础”这一目标。ide
2.2 6月中旬到6月25日,集中练习
由于平时工做比较忙,因此练习的时间大多集中在晚上10点到凌晨1点这3个小时里。这里要特别感谢铭毅在“知识星球”上创建的“死磕Elasticsearch”这个版块,汇聚了大量的同道学友,以及许多针对性的练习,特别是德国博士的那个几十页的练习材料是很是有帮助的,价值不言而喻。学习
这段时间里我基本上就是把德国博士的这套练习题完整作了一遍,而且对照铭毅的答案进行了比对和强化,有时候个人想法和思路和铭毅的不彻底一致,我会私下和铭毅交流,不少时候你们是异曲同工,只是哪一种方法更加严谨而已。交流和练习的过程是一个迅速提高的过程,在此也要再次感谢铭毅给到的帮助。
2.3 冲刺收官 (端午节3天)
端午节放假3天,我闷头在家敲了3天的代码,主要是把几个前辈的考试经验贴所有看了一遍,对于他们帖子里提到的题目和考点,自问自答的回想了一遍,而且在Kibana中敲出代码,最后作到能够彻底不依赖查询官方文档徒手写出。
这里要提下ES的Painless脚本。不少人把写无痛脚本视为畏途。也许是由于早在读书的时候就学习了好几个语言,有一些编程基础,和数据结构基础,因此我倒并无以为Painless脚本有多难。其实搞懂3种场景下的用法就足以应对考试中的要求了,我差很少花了半天的时间把这块所有看完,重点是看了官方文档上的“walk through with painless script”章。另外特别推荐以下两篇文章, 是官方文档之外,特别值得参考学习的。
铭毅的Elasticsearch7.X Scripting脚本使用详解
https://mp.weixin.qq.com/s/PUXVdc5QKt7avXZeugjejA
虎哥的Painless script在ElasticSearch 中的使用的一些问题
https://www.jianshu.com/p/7518dccc0bcf
3.2 只要条件容许,必定要用外接的大屏幕显示器。
不要问为何。我能说我此次考试几乎就差点栽在了没有大屏幕显示器上,用笔记本上的小屏幕去参加考试,3小时下来,几乎把我眼睛都看瞎了。
考试环境是用Chrome浏览器连接到一个虚拟桌面上,但不知是否是刻意的限制,那个虚拟桌面的分辨率很低,从笔记本的小屏幕上看考题几乎是模糊一片。加上考官会要求你不能离电脑作的太近,这就形成题目更加看的不是很清楚。
我此次就由于常常凑近屏幕看考题,被考官中断考试3次,最后警告说坐得若是再不端正,就terminate个人考试。因而我在及其不舒服的坐姿,以及朦朦胧胧的视觉效果中,花了2个小时才完成了考试。只能说幸好考前准备的充足,几乎作到能够彻底摆脱文档,不然若是还要用哪一个那么低的分辨率的虚拟桌面来查阅文档,会是雪上加霜。
3.3 考试中我用Kibana图形界面来添加RBAC和用户老是报“unauthorized ”的错误。
但我能够确定elastic和Kibana这两个帐号的密码是设置正确了的。
考试中这个问题困扰了我一段时间,乃至不得不跳过先作其余的题目。等作完全部的考题再回头来想,灵机一动,图形界面不行,那干吗不试试直接调用 Xpack API呢。最后经过命令行解决完成这个RBAC赋权的题目。
启用ES的安全配置功能,修改内置帐号的密码,建立一个第三方的用户,而且为该用户赋权。
聚合。找出每月的最大震级和深度
一个布尔查询,要求高亮查询结果,而且对指定关键字进行排序。注意match phrase
一个多字段查询,返回的评分结果是各个字段的总和。注意boost针对特定索引的做用。
Pipeline + Update_by_query, 对某个索性增长一个字段,该字段的内容是其余3个字段的链接
Reindex+自定义分词,确保对两个不一样的term,返回的评分和结果数量是一致的。重点是Char_filter, 和自定义mapping。
Dynamic mapping template
5.2 下一步的学习计划:
把中华石衫的视频中的理论部分在深刻研究一下,对于提升对 ES 的总体理解颇有帮助。
源码解析和实战这本书须要攻读。
把所学的运用到工做实践和给客户的设计中,「学以至用」这个是永远的“王道”。
争取拿下Kibana Data analyst认证。由于运维自动化平台的建设中的重点之一就是数据可视化,取得这个认证也是检验本身学识的体现。
更多经验分享参考:死磕 Elastic 认证