#!/bin/bash
#获取当前工作目录
work_dir=$(cd $(dirname $0); pwd)
#远程获取 zk 节点信息并存入临时文件
/usr/bin/ssh ucp@127.0.0.1 "/data/apps/opt/zookeeper/bin/zkServer.sh status" > $
{work_dir}/tmp/zookeeper_state.txt
#获取节点角色
zk_state=`grep Mode /home/ucp/apps/monitor/tmp/zookeeper_state.txt | awk -F": "
'{print $2}'`
#根据节点角色判断该节点状态是否正常,正常为 1 异常为 0
if [ $zk_state = "leader" ];
then
zok_state=1
elif [ $zk_state = "follower" ];
then
zok_state=1
elif [ $zk_state = "standalone" ];
then
zok_state=1
else
zok_state=0
fi
#将节点状态信息按照 influxdb 数据格式写入数据库文件
echo im_server_zookeeper_state,action=state,host_ip=127.0.0.1 request=$zok_state
> /home/ucp/apps/monitor/tmp/zookeeper_status.txt
#将数据写入数据库
curl -i -XPOST "http://127.0.0.1:8086/write?db=telegraf&u=telegraf&p=9o0p(O)P"
--data-binary @/home/ucp/apps/monitor/tmp/zookeeper_status.txt
评论