elasticsearch
ES 8.x 从入门到精通
简单 单节点模式下启动ES服务
系统初始化
Install Elasticsearch with Docker
重要Elasticsearch配置
配置文件参数介绍
多实例集群
本文档使用 MrDoc 发布
-
+
首页
简单 单节点模式下启动ES服务
# 创建账号并赋予权限 ES不允许使用root账号启动服务,如果你当前账号是root,则需要创建一个专有账户(以下命令均在root账户下执行,windows系统在power shell下执行)。如果你的账号不是root账号,此步骤可以跳过 ## 创建elastic账号 ``` useradd elastic ``` ## 设置elastic账号的密码: ``` passwd elastic ``` ## 为账号赋予目录权限 ``` chown -R elastic:elastic {{espath}} ``` ## 启动命令 ![](/media/202307/2023-07-04_091632_6131610.33329151563095116.png) ## 启动日志 ES在 7.x 版本时,控制台输出 started 时代表服务启动成功,和 7.x 版本不同, ES 8.x 启动之后会输出以下信息,此时服务已经启动成功了。 ![](/media/202307/2023-07-04_091703_0262750.7528072327676781.png) 首次启动 Elasticsearch 时,会自动进行以下安全配置: •为传输层和 HTTP 层生成 TLS 证书和密钥。 •TLS 配置设置被写入elasticsearch.yml •为 elastic 用户生成密码。 •为 Kibana 生成一个注册令牌。 `红框1`:ES为我们生成的elastic账户的默认密码,重要,需要复制记下来 `红框2`:CA证书的密钥信息,暂时先不管 `红框3`:ES为Kibana生成的访问令牌,Kibana访问ES服务需要用到。(有效期为 30 分钟) `红框4`:ES为其他节点加入集群生成的访问令牌,当前集群中需要加入新节点时,需要携带此令牌(有效期为 30 分钟) 然后您可以启动 Kibana 并输入有效期为 30 分钟的注册令牌。此令牌自动应用 Elasticsearch 集群中的安全设置,使用内置kibana服务账户向 Elasticsearch 进行身份验证,并将安全配置写入kibana.yml ## 修改默认密码 在 ES 8.x版本以后,elasticsearch-setup-passwords设置密码的工具已经被弃用删除,此命令为7.x之前第一次生成密码时使用,8.x在第一次启动的时候会自动生密码。 `注意`:上述(4.3截图)内容仅在第一次启动时显示,如果需要修改账户密码,需进行以下操作 ``` bin/elasticsearch-reset-password [-a, --auto] [-b, --batch] [-E <KeyValuePair] [-f, --force] [-h, --help] [-i, --interactive] [-s, --silent] [-u, --username] [--url] [-v, --verbose] ``` 使用此命令重置本地领域中的任何用户或任何内置用户的密码。默认情况下,系统会为您生成一个强密码。要显式设置密码,请使用 以交互模式运行该工具-i。该命令在 文件领域中生成(并随后删除)一个临时用户,以运行更改用户密码的请求。 ``` -a, --auto 将指定用户的密码重置为自动生成的强密码。(默认) -b, --batch 运行重置密码过程而不提示用户进行验证。 -E <KeyValuePair> 配置标准 Elasticsearch 或 X-Pack 设置。 -f, --force 强制命令针对不健康的集群运行。 -h, --help 返回所有命令参数。 -i, --interactive 提示输入指定用户的密码。使用此选项显式设置密码。 -s --silent 在控制台中显示最小输出。 -u, --username 本机领域用户或内置用户的用户名。 --url 指定工具用于向 Elasticsearch 提交 API 请求的基本 URL(本地节点的主机名和端口)。默认值由 elasticsearch.yml文件中的设置确定。如果xpack.security.http.ssl.enabled设置为true,则必须指定 HTTPS URL。 -v --verbose 在控制台中显示详细输出。 ``` 比如:为`elastic` 账号自动生成新的随机密码,输出至控制台 ``` # bin/elasticsearch-reset-password -u elastic ``` 手工指定`elastic` 的新密码 ``` # bin/elasticsearch-reset-password --username elastic -i ``` 指定服务地址和账户名 ``` # #bin/elasticsearch-reset-password --url "https://172.0.0.3:9200" --username elastic -i ``` # 验证服务启动 ## 访问服务 在7.x的版本是通过如下地址访问ES服务:http://localhost:9200/ 但是在 8.x 的版本访问会看到如下页面: ![](/media/202307/2023-07-04_092230_7125450.9142518707872942.png) ## 原因解释 这是正常现象,因为 Elastic 8 默认开启了 SSL,将默认配置项由true改为false即可 ![](/media/202307/2023-07-04_092256_9571460.19042727774719725.png) ## 推荐做法 关闭SSL虽然可以访问服务了,但这本质上是在规避问题而非解决问题,更推荐的做法是使用https协议进行访问: https://localhost:9200/ ,此时如果你的浏览器版本是比较新的版本会出现以下弹窗提示,即: ![](/media/202307/2023-07-04_092326_0820580.11997969911295658.png) ## 解决方案 在chrome该页面上,直接键盘敲入thisisunsafe这11个字符(鼠标点击当前页面任意位置,让页面处于最上层即可输入,输入时是没有任何提示也不显示任何字符的,直接输入即可按回车即可),然后你会看到如下提示: ## 输入账号密码验证 此时输入账号,也就是在4.3的启动日志中,红框一的内容,确定即可访问ES服务,至此,单节点ES服务启动成功。 ![](/media/202307/2023-07-04_092420_3474700.7953031765338321.png) # 总结 ES 8 默认启动`Security` ,这对新手学习很不友好,实际上违背了Elastic官方设置`开发模式` 的初衷,安全固然重要,但是没必要把门槛设置这么高,建议官方在后续更新中,把`Security` 在`开发模式` 中默认关闭,在`生产模式` 下,默认开启。这样更加合理。
admin
2023年7月4日 09:36
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码