kibana几次崩溃问题引发的探索

写在最前

此文仅作为本人网络日志,记录工作学习经验以备忘。并非教程、论文或心得。

问题

近两天每天早上回来发现测试机上kibana的进程消失了

假设

因为之前在1G内存的机器上跑ELK时,如果安装了x-pack就会导致启动kibana时elasticsearch崩溃掉,并且在扩大内存之后问题解决,因此假设问题在于out of memory

目的

elasticsearch占用内存比较大,网上大多优化配置是加大elasticsearch的内存配置,锁住内存交换等方法以提高性能。但是现在我先要做的是,尽量减小elastic资源消耗,以保证我机器上其他程序的正常运行。因此与这些优化的目的相反。

实验与分析

首先在$ES_HOME(elasticsearch目录)/config下有3个配置文件,其中jvm打头的配置中配置JVM相关设置,其中:

################################################################
## IMPORTANT: JVM heap size
######################################################
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
## -Xms4g
## -Xmx4g

要求这里初始化(最小)内存和最大内存需要设置一样,我虚拟机目前配置的2G内存,希望留给其他程序足够的空间,这里设置为1g:

-Xms1g
-Xmx1g

这样跑下来内存占用:
kibana几次崩溃问题引发的探索_第1张图片
是超过了我设置的值的。因此我想试试bootstrap.memory_lock: true 这个设置
在Memory中去掉该设置的注释:

# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.

设置了这个属性之后,不再回使用内存交换,即从读写虚存,而虚存实际上是硬盘读写,效率比内存低得多,一般开启这个选项是为了提高性能.然后就出问题了,后台启动elastic过一阵进程自动消失,查看日志发现

[2017-11-17T11:21:16,128][INFO ][o.e.n.Node ] [es_node1] starting …
[2017-11-17T11:21:16,447][INFO ][o.e.t.TransportService ] [es_node1] publish_address {192.168.5.233:9300}, bound_addresses {192.168.5.233:9300}
[2017-11-17T11:21:16,457][INFO ][o.e.b.BootstrapChecks ] [es_node1] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
[2017-11-17T11:21:16,458][ERROR][o.e.b.Bootstrap ] [es_node1] node validation exception
[1] bootstrap checks failed
[1]: memory locking requested for elasticsearch process but memory is not locked
[2017-11-17T11:21:16,523][INFO ][o.e.n.Node ] [es_node1] stopping …
[2017-11-17T11:21:16,741][INFO ][o.e.n.Node ] [es_node1] stopped
[2017-11-17T11:21:16,742][INFO ][o.e.n.Node ] [es_node1] closing …
[2017-11-17T11:21:16,810][INFO ][o.e.n.Node ] [es_node1] closed

查此错报,

原因:锁定内存失败

解决方案:
切换到root用户,编辑limits.conf配置文件, 添加类似如下内容:
sudo vim /etc/security/limits.conf

添加如下内容:
* soft memlock unlimited
* hard memlock unlimited
备注:* 代表Linux所有用户名称

保存、退出、重新登录才可生效
临时取消限制
ulimit -l unlimited

能正常启动,内存占用:

kibana几次崩溃问题引发的探索_第2张图片

这样会导致使用的内存更多,但是由于锁住了交换内存,效率应该会上升,根据需要,我现在不锁定内存.注释掉锁定的配置.

目前看log,和继续测试

你可能感兴趣的:(ELK搭建)