elasticsearch

把Elasticsearch部署在屁点大内存的服务器上怎么办

2018-07-04  本文已影响29人  月球在此
为什么把Elasticsearch部署在屁点大内存的服务器上....说来话长,总结起来就是团队没钱

来说说常见问题:

JAVA_HOME=/usr/java/jdk1.8.0_171
export JRE_HOME=/usr/java/jdk1.8.0_171/jre 
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

现在来说说经常奔溃怎办

之前在4G服务器上3个月没挂过,但是换了之后,开始频繁的挂掉,同步数据会挂,访问量大了会挂,被别人爬快了也挂,没办法了要做点补救措施,开始也是二,写了一段检查脚本服务挂了超过5分钟就给自己发邮件,然后手动重启,但是这个已经不能让我愉快的玩耍了,然后在去了百度的google了一下发现运维们其实是会有一段检查重启的脚本,接下来看看这脚本怎么写的

#!/bin/bash
cd `dirname $0`
BIN_DIR=`pwd`
# jdk路径,这里有个坑,下文会讲
export JAVA_HOME=/usr/java/jdk1.8.0_171
# 获取es进程ID,我的es目录是/home/elasticS/elasticsearch-6.2.2
ES_ID=`ps -ef |grep elasticsearch |grep -w 'elasticsearch-6.2.2'|grep -v 'grep'|awk '{print $2}'`
# 日志输出
ESMonitorLog=$BIN_DIR/es-master-monitor.log
Monitor()
{
  if [[ $ES_ID ]];then # 这里判断ES进程是否存在
    echo "[info]当前ES进程ID为:$ES_ID"
  else
    echo "[error]ES进程不存在!ES开始自动重启..."
#启动 ES的账号
    su user
#切换账号的JAVA环境
    source  ~/.bash_profile
#到启动的目录下
    cd xxxxxxx/elasticsearch-6.2.2
#启动ES
    ./bin/elasticsearch -d
  fi
}
Monitor>>$ESMonitorLog

我这段可能和网上的不太一样,因为我直接抄下来之后一直无法执行,不知道是不是我的配置不一样,后来就直接改了一些,写的不会请指出

结束

最近刚在运行,还不知道是不是稳定,看看效果吧,祝大家愉快

上一篇 下一篇

猜你喜欢

热点阅读