首页 > 系统相关 >Shell - 集群监控脚本合集

Shell - 集群监控脚本合集

时间:2024-01-17 22:45:39浏览次数:28  
标签:Shell log echo 集群 scriptPath print awk pod 合集

 

 

node_heart_check.sh

#!/bin/bash
scriptPath=$(dirname "$0")

for ip in `cat /etc/hosts | grep 主机名关键字 | awk '{print $2}'`;do
    # ping命令返回3次,自行中断
    ping -c 3 ${ip}
    if [ $? -ne 0 ];then
      echo ${ip}"通信异常" >>${scriptPath}/log_nodeHeart_warn.log
    fi
done

脚本作用:监控集群节点网络通信情况,如果发现ping 3次失败,则为通信异常,可根据短信接口向运维人员发送短信,及时进行处理。

 

pod_status_check.sh

#!/bin/bash

scriptPath=$(dirname "$0")

IFS=$'\n'
kubectl get pod --all-namespace -owide | grep 0/
if [ $? -ne 0 ];then
  echo "$(date +'%Y-%m-%d %H:%M:%S') [INFO] 集群Pod正常">>${scriptPath}/log_podStatus_check.log
else
  podList=`kubectl get pod --all-namespaces -owide | grep 0/`
  for pod in `echo ${podList}`
  do
      # 获取租户名称
      nsName=`echo ${pod} | awk '{print $1}'`
      # 获取pod名称
      podName=`echo ${pod} | awk '{print $2}'`
      # 获取容器就绪情况
      readyNum=`echo ${pod} | awk '{print $3}'`
      # 获取pod状态
      podStatus=`echo ${pod} | awk '{print $4}'`
      # 获取重启次数
      restartCount=`echo ${pod} | awk '{print $5}'`
      # 获取对应节点
      podNode=`echo ${pod} | awk '{print $8}'`
      # 记录
      echo "$(date +'%Y-%m-%d %H:%M:%S') [INFO] 集群Pod异常 ${nsName} ${podName} ${readyNum} ${podStatus} ${restartCount} ${podNode}" >>${scriptPath}/log_podStatus_warn.log
  done
fi
IFS=${IFS_old}

脚本作用:监控所有Pod状态,出现Pod状态异常则触发短信告警(脚本中已省略)

 

mysql_heart_check.sh

#!/bin/bash

scriptPath=$(dirname "$0")

mysql -h主机名 -u用户名 -p密码 -P端口号 -e "select now();"
result=$?
if [ 0 != ${result} ];then
  echo "$(date +'%Y-%m-%d %H:%M:%S') [warn] mysql心跳异常">>${scriptPath}/log_mysqlHeart_warn.log
fi

脚本作用:监控mysql心跳是否正常,如果异常,则触发短信告警(脚本中已省略)

 

标签:Shell,log,echo,集群,scriptPath,print,awk,pod,合集
From: https://www.cnblogs.com/houhuilinblogs/p/17971378

相关文章

  • 【随笔】oier错误合集
    (转发一下我在某网站写的博客)养成良好的代码习惯,从我做起。闲来无事,开个新坑。点个赞吧亲~也算是在我退役之前留下一些对后人有意义的东西了。本博客记载一些比较通用的容易写挂的屑细节。编译选项加-fsanitize=undefined-Wextra-Wall有效避免大部分错误。TLE多组数据不......
  • (5)Powershell别名(Alias)
    (5)Powershell别名(Alias)在上一节,介绍了如何检索当前shell及Powershell中所有可用的命令,对于指定的命令会查看其语法信息,可以获取指定命令的帮助信息,包括获取在线帮助主题,详细内容时间戳这嘎达。在本节中,主要介绍Powershell的别名,主要包含以下内容。熟悉常见的别名。标......
  • (4)Powershell基础知识(二)
    (4)Powershell基础知识(二)上一节主要介绍Powershell可发现,面向对象,一致性等特性,以及Powershell命令是基于.Net对象等重要概念,以及Powershell命令的命名规范,详细内容点击这嘎达。这一节的Powershell基础知识主要包含以下知识点获取命令的摘要信息。获取命令的帮助信息。......
  • 【比赛记录】国庆集训合集
    联赛组国庆训练1\(\text{T1}\)GirlFriend区间3好题。先把质数筛了。考虑将所有区间按照左右端点离散化。将询问离线下来,然后对于每个右端点统计左端点上的贡献。即从小到大扫描\(r\),维护每一个后缀的答案。考虑使用set维护区间的并。考虑已处理前\(r-1\)的询问,处......
  • 阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统
    近日,阿里云分布式云容器平台ACKOne[1]发布“多集群网关”[2](ACKOneMulti-clusterGateways)新特性,这是ACKOne面向多云、多集群场景提供的云原生网关,用于对多集群南北向流量进行统一管理。基于ACKOne多集群网关可以快速构建多集群应用的同城容灾系统,帮助企业以更简......
  • 位运算合集
    位运算合集(&、|、^、~、>>、<<)​ 在学习和研究源码过程中,经常遇到使用位运算的逻辑,代码看着简洁,执行效率也高;特此总结和记录位运算的使用方法。1.位运算概述从现代计算机中所有的数据二进制的形式存储在设备中。即0、1两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫......
  • (3)Powershell基础知识(一)
    (3)Powershell基础知识(一)上节介绍了Windows自带的Powershell开发工具:命令行行窗体和集成开发环境ISE的启动及一些配置注意事项,具体细节使劲戳Powershell开发工具。这一节介绍Powershell的基础知识,包含以下知识点Powershell的一些特性理解Powershell中的一些重要概念......
  • 详解shell环境与函数执行
    理清楚函数在shell环境中加载场景:函数定义和执行,分开在不同的文件中,Linux自带的诸多脚本,就是基于该形式使用的1.函数写在一个文件中,只定义,不执行2.另外一个脚本,读取该函数文件,且加载该函数第一步:先生成一个脚本my_func.sh,作用只记录函数,不运行第二步:如......
  • webshell流量特征
    WebShell攻击者为了达到控制服务器的目的,通常会想办法将网站可解析的文件写入服务器web目录下。例如在ASP架构的网站写入ASP脚本,在PHP架构网站写入PHP脚本,在Java架构的网站写入jsp脚本等。这种被攻击者写入并能够成功执行的脚本,叫WebShell,也叫网页后门。获取WebShell的过程也被......
  • 【SHELL】反斜杠解决多个shell实例扩展
    是定义了的 全部代码如下base_dir=`pwd`repoforall-c'{  user_dir=$(realpath--relative-to="$base_dir""$PWD")  echo$user_dir}'执行后报错realpath:'':Nosuchfileordirectory 分析原因这个问题的原因是repoforall-c命令在每个仓库中执行一......