Elasticsearch的启动方法和停止方法

目录

启动Elasticsearch

压缩包(.tar .gz)

从命令行启动

作为守护进程运行

压缩包(.zip)

用命令行运行

Debian packages

通过SysV init 运行Elasticsearch

通过systemd运行Elasticsearch

Docker图像

MSI packages

用命令行运行

RPM包

通过SysV init 运行Elasticsearch

通过systemd运行Elasticsearch

停止Elasticsearch

出现致命错误时停止


启动Elasticsearch

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

压缩包(.tar .gz)

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

从命令行启动

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

./bin/elasticsearch

如果我们对Elasticsearch密钥库进行了密码保护,系统将提示我们输入密钥库的密码。

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

作为守护进程运行

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

./bin/elasticsearch -d -p pid

如果我们对Elasticsearch密钥库进行了密码保护,系统将提示我们输入密钥库的密码。有关详细信息,请参阅安全设置

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

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

pkill -F pid

Elasticsearch.tar.gz包不包括systemd模块。要将Elasticsearch作为服务进行管理,请改用Debian或RPM包。

压缩包(.zip)

如果在Windows上安装了带有.zip包的Elasticsearch,则可以从命令行启动Elasticsearch。如果希望Elasticsearch在引导时自动启动,而无需任何用户交互,请将Elasticsearch安装为服务。

用命令行运行

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

.\bin\elasticsearch.bat

Debian packages

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

ps -p 1

通过SysV init 运行Elasticsearch

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

sudo update-rc.d elasticsearch defaults 95 10

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

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

如果Elasticsearch由于任何原因无法启动,它会将失败原因打印到STDOUT.Log文件可以在/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"

Docker图像

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

MSI packages

如果使用.msi包在Windows上安装了Elasticsearch,则可以从命令行启动Elasticsearch。如果我们呢希望它在引导时自动启动,而无需任何用户交互,请将Elasticsearch安装为Windows服务

用命令行运行

一旦安装,Elasticsearch可以从命令行启动,如果不是作为服务安装的,并且配置为在安装完成时启动,如下所示:

.\bin\elasticsearch.exe

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

RPM包

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

ps -p 1

通过SysV init 运行Elasticsearch

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

sudo chkconfig --add elasticsearch

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

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

如果Elasticsearch由于任何原因无法启动,它会将失败原因打印到STDOUT.Log文件可以在/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"

停止Elasticsearch

Elasticsearch的有序关闭可确保Elasticsearch有机会清理和关闭未完成的资源。例如,以有序方式关闭的节点将从集群中移除自身,将translog同步到磁盘,并执行其他相关的清理活动。通过正确停止Elasticsearch,可以帮助确保有序关闭。

如果我们将Elasticsearch作为服务运行,则可以通过安装提供的服务管理功能停止Elasticsearch。

如果我们直接运行Elasticsearch,我们可以通过发送control-C(如果我们在控制台中运行Elasticsearch)或通过向POSIX系统上的Elasticsearch进程发送SIGTERM来停止Elasticsearch。我们可以通过各种工具(如ps或jps)获取PID以将信号发送到:

$ jps | grep Elasticsearch
14542 Elasticsearch

从Elasticsearch启动日志:

[2016-07-07 12:26:18,908][INFO ][node                     ] [I8hydUG] version[5.0.0-alpha4], pid[15399], build[3f5b994/2016-06-27T16:23:46.861Z], OS[Mac OS X/10.11.5/x86_64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_92/25.92-b14]

或者通过指定启动时写入PID文件的位置(-p<path>):

$ ./bin/elasticsearch -p /tmp/elasticsearch-pid -d
$ cat /tmp/elasticsearch-pid && echo
15516
$ kill -SIGTERM 15516

出现致命错误时停止

在Elasticsearch虚拟机的生命周期内,可能会出现某些致命错误,使虚拟机处于可疑状态。这些致命错误包括内存不足错误、虚拟机内部错误和严重的I/O错误。

当Elasticsearch检测到虚拟机遇到这种致命错误时,Elasticsearch将尝试记录错误,然后停止虚拟机。当Elasticsearch启动这样的关闭时,它不会像上面描述的那样经历有序的关闭。Elasticsearch进程还将返回一个特殊的状态代码,指示错误的性质。

JVM internal error

128

Out of memory error

127

Stack overflow error

126

Unknown virtual machine error

125

Serious I/O error

124

Unknown fatal error

1

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于Elasticsearch服务启动后立即停止的问题,可能有多种原因导致。以下是一些常见的解决方法: 1. 检查日志:查看Elasticsearch的日志文件,通常位于`/var/log/elasticsearch/`目录下,查看是否有错误或异常信息可以提供线索。 2. 确保JVM版本兼容:Elasticsearch依赖于Java虚拟机(JVM),确保您安装的Java版本与Elasticsearch要求的版本兼容。您可以在Elasticsearch官方文档中找到与您使用的Elasticsearch版本匹配的Java版本要求。 3. 检查资源限制:检查服务器上的资源限制,包括内存、磁盘空间和文件描述符限制。确保Elasticsearch有足够的资源来正常运行。 4. 检查配置文件:检查Elasticsearch配置文件(通常位于`/etc/elasticsearch/elasticsearch.yml`)是否正确配置。特别注意网络绑定地址、端口和集群配置等项。 5. 禁用防火墙或安全组:如果您的服务器上启用了防火墙或安全组,确保Elasticsearch的端口(默认为9200和9300)被允许通过。 6. 清理数据目录:如果之前的Elasticsearch实例发生了异常关闭,可能会导致数据目录中的某些文件被锁定。您可以尝试删除`/var/lib/elasticsearch/`目录下的数据文件,然后重新启动Elasticsearch。 7. 升级或降级版本:如果以上方法都无法解决问题,您可以尝试升级或降级Elasticsearch版本,以查看是否能够解决该问题。 请记住,在进行任何更改之前,务必备份重要的数据和配置文件。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值