使用daemontools监控zookeeper,storm等进程

Daemontools是管理Unix服务的工具,它提供一组工具来管理一系列用户进程,当进程由于某些原因down掉之后,daemontools会自动重启进程。本文以对zookeeper和storm监控的例子记录daemontools的用法。

1、 安装daemontools

mkdir /opt/daemontools
cd /opt/daemontools
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar -xzvf daemontools-0.76.tar.gz

完成上述步骤后需要进行一些修改,否则执行安装时会报错,在src下的conf-cc文件的第一行最后添加如下代码即可 -include /usr/include/errno.h

vim /opt/daemontools/admin/daemontools/src/conf-cc

添加完后内容如下:

这里写图片描述

修改完成后执行以下命令编译:

cd /opt/daemontools/admin/daemontools-0.76/
package/install

2、管理zookeeper、storm

创建配置文件,位置可自定义,本示例创建在/opt/daemontools/service下

cd /opt/daemontools/
mkdir -p service/zookeeper
cd service/zookeeper/
vim run

run内容如下:

#!/bin/sh
exec /opt/zookeeper/bin/zkServer.sh start

管理storm nimbus

cd /opt/daemontools/service/
mkdir nimbus
cd nimbus/
vim run

run内容如下:

#!/bin/sh
exec /opt/storm/bin/storm nimbus

“/opt/zookeeper/bin/zkServer.sh start”和”/opt/storm/bin/storm nimbus”分别为zookeepr和nimbus的启动命令,可以发现配置比较简单,只需要吧对应进程的启动命令加入配置文件即可。此处需要注意的一点,配置启动命令时切勿配置成后台启动,即不要在末尾添加&符号,否则会造成大量重复启动。

配置完成后需要给run文件赋运行权限

chmod 755 run

ui、supervisor等配置方法同理,不再赘述。

3、管理进程

3.1 启动被管理的进程

cd /opt/daemontools/service/
nohup ./zookeeper/ &   # (启动之后,如果zookeeper挂掉,daemontools会自动重启zookeeper)
nohup ./nimbus/ &      # (启动之后,如果nimbus挂掉,daemontools会自动重启nimbus)

其他启动同理。

3.2 查看被管理的进程状态

cd /opt/daemontools/service/
svstat ./zookeeper/

3.3 关闭被管理的进程(不会关闭daemontools supervise进程)

cd /opt/daemontools/service/
svc -d ./nginx/

你可能感兴趣的:(监控)