#!/bin/bash
#ftp地址
ftp_ip=22.5.5.5
ftp_port=22
ftp_user=cib
ftp_pwd='cib'
#ftp存放es及插件包路径
ftp_srcDirectory='/oy'
#es包名及插件名
es_tar=elasticsearch-7.16.3-linux-x86_64.tar.gz
ik_tar=elasticsearch-analysis-ik-7.16.3.zip
ingest_tar=ingest-attachment-7.16.3.zip
#es用户及es路径
es_user=es
es_path=/home/es
es_plugins_path=/home/es/plugins
es_package_path=/home/es/package
#解压后es名称和es的binlujing
es_name=elasticsearch-7.16.3
es_bin=/home/es/elasticsearch-7.16.3/bin
es_plugins=/home/es/elasticsearch-7.16.3/plugins
#es ip地址及所需修改的配置
es_cluster_name=elasticsearch
es_node_name=node-1
es_network_host=28.7.54.89
es_http_port=9200
es_cluster_initial_master_nodes=["node-1"]
es_ingest_geoip_downloader_enabled=false
es_mem_max=-Xmx4g
es_mem_min=-Xms4g
#端口
PORT=9200
NAME=elasticsearch
#根据名称查询es的进程号
ID=`ps -aux|grep "$NAME" |grep -v "grep" |awk '{print $2}'`
#根据端口号查es的进程号
CHECK_PORT=`netstat -tnlp|grep "$PORT"`
#es的bin路径
ELASTICSEARCH_SERVER=/home/es/elasticsearch-7.16.3/bin/elasticsearch
RETAVL=0
#es地址
url=http://28.7.54.89:9200
#es ingest插件管道
ingest=_ingest/pipeline/attachment
#es索引
index=file_datas
echo "es init ----------------start"
#创建es路径
if [ ! -d "$es_path" ];then
mkdir $es_path
else
echo "$es_path folder already exist!"
fi
#创建es启动用户
function add_user(){
echo "add es user"
userdel -r ${es_user}
useradd ${es_user}
}
add_user
#创建es插件lujing
if [ ! -d "$es_plugins_path" ];then
mkdir $es_plugins_path
else
echo "$es_plugins_path folder already exist!"
fi
#创建es安装包路径
if [ ! -d "$es_package_path" ];then
mkdir $es_package_path
else
echo "$es_package_path folder already exist!"
fi
#配置系统环境变量
function etc_profile(){
echo "修改用户打开es最大线程数和文件数"
echo 'es soft nofile 65536' >>/etc/security/limits.conf
echo 'es hard nofile 65536' >>/etc/security/limits.conf
echo 'vm.max_map_count=655360' >>/etc/sysctl.conf
}
etc_profile
sysctl -p
echo "es init ----------------end"
sleep 2
echo "es install----------------start"
#登录ftp,拉取es包
ftp -i -v -n $ftp_ip <<EOF
user $ftp_user $ftp_pwd
echo "login ftp successfully!"
cd ${ftp_srcDirectory}
binary
get $es_tar $es_package_path/$es_tar
bye
EOF
#登录ftp,拉取ik分词器包
ftp -i -v -n $ftp_ip <<EOF
user $ftp_user $ftp_pwd
echo "login ftp successfully!"
cd ${ftp_srcDirectory}
binary
get $ik_tar $es_package_path/$ik_tar
bye
EOF
#登录ftp,拉取ingest插件包
ftp -i -v -n $ftp_ip <<EOF
user $ftp_user $ftp_pwd
echo "login ftp successfully!"
cd ${ftp_srcDirectory}
binary
get $ingest_tar $es_package_path/$ingest_tar
bye
EOF
echo "get from ftp successfully!"
#解压es包
cd $es_package_path
echo "解压es"
tar -zxvf $es_tar -C ../
#修改es配置
cd $es_package_path/$es_name/config
function editES(){
echo 'cluster.name: '"${es_cluster_name}" >> elasticsearch.yml
echo 'node.name: '"${es_node_name}" >> elasticsearch.yml
echo 'network.host: '"${es_network_host}" >> elasticsearch.yml
echo 'http.port: '"${es_http_port}" >> elasticsearch.yml
echo 'cluster.initial_master_nodes: '"${es_cluster_initial_master_nodes}" >> elasticsearch.yml
echo 'ingest.geoip.downloader.enabled: '"${es_ingest_geoip_downloader_enabled}" >> elasticsearch.yml
echo "${es_mem_max}" >>jvm.options
echo "${es_mem_min}" >>jvm.options
}
editES
echo "edit es config successfully!"
#解压ik分词器放到es的plugins目录下
cd $es_package_path
unzip -n $ik_tar -d $es_plugins/ik
sleep 3
#解压ingest插件放到es的plugins目录下
unzip -n $ingest_tar -d $es_plugins/ingest
#给es目录授权
chown -R ${es_user}:${es_user} ${es_path}
chown -R ${es_user}:${es_user} ${es_plugins_path}
chown -R ${es_user}:${es_user} ${es_package_path}
echo "es install-------------end"
sleep 2
echo "es start-------------end"
#启动es服务
function start(){
OLDPID=""
queryPid(){
OLDPID=$(ps -ef|grep $es_name|grep -v grep|awk '{print $2}')
}
queryPid
if [ x"$OLDPID" != x"" ];then
kill -TERM $OLDPID
echo "$es_name (pid:$OLDPID) exiting..."
while [ x"$OLDPID" != x"" ]
do
sleep 1
queryPid
done
echo "$NAME already running"
else
su - es <<!
nohup $ELASTICSEARCH_SERVER -d > app.log 2 >error.log &
if [ $? -eq 0 ];then
echo "elasticsearch run successfully"
else
echo "elasticsearch run fail"
fi
exit
!
fi
}
#停止es服务
function stop(){
echo "stop es"
OLDPID=""
queryPid(){
OLDPID=$(ps -ef|grep $es_name|grep -v grep|awk '{print $2}')
}
queryPid
if [ x"$OLDPID" != x"" ];then
kill -TERM $OLDPID
echo "$es_name (pid:$OLDPID) exiting..."
while [ x"$OLDPID" != x"" ]
do
sleep 1
queryPid
done
echo "$NAME process is killed "
else
echo "$NAME is not running "
fi
}
#重启服务
function restart(){
stop
sleep 5
start
}
restart
echo "es start -------------end"
sleep 35
echo "create es index --------------start"
#先删除索引
curl -X DELETE \
"$url$index" \
-H 'Content-Type: application/json' \
#创建索引
curl -X PUT "$url$index" -H 'Content-Type: application/json' -d '
{
}'
echo "create es index --------------end"
拆分:将包插件准备好
linux:LINUX X86_64
华为麒麟:LINUX AARCH64
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-16-3
各插件地址:
https://elasticsearch.cn/download/
1.elasticsearch的安装
#!bin/bash
#es包及插件所在位置
package_remote_path=/home/cios/es
#es包名及插件名
es_tar=elasticsearch-7.16.3-linux-x86_64.tar.gz
ik_tar=elasticsearch-analysis-ik-7.16.3.zip
ingest_tar=ingest-attachment-7.16.3.zip
#es用户及最终路径
es_user=esadm
es_path=/home/esadm
#暂存路径
es_plugins_path=/home/esadm/plugins
es_package_path=/home/esadm/package
#es名称 用来判断进程是否存在
es_name=elasticsearch-7.16.3
es_bin=/home/esadm/elasticsearch-7.16.3/bin
es_plugins=/home/esadm/elasticsearch-7.16.3/plugins
#es相关配置 elasticsearch.yml
es_cluster_name=elasticsearch
es_node_name=node-1
es_ip=28.7.35.125
es_host=9200
es_nodes=["node-1"]
es_enabled=false
es_memer_max=-Xmx4g
es_memer_min=-Xms4g
echo "es install -----start"
#创建es启动用户
function add_user(){
echo "新增es用户"
userdel -r ${es_user}
useradd ${es_user}
}
add_user
if [ ! -d "$es_path" ];then
mkdir $es_path
else
echo "$es_path folder already exists!"
fi
if [ ! -d "$es_plugins_path" ];then
mkdir $es_plugins_path
else
echo "$es_plugins_path folder already exists!"
fi
if [ ! -d "$es_package_path" ];then
mkdir $es_package_path
else
echo "$es_package_path folder already exists!"
fi
#给es用户授权
chown -R ${es_user}:${es_user} ${es_path}
chown -R ${es_user}:${es_user} ${es_path}
chown -R ${es_user}:${es_user} ${es_package_path}
#es包放置es目录
cd ${package_remote_path}
cp $es_tar $es_package_path/$es_tar
cp $ik_tar $es_package_path/$ik_tar
cp $ingest_tar $es_package_path/$ingest_tar
#解压
cd $es_package_path
tar -zxvf $es_tar -C ../
#修改es配置文件
cd $es_parh/$es_name/config
function editES(){
echo 'cluster.name: '"${es_cluster_name}">>elasticsearch.yml
echo 'node.name: '"${es_node_name}">>elasticsearch.yml
echo 'network.host: '"${es_ip}">>elasticsearch.yml
echo 'http.host: '"${es_host}">>elasticsearch.yml
echo 'cluster.initial_master_nodes: '"${es_nodes}">>elasticsearch.yml
echo 'ingest.geoip.downloader.enabled: '"${es_enabled}">>elasticsearch.yml
echo "${es_memer_max}">>jvm.options
echo "${es_memer_min}">>jvm.options
}
editES
if [ $? -ne 0];then
echo "edit es config fail"
fi
#解压插件,放置es的plugins目录下
cd $es_package_path
unzip -n $ik_tar -d $es_plugins/ik
sleep 3
unzip -n $ingest_tar -d $es_plugins/ingest
#es目录授权
chown -R ${es_user}:${es_user} ${es_path}
chown -R ${es_user}:${es_user} ${es_plugins_path}
chown -R ${es_user}:${es_user} ${es_package_path}
chmod -R 755 ${es_path}
echo "es install end"
2.es启动
#!/bin/bash
es_name=elasticsearch-7.16.3
port=9200
ELASTICSEARCH_SERVER=/home/esadm/elasticsearch-7.16.3/bin/elasticsearch
function start(){
PID=""
query(){
PID=$(ps -ef|grep $es_nme|grep -v grep |awk '{print $2}')
}
query
if [ x"$PID" != x"" ];then
kill -TERM $PID
echo "$es_name (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 1
query
done
echo "es already running"
else
nohup $ELASTICSEARCH_SERVER -d >app.log 2>error.log &
echo "es run successfully"
echo 0
fi
}
start
3.es停止
#!/bin/bash
es_name=elasticsearch-7.16.3
port=9200
ELASTICSEARCH_SERVER=/home/esadm/elasticsearch-7.16.3/bin/elasticsearch
function stop(){
PID=""
query(){
PID=$(ps -ef|grep $es_nme|grep -v grep |awk '{print $2}')
}
query
if [ x"$PID" != x"" ];then
kill -TERM $PID
echo "$es_name (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 1
query
done
echo "es is killed"
else
echo "es is noting running"
fi
}
stop
4.es创建索引
curl命令,可以用postman code生成curl命令