Kibana 维护

Kibana 维护

最近发现Kibana经常不稳定,经常发生kibana进程莫名就挂掉了。
同时也发现没有日志可排查到导致崩溃的原因;
大胆的推测一下原因:

  1. 内存不足
  2. 一次性大量导入了查询索引请求
  3. 默认的配置需要调优

根据以上3点猜测,需

  • 寻找错误日志验证想法
  • 优化下kibana配置
  • 另外优化自愈脚本,添加到轮训计划任务里

kibana 配置修改

kibana.yaml将以下默认值进行修改. kibana官方配置说明

1.增加日志

# Enables you specify a file where Kibana stores log output.
#logging.dest: stdout
logging.dest: /logs-path/kibana.log
  1. 调整maxPayloadBytes
server.maxPayloadBytes:
默认值: 1048576 服务器请求的最大负载,单位字节
# The maximum payload size in bytes for incoming server requests.
#server.maxPayloadBytes: 1048576  # 默认为1M
server.maxPayloadBytes: 52428800  # 现在调整为50M
  1. 只打印错误日志
logging.quiet:
默认值: false 该值设为 true 时,禁止除错误信息除外的所有日志输出。
# Set the value of this setting to true to suppress all logging output other than error messages.
#logging.quiet: false
logging.quiet: true

增加自愈脚本

keep_kibana_online.sh
#!/bin/bash
# author: derek

KB_PORT=5601
kibana_pid_num=`lsof -i:${KB_PORT} | wc -l`
KB_BIN=/data/elk/kibana/bin

# check count of kibana pid if 0, kibana may dead;
#  
if [ "${kibana_pid_num}" = 0 ]
then
  echo "kibana service is down, restarting in process now..."
  cd ${KB_BIN}
  ./kibana > /dev/null 2>&1 &
else
  kb_pid=`ps -ef|netstat -anp |grep ${KB_PORT} |grep -v grep |awk '{printf $7}'|cut -d / -f 1`
  echo "kibana now is alive, pid is ${kb_pid}"
fi

添加到crontab 每10分钟轮训检查一次

# cronta -e 
*/10 * * * *  sh /BIN_PATH/keep_kibana_online.sh

后续观察一段时间

posted @ 2020-08-17 17:19  dereklok  阅读(503)  评论(0)    收藏  举报