转载

ES 集群管理工具 cerebro

前言

因为公司技术方面的需求,前一段时间折腾了一下elasticsearch,总体技术水平能够达到简历上的 “熟悉” 的程度。

有管理ES集群经验的朋友肯定都知道elasticsearch的head插件能够实现对es集群的查看,索引分片,展示数据分布等功能,但是在页面美观上有点欠缺。本文介绍一款es集群管理平台--cerebro。

cerebro简介

cerebro算是一款"绿色"软件,只要有标准的java环境,下载解压之后即可使用。

在功能上cerebro支持节点状态监控 服务器磁盘空间,cpu,load,索引数量大小 ,数据分布位置等监控。 支持查询。

安装

wget "https://github.com/lmenezes/cerebro/releases/download/v0.8.1/cerebro-0.8.1.tgz"
tar -zxf cerebro-0.8.1.tgz

解压之后其实只有四个文件夹,我们只需要关注bin 和conf目录,bin有可执行文件 cerebo ,conf里面有需要访问es集群的配置文件。

[root# /opt/cerebro]
# ls
bin  cerebro.db  conf  lib  logs  README.md

编辑配置文件

vim conf/application.conf

hosts = [
  {
    host = "http://localhost:9200"
    name = "es-test"
  }
  # Example of host with authentication
  #{
  #  host = "http://some-authenticated-host:9200"
  #  name = "Secured Cluster"
  #  auth = {
  #    username = "username"
  #    password = "secret-password"
  #  }
  #}
]

这里我们选择不带用户权限校验的方式。

启动

cd /opt/cerebro 
nohup ./bin/cerebro -Dhttp.port=8800 -Dhttp.address=0.0.0.0 &

界面展示

ES 集群管理工具 cerebro

功能

能满足我们对es集群的日常管理维护 ,还是直接上图比较直观。支持索引创建删除,修改集群配置参数 等等,其他功能有需要的可以多研究研究。 需要注意的是 delete index 命令在生产环境切勿乱执行,要慎重。

ES 集群管理工具 cerebro

ES 集群管理工具 cerebro

运维

因为现在公司已经在正式环境中使用cerebro,为了标准化程序管理,我写了一个小脚本支持启动关闭查看状态。该工具默认 cerebro 是安装在/opt/cerebro 目录 。当然也推荐把cerebro的程序交给supervisor管理。

#!/bin/sh
#
# chkconfig: 2345 86 14
# description: cerebro agent daemon
# processname: cerebro
#
# nohup ./bin/cerebro -Dhttp.port=9000 -Dhttp.address=0.0.0.0 >> /tmp/cerebro.log &
# Source function library.
. /etc/rc.d/init.d/functions

if [ -x /opt/cerebro ]; then
    exec=/opt/cerebro/bin/cerebro
else
    exit 5
fi

prog=${exec##*/}
cerebro="/opt/cerebro/bin/cerebro"
conf_file="/opt/cerebro/conf/application.conf"
pidfile="/var/run/cerebro.pid"
timeout=2
lockfile=/var/lock/subsys/$prog
logdir="/data/logs/cerebro.log"

## "cd /opt/yz-falcon-agent/; $exec -c $conf >>$logdir/stdout.log 2>>$logdir/stderr.log &"
start()
{
    echo "Starting cerebro: "
    daemon --user root --pidfile $pidfile " $cerebro -Dhttp.port=9000 -Dhttp.address=0.0.0.0 >>/data/logs/cerebro.log 2>/dev/null &"
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch $lockfile
    [ $RETVAL -eq 0 -a ! -f $pidfile ] && pidof java  > $pidfile
    pid=`cat $pidfile`
    echo "start $prog, pid is $pid"
    return $RETVAL
}

stop()
{
    echo -n $"Shutting down cerebro: "
    killproc -p $pidfile -d $timeout $prog
    rv=$?
    echo
    [ $rv -eq 0 ] && rm -f $lockfile
    return $rv
}

restart()
{
    stop
    start
}

case "$1" in
    start|stop|restart)
        $1
        ;;
    status)
        status -p $pidfile $prog
        ;;
    *)
    echo $"Usage: $0 {start|stop|status|restart}"
    exit 2
    ;;
esac

启动

ES 集群管理工具 cerebro 查看状态

关闭

推荐阅读

https://mp.weixin.qq.com/s/BE8LrpviJNXGV41bhzGFTw

supervisor 工具介绍

原文  https://mp.weixin.qq.com/s/AU1pW9icOLl5F_vPQt2-Aw
正文到此结束
Loading...