赞
踩
自己搭建过ELK环境的小伙伴,有没有都非常讨厌Kibana进程的启动和停止,Kibana进程的pid甚至都没法直接用常规的ps命令查询。
今天老万教你如何配置Kibana服务,简化kibana的启动、停止和重启,并且实现kibana服务的开机自启动。
这里演示采用chkconfig方式配置开机自启动。其他配置方式可以参考Centos中配置开机自启动的方式汇总
cd /etc/init.d
vi kibana
脚本内容如下:
#!/bin/bash # chkconfig: 2345 98 02 # description: kibana 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) # 这里主要是通过网络端口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 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
说明:
kibana的启动脚本中比较麻烦的是怎么通过shell命令获取到kibana进程的pid,因为通过ps命令并不能获取到kibana的进程信息。这里采用的是通过kibana服务的默认端口号5601获取到服务信息,然后提取出pid的信息。如果你的kibana进程修改了端口号,那么这里的启动脚本中也需要做对应的调整。
注意⚠️:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。
第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。
第二行对服务进行描述,可以用\ 跨行注释。
#!/bin/bash
#chkconfig:2345 98 02
#description:kibana
解释说明:
配置kibana服务在2、3、4、5的level等级下脚本执行顺序是98,
1、6的level等级下脚本执行顺序是02。
chmod +x kibana
chkconfig --list
chkconfig --add kibana
chkconfig kibana on //开启开机自动启动
可以在/etc/rc.d/目录下查看kibana服务的启动级别。具体文件生成规则和命名规则这里不再赘述。
chkconfig --list kibana
如果2~5都是on,就表明会自动启动了
//查看服务状态
service kibana status
//服务启动
service kibana start
//服务停止
service kibana stop
//服务重启
service kibana restart
本文主要是介绍了如果通过chkconfig配置Kibana服务,简化kibana的启动、停止和重启,并且实现kibana服务的开机自启动。其中的难点是步骤1在在/etc/init.d目录下编写服务执行脚本,核心是服务启动命令和如何寻找到服务的pid。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。