前言
自己搭建过ELK环境的小伙伴,有没有都非常讨厌Kibana进程的启动和停止,Kibana进程的pid甚至都没法直接用常规的ps命令查询。 今天老万教你如何配置Kibana服务,简化kibana的启动、停止和重启,并且实现kibana服务的开机自启动。
这里演示采用chkconfig方式配置开机自启动。其他配置方式可以参考Centos中配置开机自启动的方式汇总
配置过程
1、在/etc/init.d目录下,新建脚本kibana
cd /etc/init.d
vi kibana
脚本内容如下:
#!/bin/bash
KIBANA_HOME=/usr/local/kibana-6.2.4-linux-x86_64
case $1 in
start)
nohup $KIBANA_HOME/bin/kibana >>/dev/null 2>&1 &
echo "kibana start"
;;
stop)
kibana_pid_str=`netstat -tlnp |grep 5601 | awk '{print $7}'`
kibana_pid=`echo ${kibana_pid_str%%/*}`
kill -9 $kibana_pid
echo "kibana stopped"
;;
restart)
kibana_pid_str=`netstat -tlnp |grep 5601 | awk '{print $7}'`
kibana_pid=${kibana_pid_str%%/*}
kibana_pid=`echo ${kibana_pid_str%%/*}`
kill -9 $kibana_pid
echo "kibana stopped"
nohup $KIBANA_HOME/bin/kibana >>/dev/null 2>&1 &
echo "kibana start"
;;
status)
kibana_pid_str=`netstat -tlnp |grep 5601 | awk '{print $7}'`
if test -z $kibana_pid_str; then
echo "kibana is stopped"
else
pid=`echo ${kibana_pid_str%%/*}`
echo "kibana is started,pid:"${pid}
fi
;;
*)
echo "start|stop|restart|status"
;;
esac
注意??: 每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。 第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。 第二行对服务进行描述,可以用\ 跨行注释。
#!/bin/bash
解释说明: 配置kibana服务在2、3、4、5的level等级下脚本执行顺序是98, 1、6的level等级下脚本执行顺序是01。
2、增加脚本的可执行权限
chmod +x kibana
3、查看chkconfig list
chkconfig --list
4、把服务添加到chkconfig列表
chkconfig --add kibana
5、设置kibana服务自启动
chkconfig kibana on //开启开机自动启动
6、查看kibana服务自启动状态
chkconfig --list kibana
如果2~5都是on,就表明会自动启动了
7、服务的启动、停止、重启和状态查看
//查看服务状态
service kibana status
//服务启动
service kibana start
//服务停止
service kibana stop
//服务重启
service kibana restart
总结
本文主要是介绍了如果通过chkconfig配置Kibana服务,简化kibana的启动、停止和重启,并且实现kibana服务的开机自启动。其中的难点是步骤1在在/etc/init.d目录下编写服务执行脚本,核心是服务启动命令和如何寻找到服务的pid。
|