Ubuntu16.04环境下配置elasticsearch5

时间:2022-12-29 09:19:43

Ubuntu16.04环境下配置elasticserach5

简述

elasticserach是apache的一款基于Java环境的搜索包,当前项目中需要用到该包来分析搜索抓取的
轻量级数据,不考虑分布式部署,仅仅是在服务器环境下单例运行,需集成简单的图形插件,elast
search-head是个不错的选择,然而目前该插件在elasticsearch版本5环境下,不支持插件安装,
须单例运行在9100的端口上,配置目标为在Ubuntu环境下,es作为服务开机自启动,es-head同样
须自启动。
- 无bug运行,使用tar安装方式,不使用apt-get.
- bash脚本编写自启动,须用到sysv-rc-conf命令.

开始

  • 推荐自己去oracle下载java8版本,进行手动配置,相关教程非常多,不是本文的重点,配置到
mv ~/jdk8 /opt/java8/ -R
export JAVA_HOME=...
export CLASS_PATH=...
source .profile
  • 安装sysv-rc-conf服务
apt-get install sysv-rc-conf
  • 安装nodejs,npm以及淘宝源cnpm,以运行elasticsearch-head
apt-get install nodejs-lecgry
apt-get install npm
##检测是否安装成功
node -v
npm -v
##配置淘宝源
npm install -g package cnpm ......#此处为淘宝源
cnpm -v
##显示当前node npm环境信息,即配置完成
  • 下载elasticserach5包,进行以下操作
tar -zxvf elasticserach-5.0.0...tar.gz
mv ~/elasticserach-5.0.0...tar.gz /usr/share/elasticserach5
#elasticserach5相关配置,在后面会介绍
#添加用于启动服务的用户
adduser elsearch
chown -R elsearch:elsearch /usr/share/elasticserach5
chmod -R +x /usr/share/elasticserach5/bin
su elsearch
./usr/share/elasticserach5/bin/elasticserach

至此,elasticserach5服务即可运行

apt-get install curl
curl localhost:9200/?pertty=true
#显示包含elasticserach5一些基本信息的json,即运行完成
  • head插件下载安装
git clone git@github.com/.../.....git
cd elasticsearch-head
make
npm install
npm run start

至此,head插件已可独立运行。

curl localhost:9100
#返回html文档,即运行完成。

自启动设置

  • 创建esdata服务
vim /etc/init.d/esdata
ES_HOME=/home/teanoyang/elasticsearch5
EXEC_PATH=$ES_HOME
EXEC=elasticsearch
DAEMON=$EXEC_PATH/bin/$EXEC
ServiceName='Elasticsearch 5.0'

if [ ! -x $DAEMON ] ; then
echo "ERROR: $DAEMON not found"
exit 1
fi

stop()
{
echo "Stoping $ServiceName ..."
su - elsearch -c"pkill -u elsearch"
echo "Shutting down $ServiceName: [ successful ]"
}

start()
{
echo "Starting $ServiceName ..."
su - elsearch -c"$DAEMON > /dev/null &"
echo "Starting $ServiceName: [ successful ]"
}
restart()
{
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: service $ServiceName {start|stop|restart}"
exit 1
esac

exit $?

注意:使用pid方式关闭进程须修改elasticsearch文件,考虑到elasticsearch5不支持root用户启动服务,这里是通过用户关闭服务,高效无害,勿忘给esdata加上运行权限。


  • 创建eshead服务,两个选择,一个是通过forever来启动管理服务,另一种是自己创建服务,这里使用后者。

同esdata,自己动手修改,这里有个问题,为什么不使用一个服务来运行这两个进程呢?这里说明下,eshead可以通过pid方式关闭,对其它进程无影响,作为服务于elasticsearch的nodejs图形web服务,其是运行在grunt容器内,关esdata即可关闭所有elsearch用户启动的服务,而关闭eshead,则仅仅关闭的是grunt,这样从逻辑上来说,更合理,从管理上来看,也更有层次。