脚本内容:

#!/bin/sh

###################################################
# Used to obtain Zookeeper middleware service performance information
# script by shell
# writed by Deliver
# huchangxi 2022/11/15
###################################################
# 脚本运行超时处理
source /usr/local/zabbix-agent/etc/scripts/zabbixtimeout.sh
##########################################################################

#获取Zookeeper中间件性能信息,再根据选项获取相应值
zk_port=$1
zk_mntr=$2

case $zk_mntr in

#版本
zk_version)
version=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_version |grep awk ‘{print $2}’`
if [ -n “version” ];then
echo $version
else
echo NO
fi
;;

#平均延时
zk_avg_latency)
avg_latency=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_avg_latency |grep awk ‘{print $2}’`
if [ -n “avg_latency” ];then
echo $avg_latency
else
echo 0
fi
;;

#最大延时
zk_max_latency)
max_latency=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_max_latency |grep awk ‘{print $2}’`
if [ -n “max_latency” ];then
echo $max_latency
else
echo 0
fi
;;

#最小延时
zk_min_latency)
min_latency=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_min_latency |grep awk ‘{print $2}’`
if [ -n “min_latency” ];then
echo $min_latency
else
echo 0
fi
;;

#收包数
zk_packets_received)
packets_received=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_packets_received |grep awk ‘{print $2}’`
if [ -n “packets_received” ];then
echo $packets_received
else
echo 0
fi
;;

#发包数
zk_packets_sent)
packets_sent=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_packets_sent |grep awk ‘{print $2}’`
if [ -n “packets_sent” ];then
echo $packets_sent
else
echo 0
fi
;;

#连接数
zk_num_alive_connections)
num_alive_connections=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_num_alive_connections |grep awk ‘{print $2}’`
if [ -n “num_alive_connections” ];then
echo $num_alive_connections
else
echo 0
fi
;;

#堆积请求数
zk_outstanding_requests)
outstanding_requests=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_outstanding_requests |grep awk ‘{print $2}’`
if [ -n “outstanding_requests” ];then
echo $outstanding_requests
else
echo 0
fi
;;

#节点状态
zk_server_state)
server_state=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_server_state |grep awk ‘{print $2}’`
if [ -n “server_state” ];then
echo $server_state
else
echo NO
fi
;;

#znode数量
zk_znode_count)
znode_count=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_znode_count |grep awk ‘{print $2}’`
if [ -n “znode_count” ];then
echo $znode_count
else
echo 0
fi
;;

#watch数量
zk_watch_count)
watch_count=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | grep zk_watch_count |grep awk ‘{print $2}’`
if [ -n “watch_count” ];then
echo $watch_count
else
echo 0
fi
;;

#临时节点(znode)
zk_ephemerals_count)
ephemerals_count=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | zk_ephemerals_count |grep awk ‘{print $2}’`
if [ -n “ephemerals_count” ];then
echo $ephemerals_count
else
echo 0
fi
;;

#数据大小
zk_approximate_data_size)
approximate_data_size=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | zk_approximate_data_size |grep awk ‘{print $2}’`
if [ -n “approximate_data_size” ];then
echo $approximate_data_size
else
echo 0
fi
;;

#打开的文件描述符数量
zk_open_file_descriptor_count)
open_file_descriptor_count=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | zk_open_file_descriptor_count |grep awk ‘{print $2}’`
if [ -n “open_file_descriptor_count” ];then
echo $open_file_descriptor_count
else
echo 0
fi
;;

#最大文件描述符数量
zk_max_file_descriptor_count)
max_file_descriptor_count=`(echo mntr;sleep 2) |telnet localhost $zk_port 2>/dev/null | zk_max_file_descriptor_count |grep awk ‘{print $2}’`
if [ -n “max_file_descriptor_count” ];then
echo $max_file_descriptor_count
else
echo 0
fi
;;

#通配规则
*)
echo -e “\e[033mUsage: $0 {zk_port|zk_mntr} \e[0m”

esac

原文地址:http://www.cnblogs.com/A121/p/16905311.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性