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
下载elasticserach5包,进行以下操作
tar -zxvf elasticserach-
5.0.
0...tar.gz
mv ~/elasticserach-
5.0.
0...tar.gz /usr/share/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
head插件下载安装
git clone git@github.com/.../.....git
cd elasticsearch-head
make
npm install
npm run start
至此,head插件已可独立运行。
curl localhost:
9100
自启动设置
创建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,这样从逻辑上来说,更合理,从管理上来看,也更有层次。