前言
自己搭建过ELK环境的小伙伴,有没有都非常讨厌Kibana进程的启动和停止,Kibana进程的pid甚至都没法直接用常规的ps命令查询。
今天老万教你如何配置Kibana服务,简化kibana的启动、停止和重启,并且实现kibana服务的开机自启动。
这里演示采用chkconfig方式配置开机自启动。其他配置方式可以参考Centos中配置开机自启动的方式汇总
配置过程
1、在/etc/init.d目录下,新建脚本kibana
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
注意⚠️:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。
第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。
第二行对服务进行描述,可以用\ 跨行注释。
#!/bin/bash #chkconfig:2345 98 02 #description:kibana
解释说明:
配置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。