原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/starting-elasticsearch.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/starting-elasticsearch.html

启动Elasticsearch

启动 Elasticsearch 的方法因安装方式而异。

归档安装包 (.tar.gz)

如果你是使用 .tar.gz包 安装的 Elasticsearch,可以从命令行启动 Elasticsearch。

从命令行运行 Elasticsearch

可以从命令行启动 Elasticsearch,如下所示:

./bin/elasticsearch

如果你对 Elasticsearch 密钥库进行了密码保护,系统会提示你输入密钥库的密码。 更多详细信息请参考 安全设置

默认情况下,Elasticsearch 在前台运行,将其日志打印到标准输出(STDOUT),并且可以通过按 Ctrl-C 来停止。

所有与 Elasticsearch 打包在一起的脚本都需要一个支持数组的 Bash 版本,并假设 Bash 的存放位置是 /bin/bash。 因此,Bash 应该可以直接或通过符号链接在这个路径上使用。

作为守护程序运行

要将 Elasticsearch 作为守护进程运行,请在命令行中指定 -d ,并使用 -p 选项将进程 ID 记录在一个文件中:

./bin/elasticsearch -d -p pid

如果你对 Elasticsearch 密钥库进行了密码保护,系统会提示你输入密钥库的密码。 更多详细信息请参考 安全设置

日志信息可以在$ES_HOME/logs/ 目录中找到。

要关闭 Elasticsearch,终止 pid 文件中记录的进程 ID:

pkill -F pid

RPMDebian 包中提供的启动脚本负责启动和停止 Elasticsearch 进程。

归档安装包 (.zip)

如果你是在 Windows 上使用 .zip包 安装的 Elasticsearch,可以从命令行启动 Elasticsearch。 如果你想让 Elasticsearch 在系统启动时自动启动,不需要任何用户交互,那么请 在 Windows 上把 Elasticsearch 作为服务安装

从命令行运行 Elasticsearch

可以从命令行启动 Elasticsearch,如下所示:

.\bin\elasticsearch.bat

如果你对 Elasticsearch 密钥库进行了密码保护,系统会提示你输入密钥库的密码。 更多详细信息请参考 安全设置

默认情况下,Elasticsearch 在前台运行,将其日志打印到标准输出(STDOUT),并且可以通过按 Ctrl-C 来停止。

Debian安装包

安装后不会自动启动 Elasticsearch。 如何启动和停止 Elasticsearch 取决于你的系统使用 SysV init 还是 systemd(在较新的发行版中使用)。 可以通过运行以下命令来判断哪个正在被使用:

ps -p 1

使用 SysV init 运行 Elasticsearch

使用 update-rc.d 命令将 Elasticsearch 配置为在系统启动时自动启动:

sudo update-rc.d elasticsearch defaults 95 10

可以使用 service 命令启动和停止 Elasticsearch:

sudo -i service elasticsearch start
sudo -i service elasticsearch stop

如果 Elasticsearch 由于任何原因无法启动,它会将失败的原因打印到 STDOUT。 日志文件可以在 /var/log/elasticsearch/ 位置找到。

使用 systemd 运行 Elasticsearch

要将 Elasticsearch 配置为在系统启动时自动启动,请运行以下命令:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

Elasticsearch 可按如下方式启动和停止:

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

这些命令不提供关于 Elasticsearch 是否成功启动的反馈。 相反,这些信息将被写入位于 /var/log/elasticsearch/ 的日志文件中。

如果你对 Elasticsearch 密钥库进行了密码保护,则需要使用本地文件和 systemd 环境变量向 systemd 提供密钥库密码。 该本地文件在存在时应受到保护,一旦 Elasticsearch 启动并运行,可以安全地删除该文件。

echo "keystore_password" > /path/to/my_pwd_file.tmp
chmod 600 /path/to/my_pwd_file.tmp
sudo systemctl set-environment ES_KEYSTORE_PASSPHRASE_FILE=/path/to/my_pwd_file.tmp
sudo systemctl start elasticsearch.service

默认情况下,Elasticsearch 服务不在 systemd 日志中记录信息。 要启用journalctl 日志记录,必须从 elasticsearch.service 文件的 ExecStart 命令行中删除 --quiet 选项。

启用 systemd 日志记录时,可以使用 journalctl 命令获得日志记录信息:

要跟踪日志,执行:

sudo journalctl -f

要列出 elasticsearch 服务的日志记录:

sudo journalctl --unit elasticsearch

要列出从给定时间开始的 elasticsearch 服务的日志记录:

sudo journalctl --unit elasticsearch --since  "2016-10-30 18:17:16"

更多命令行选项,请查看 man journalctl 或者 https://www.freedesktop.org/software/systemd/man/journalctl.html

Docker 镜像

如果安装了 Docker 镜像,可以从命令行启动 Elasticsearch。 根据你使用的是开发模式还是生产模式,方法不同。 参考 Docker Run

Windows MSI 安装包

如果你是在 Windows 上使用 .msi 安装包安装的 Elasticsearch,可以从命令行启动 Elasticsearch。 如果你想让它在没有任何用户交互的情况下在系统启动时自动启动,请 在 Windows 上将 Elasticsearch 作为服务安装

从命令行运行 Elasticsearch

如果没有作为服务安装并配置为在安装完成时启动,则可以在安装后从命令行启动 Elasticsearch,如下所示:

.\bin\elasticsearch.exe

命令行终端将显示类似如下的输出:

elasticsearch exe

默认情况下,Elasticsearch 在前台运行,除了 LOGSDIRECTORY 目录中的 <cluster name>.log 文件之外,其还将日志打印到 STDOUT,且可以通过按 Ctrl-C 来停止。

RPM 安装包

安装后不会自动启动 Elasticsearch。 如何启动和停止 Elasticsearch 取决于你的系统使用 SysV init 还是 systemd(在较新的发行版中使用)。 可以通过运行以下命令来判断哪个正在被使用:

ps -p 1

使用 SysV init 运行 Elasticsearch

使用 chkconfig 命令将 Elasticsearch 配置为在系统启动时自动启动:

sudo chkconfig --add elasticsearch

可以使用 service 命令启动和停止Elasticsearch:

sudo -i service elasticsearch start
sudo -i service elasticsearch stop

如果 Elasticsearch 由于任何原因无法启动,它会将失败的原因打印到 STDOUT。 日志文件可以在 /var/log/elasticsearch/ 位置找到。

使用 systemd 运行 Elasticsearch

要将 Elasticsearch 配置为在系统启动时自动启动,请运行以下命令:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

Elasticsearch 可按如下方式启动和停止:

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

这些命令不提供关于 Elasticsearch 是否成功启动的反馈。 相反,这些信息将被写入位于 /var/log/elasticsearch/ 的日志文件中。

如果你对 Elasticsearch 密钥库进行了密码保护,则需要使用本地文件和 systemd 环境变量向 systemd 提供密钥库密码。 该本地文件在存在时应受到保护,一旦 Elasticsearch 启动并运行,可以安全地删除该文件。

echo "keystore_password" > /path/to/my_pwd_file.tmp
chmod 600 /path/to/my_pwd_file.tmp
sudo systemctl set-environment ES_KEYSTORE_PASSPHRASE_FILE=/path/to/my_pwd_file.tmp
sudo systemctl start elasticsearch.service

默认情况下,Elasticsearch 服务不在 systemd 日志中记录信息。 要启用journalctl 日志记录,必须从 elasticsearch.service 文件的 ExecStart 命令行中删除 --quiet 选项。

启用 systemd 日志记录时,可以使用 journalctl 命令获得日志记录信息:

要跟踪日志,执行:

sudo journalctl -f

要列出 elasticsearch 服务的日志记录:

sudo journalctl --unit elasticsearch

要列出从给定时间开始的 elasticsearch 服务的日志记录:

sudo journalctl --unit elasticsearch --since  "2016-10-30 18:17:16"

更多命令行选项,请查看 man journalctl 或者 https://www.freedesktop.org/software/systemd/man/journalctl.html