ElasticSearch学习笔记(一)
计算机软件的学习,最重要的是举一反三,只要大胆尝试,认真验证自己的想法就能收到事办功倍的效果。在开始之前可以看看别人的教程做个快速的入门,然后去官方网站看看官方的教程,有中文教程固然是好,没有中文教程大家也不要怕,硬着头皮看下去一定有收获
本人对ES并不熟悉,虽然十几年前就接触过Lucene,但是无奈当时技术太菜根本就没有深入下去,最近准备认真的研究一下ES,边探索,边记录,可能会有错误的理解,回头再更正吧。我想我这笔记最重要的是给正在学习编程技术的同学点启发,以便能够在编程之路上走的再快些再稳些。
一、安装Elasticsearch
win10下安装
ElasticSearch下载
下载完成后直接解压缩就可以使用了。
解压后的ElasticSearch目录如下图所示。
- bin 可执行文件目录.
- config 配置文件目录
- jdk Elasticsearch是依赖JDK,这里是Elastic内置的JDK环境
- lib 类库
- logs 日志
- modules 模块
- plugins 插件
二、ElasticSearch启动
进入bin目录,双击elasticsearch.bat
批处理文件就可以启动ES了。
如果出现下图所示的黑窗口说明ES启动成功,ES启动完成后不要关闭cmd窗口。
打开浏览器,在地址栏中输入https://localhost:9200,应该能够出现ES的登录界面。
👿 ES 8.11默认是开启SSL的,所以一定要注意使用https://localhost:9200
可是我们好像并不知道用户名和密码啊?
三、重置ES内置用户密码
ES内置了一个用户名为elastic的用户,但是这个用户的密码我们却不知道,翻看了ES的启动信息也没有找到。
进入bin目录,仔细观察会发现有个password相关的批处理文件elasticsearch-setup-passwords.bat
双击这个文件一闪就退出了,用编辑器打开看看里面的内容吧。
大胆猜测这个批处理文件其实是调用了安全相关的模块,需要使用cmd命令行来运行它。
进行elasticsearch-reset-password.bat
批处理文件,窗口输出了帮助信息。从帮助信息可以得知批处理文件必选参数是-u
,后跟用户名。
命令格式如下
elasticsearch-reset-password.bat -u elastic
使用我们重置的新密码就可以登录了。
上图是登录成功的截图。
使用elasticsearch-reset-password.bat
命令我们重置了内置用户elastic的密码,可是这个密码的复杂度有点高,很难记忆,作为练习使用的elasticsearch我想设置一个简单易记的密码。好吧,再研究一下elasticsearch-reset-password.bat
这个批处理吧。
通过-h帮助我们可以看到上图的输出信息。从这些信息中可以得知批处理后可以加Eabfhisu url v这几个参数,其中-u是必加参数,-i是交互式参数。那么就运行一下-i参数看看有什么输出吧。
提示你将要重置用户[elastic]的密码,你是否继续,[y/N]的意思是如果你在交互模式下输入y,表示你将进入重置密码的流程,大写的N表示默认输入是N,如果你直接回车则不进入重置密码流程。
💁♂ [y/N]和[Y/n]在很多交互模式中都通用的,要学会举一反三。
输入两次新密码后就重置成功了,连原密码都不要,从这里也能让大家明白,所谓的安全都是相对的。很多软件的安全性都是基于操作系统的,操作系统的安全性,是你整个安全系统的第一道屏障。
上图是直接回车的输出。
通过上面的命令重置elastic的密码后,再刷新https://localhost:9200, ES会让你重新输入用户名和密码,这次你就可以使用便于记忆的密码了。
四、用户操作
再仔细查看bin目录,发现还有一个elasticsearch-users.bat
批处理文件,见名知义,这个文件肯定是和用户操作相关的,大胆的试一下吧。
两个批处理文件的内容完全相同,可见这个批处理文件是通过文件名传参的,同样运行一下elasticsearch-users.bat
看看有什么提示吧。
从帮助说明中不难看出,添加用户的命令是
elasticsearch-users.bat useradd <用户名>
非常的简单。
接下来重置一下内置用户elastic的密码,再刷新页面https://localhost:9200
果然又弹出了登录界面,使用上面我们新建的用户和密码登录,下图是新用户登录后的截图。
虽然登录成功了,但是报错了,大概意思是没有给新用户赋角色。
继续探索。
通过上面的命令,我似乎为新用户赋了superuser的角色。
再次刷新https://localhost:9200
页面,出现下图。
看来为新用户赋角色成功了。
💁♂ 总结: bin目录是ES的各种可执行文件运行目录,使用cmd命令打开相关的批处理文件。
本文使用了elasticsearch-setup-passwords.bat
重置用户密码批处理,和elasticsearch-users.bat
新建用户批处理。
💁♂ 要给新建用户赋不同的角色,否则登录后会报错。
💁♂ 常见的用户角色有以下几种:
Known roles: [apm_system, watcher_admin, viewer, alfiy, logstash_system, rollup_user, kibana_user, beats_admin, remote_monitoring_agent, rollup_admin, snapshot_user, data_frame
_transforms_admin, monitoring_user, enrich_user, kibana_admin, logstash_admin, editor, data_frame_transforms_user, machine_learning_user, machine_learning_admin, watcher_user,
apm_user, beats_system, reporting_user, transform_user, kibana_system, transform_admin, transport_client, remote_monitoring_collector, ingest_admin, superuser]
上面的角色各类其实是我从cmd命令中复制出来的,想了解详情到官方文档去看吧。(我还没去看,下次我看到了会在此处加文档链接)。