Elastic:linux设置elasticsearch、kibana开机自启

0. 引言

每次启动服务器都要手动启动es服务,相当之不方便,为此,书写一个脚本,实现es、kibana的开机自启

1. 原理

首先任何服务要实现开机自启,都可分为如下三步: 1、在/etc/init.d目录下创建启动、关闭服务的脚本,脚本中要设置运行级别、启动优先级、关闭优先级等。

2、给脚本赋权,保证脚本能够执行

shell 复制代码
chmod +x /etc/init.d/xxx

3、将脚本添加到开机自启列表

shell 复制代码
# 添加开机自启
chkconfig --add xxx
# 状态设置为启动
chkconfig xxx on

注意:部分java服务,需要指定jdk路径,否则会报错找不到java

2. 实现

1、编写启动脚本

bash 复制代码
cd /etc/init.d
vim elasticsearch

脚本内容

其中elastic为自建的非root账号,专用于启动es、kibana;su - elastic表示切换至elastic账号执行

shell 复制代码
#!/bin/bash
#chkconfig: 2345 54 26
#description: elasticsearch
#processname: elasticsearch

ES_HOME=/var/local/elasticsearch

start(){                           
        su - elastic -c "$ES_HOME/bin/elasticsearch -d -p pid"
        echo "es is started"
}
stop(){                                
        pid=`cat $ES_HOME/pid`
        kill -9 $pid
        echo "es is stopped"
}
status(){
        ps aux | grep $ES_HOME
}
restart(){              
        stop
        sleep 1
        start
}
case "$1" in        
"start")
        start      
        ;;
"stop")            
        stop
        ;;
"status")
        status
        ;;
"restart")            
        restart
        ;;
*)      
        echo "支持指令:$0 start|stop|restart|status"
        ;;
esac

2、给脚本赋权

shell 复制代码
chmod +x /etc/init.d/elasticsearch

3、执行脚本验证一下

shell 复制代码
service elasticsearch status
service elasticsearch start
service elasticsearch stop

4、添加到开机自启列表

shell 复制代码
# 添加开机自启
chkconfig --add elasticsearch
# 状态设置为启动
chkconfig elasticsearch on

5、同样书写kibana的启动脚本,同时也执行上述的赋权和添加开机列表指令

shell 复制代码
vim kibana

脚本内容: 因为ps指令无法获取kibana pid,所以换了通过5601端口来查询进程id的方法,如果后续端口调整了,这里脚本也要调整

shell 复制代码
#!/bin/bash
#chkconfig: 2345 55 27
#description: kibana
#processname: kibana

KIBANA_HOME=/var/local/kibana
start(){                                
        su - elastic -c "nohup $KIBANA_HOME/bin/kibana  >>/dev/null 2>&1 &"
        echo "kibana is started"
}
stop(){                                
        # 这里主要是通过网络端口5601寻找kibana进程的pid
        kibana_pid_str=`netstat -tlnp |grep 5601 | awk '{print $7}'`
        kibana_pid=`echo ${kibana_pid_str%%/*}`
        kill -9 $kibana_pid
        echo "kibana is stopped"
}
status(){
        ps aux | grep $KIBANA_HOME
}
restart(){              
        stop
        sleep 1
        start
}
case "$1" in        
"start")
        start      
        ;;
"stop")            
        stop
        ;;
"status")
        status
        ;;
"restart")            
        restart
        ;;
*)      
        echo "支持指令:$0 start|stop|restart|status"
        ;;
esac

6、重启服务器,重启后直接访问kibana,查询正常,说明es和kibana都自动启动了,设置成功!

相关推荐
神奇小汤圆13 小时前
面试必问:HashMap和ConcurrentHashMap的区别,这次彻底说清楚
后端
掘金者阿豪13 小时前
2026年Java开发者生存指南:早晚被淘汰的“码农”,如何借AI逆风翻盘,薪资暴涨50%
人工智能·后端
武子康13 小时前
大数据-261 实时数仓-建设指南:从架构设计到业务落地 交易订单、订单产品、产品分类、商家店铺、地域组织表
大数据·hadoop·后端
程序员清风13 小时前
AI编程最佳实践:一个AI写代码,另一个AI查Bug!
java·后端·面试
计算机学姐13 小时前
基于SpringBoot的高校餐饮档口管理系统
java·vue.js·spring boot·后端·spring·intellij-idea·mybatis
前端付豪13 小时前
实现右侧记忆面板可编辑
前端·人工智能·后端
邦爷的AI架构笔记13 小时前
提前踩坑:为 GPT-6 的 200 万 Token 上下文做好工程准备
后端
I love studying!!!13 小时前
Web项目:从Django入手
后端·python·django
苏三说技术13 小时前
程序员最常用的10个画图神器!
后端
星辰_mya14 小时前
【无标题】
数据库·后端·面试·架构师