当前位置:   article > 正文

Elasticsearch的启动方法和停止方法_elasticsearch 停止

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:

  1. sudo -i service elasticsearch start
  2. sudo -i service elasticsearch stop

如果Elasticsearch由于任何原因无法启动,它会将失败原因打印到STDOUT.Log文件可以在/var/Log/elasticsearch/中找到。

通过systemd运行Elasticsearch

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

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

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

  1. sudo systemctl start elasticsearch.service
  2. sudo systemctl stop elasticsearch.service

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

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

  1. echo "keystore_password" > /path/to/my_pwd_file.tmp
  2. chmod 600 /path/to/my_pwd_file.tmp
  3. sudo systemctl set-environment ES_KEYSTORE_PASSPHRASE_FILE=/path/to/my_pwd_file.tmp
  4. 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:

  1. sudo -i service elasticsearch start
  2. sudo -i service elasticsearch stop

如果Elasticsearch由于任何原因无法启动,它会将失败原因打印到STDOUT.Log文件可以在/var/Log/elasticsearch/中找到。

通过systemd运行Elasticsearch

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

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

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

  1. sudo systemctl start elasticsearch.service
  2. sudo systemctl stop elasticsearch.service

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

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

  1. echo "keystore_password" > /path/to/my_pwd_file.tmp
  2. chmod 600 /path/to/my_pwd_file.tmp
  3. sudo systemctl set-environment ES_KEYSTORE_PASSPHRASE_FILE=/path/to/my_pwd_file.tmp
  4. 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以将信号发送到:

  1. $ jps | grep Elasticsearch
  2. 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>):

  1. $ ./bin/elasticsearch -p /tmp/elasticsearch-pid -d
  2. $ cat /tmp/elasticsearch-pid && echo
  3. 15516
  4. $ 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/508063
推荐阅读
相关标签
  

闽ICP备14008679号