Elasticsearch学习笔记(8)
目录
启动Elasticsearch
启动Elasticsearch的方法取决于你如何安装它。
归档文件包(.tar.gz)
如果你用.tar.gz包安装Elasticsearch,你可以从命令行启动Elasticsearch。
从命令行启动
Elasticsearch可以像以下这样从命令行启动:
./bin/elasticsearch
默认情况下,Elasticsearch在前台运行,打印它的日志到标准输出(stdout),可以通过按下Ctrl-C停止它。
注意:所有与Elasticsearch打包的脚本都需要一个支持数组的Bash版本,并且假定Bash在/bin/bash可用。因此,Bash应该直接或通过符号链接在此路径上可用。
作为守护进程运行
要将Elasticsearch作为守护进程运行,请在命令行上指定-d,并使用-p选项在文件中记录进程ID:
./bin/elasticsearch -d -p pid
要关闭Elasticsearch,关闭pid文件中记录的进程ID:
kill
cat pid
归档文件包(.zip)
如果你用一个.zip包在Windows上安装Elasticsearch,你可以从命令行启动它。如果您希望弹性搜索在引导时自动启动,而不需要任何用户交互,install Elasticsearch as a service。
从命令行启动
Elasticsearch可以从命令行启动,像下面这样:
.\bin\elasticsearch.bat
默认情况下,Elasticsearch在前台运行,打印它的日志到标准输出, 可以按下Ctrl -C停止它。
Debian包
Elasticsearch在安装后不会自动启动。如何启动和停止Elasticsearch取决于是否你的系统使用SysVinit或者systemd(新发行版使用的)。你可以通过运行以下命令来判断是哪种:
ps -p 1
用SysV init 运行Elasticsearch
使用update-rc.d命令来配置Elasticsearch,以便在系统启动时自动启动:
sudo update-rc.d elasticsearch defaults 95 10
Elasticsearch可以启动和停止通过使用service命令:
sudo -i service elasticsearch start
sudo -i service elasticsearch stop
如果Elasticsearch因为任何原因启动失败,它将打印失败的原因到标准输出日志。日志文件在/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日志中记录信息。要启用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 images
如果安装了一个Docker图像,你可以从命令行启动Elasticsearch。这里有不同的方法取决于你是使用的开发模式还是生产模式。请看Running Elasticsearch from the command line.
MSI包
如果你是用.msi包在Windows上安装Elasticsearch, 你可以从命令行启动它。如果你想在重启机器时没有任何用户交互启动Elasticsearch,参考install Elasticsearch as a Windows service。
从命令行启动
一但安装完成, Elasticsearch可以从命令行启动了, 如果没有作为服务安装,并且在安装完成时配置为启动,则如下所示:
.\bin\elasticsearch.exe
命令行终端将显示与下面类似的输出:
默认情况下,Elasticsearch在前台运行,除了将日志打印到在日志目录下的<clustername>.log文件,还会打印到标准输出, 可以按Ctrl-C停止。
RPM包
Elasticsearch在安装后不会自动启动。如何启动和停止Elasticsearch取决于你是否你的系统使用SysVinit或者systemd(新的发行版使用)。您可以通过运行以下命令来判断哪个正在被使用:
ps -p 1
用SysV init运行ELasticsearch
使用chkconfig命令来配置Elasticsearch随机自启动:
sudo chkconfig --add elasticsearch
Elasticsearch使用service命令启动和停止:
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日志中记录信息。要启用journalctl日志记录,必须从elasticsearch.service文件中的ExecStart命令行中删除—quiet选项。
当systemd日志记录启用时,日志记录信息可以使用journalctl命令查看:
跟踪日志:
sudo journalctl -f
列出弹性搜索服务的日志条目:
sudo journalctl --unit elasticsearch
从给定时间开始列出elasticsearch服务的日志条目:
sudo journalctl --unit elasticsearch --since "2016-10-30 18:17:16"
停止Elasticsearch
对Elasticsearch的有序关闭确保了Elasticsearch有机会清理和关闭未完成的资源。例如,以一种有序的方式关闭的节点将从集群中删除自己,将日志同步到磁盘,并执行其他相关的清理活动。通过适当停止弹性搜索,可以帮助确保有序关闭。
如果将Elasticsearch作为服务运行,则可以通过安装提供的服务管理功能停止。如果你直接运行Elasticsearch,你可以通过发送control-C停止Elasticsearch,如果你在控制台运行Elasticsearch,或者通过发送SIGTERM到POSIX系统上的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/elaticsearch-pid && echo
15516
$ kill - SIGTERM 15516
停止致命错误
在弹性搜索虚拟机的生命周期中,会出现一些致命的错误,使虚拟机处于可疑状态。这些致命错误包括内存不足错误、虚拟机内部错误和严重的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