美文网首页ES面试
Elasticsearch学习笔记(8)

Elasticsearch学习笔记(8)

作者: 几回寒暑 | 来源:发表于2018-12-13 18:29 被阅读0次

    目录

    启动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

    下一章 —— Elasticsearch学习笔记(9)

    相关文章

      网友评论

        本文标题:Elasticsearch学习笔记(8)

        本文链接:https://www.haomeiwen.com/subject/bfnuhqtx.html