gpt4 book ai didi

bash - 脚本(当前为 bash)——快速检查其他主机集群上的各种进程状态

转载 作者:可可西里 更新时间:2023-11-01 15:12:33 29 4
gpt4 key购买 nike

拥有一系列作为 hadoop 堆栈的一部分运行的服务;想要一个简单的 CLI 脚本来检查各种进程并为最终用户提供简单的输出。

将有 50 多个主机;以及它需要在每个主机上检查大约 10 个服务。

目前用 bash 编写;我喜欢输出,但代码是 slllloooowww 因为它检查每个进程;通过无密码 ssh 和 pgrep 一次 1 个。

寻求有关加快速度的建议或提示。

即:

Hostname        | IP              | Ping    | SSH     | Zookeeper  | Namenode   | Datanode

localhost | 127.0.0.1 | online | online | _ | _ | _
node1 | 172.30.50.150 | online | online | _ | _ | _
dn1 | 10.142.0.100 | online | online | online | online | online

示例代码:

fun_datanode () {
zup=`ssh $1 "ps ax | grep -v grep | grep datanode | wc -l"`
if [ $zup -gt 0 ]; then
dn=online
else
dn="_"
fi
}



#main


#main loop that reads host file
for host in `awk '/^[0-9]/ { print $1 }' /etc/hosts`

do

#ping
fping -c1 -t10 -n $host > /dev/null 2>&1
RETVAL=$?
hname=`getent hosts $host | awk '{print $2 }'`

if [ $RETVAL -eq 0 ]; then

if ssh $host 'pgrep ssh' > /dev/null 2>&1; then
ssh=online
fun_zookeeper $host
fun_namenode $host
fun_datanode $host
fi
fun_print "$hname $host "online" $ssh $zoo $nn $dn"
echo
else
fun_print $hname $host "${red}offline${norm}" "_" "_" "_" "_"
echo
fi
done

最佳答案

您应该使用 Ganglia 或 Ambari 来监控大型集群。它们是免费和开源的。他们具有基于阈值的监控和警报功能。

关于bash - 脚本(当前为 bash)——快速检查其他主机集群上的各种进程状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34058790/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com