启动和关闭Elasticsearch

2019-09-08 22:52发布

(一)启动Elasticsearch

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

归档包(.tar.gz)

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

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

./bin/elasticsearch
默认情况下,Elasticsearch在前台运行,将其日志打印到标准输出(stdout),然后按下即可停止Ctrl-C。

与Elasticsearch一起打包的所有脚本都需要一个支持数组版本的Bash,并可通过/bin/bash直接运行,因此,/bin/bash应该直接或通过符号链接打开。

作为守护进程

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

./bin/elasticsearch -d -p pid

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

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

pkill -F pid

归档包(.zip)

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

从命令行运行Elasticsearch

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

.\bin\elasticsearch.bat

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

Debian软件包

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

ps -p 1

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/中找到日志文件。

2)使用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 日记中记录信息。要启用journalctl日志记录,--quiet必须从文件中的ExecStart命令行中删除该选项elasticsearch.service。

当systemd启用了日志记录,日志信息可用journalctl的命令查看:

查看日志tail:

sudo journalctl -f

列出elasticsearch服务的日记:

sudo journalctl --unit elasticsearch

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

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

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

Docker镜像

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

MSI包

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

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

.\bin\elasticsearch.exe

默认情况下,Elasticsearch在前台运行,STDOUT除了.log内部文件之外还打印其日志LOGSDIRECTORY,可以通过按下来停止Ctrl-C。

RPM包

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

ps - p 1

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/中找到日志文件。

2)使用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 日记中记录信息。要启用journalctl日志记录,--quiet必须从文件中的ExecStart命令行中删除该选项elasticsearch.service。

当systemd启用了日志记录,日志信息使用可用journalctl的命令:

查看日志tail:

sudo journalctl - f

列出elasticsearch服务的日志:

sudo journalctl - unit elasticsearch

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

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

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

(二)关闭Elasticsearch

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

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

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

$ jps | grep Elasticsearch
14542 Elasticsearchto

通过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 ):

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

关闭致命错误的Elasticsearch

在Elasticsearch虚拟机的生命周期中,可能会出现某些致命错误,导致虚拟机处于可疑状态。此类致命错误包括内存不足错误,虚拟机内部错误以及严重的I / O错误。

当Elasticsearch检测到虚拟机遇到此类致命错误时,Elasticsearch将尝试记录错误,然后暂停虚拟机。当关闭此类Elasticsearch,它不会按上述顺序关闭。Elasticsearch进程还将返回一个特殊的状态代码,指示错误的性质。

JVM内部错误-128
内存不足错误-127
堆栈溢出错误-126
未知的虚拟机错误-125
严重的I/O错误-124
未知的致命错误-1



登录 后发表评论
0条评论
还没有人评论过~