查看Tomcat集群状态

查看Tomcat集群状态

依赖sshpass命令,所以需要先安装sshpass-1.06-1.el7.x86_64.rpm

  • 授权
chmod +x check-tocmat.sh
#!/bin/sh
#set -ex

#日志名称
LOG_FILE=host_check_$(date "+%Y%m%d").log
#注释变量或密码留空则执行脚本时输入
SSHPASS=[password]

if [[ ! -x $(command -v sshpass 2> /dev/null) ]]; then
  echo -e 'sshpass does not exist, you should install sshpass.'
  exit 0
fi

if [[ -z ${SSHPASS} ]]; then
  read -s -p 'Enter SSH password for hosts:' SSHPASS
  export SSHPASS
  echo
else
  export SSHPASS
fi

cat << EOF > ~/.ssh/config
StrictHostKeyChecking no
EOF

function format_output {
  COL=$(($(tput cols) - 2))
  IFS= read -r -d '\n' INPUT
  MAX_LEN=$(echo "${INPUT}" | awk '{print length($0)}' | awk 'BEGIN {max = 0} {if ($1+0 > max+0) {max=$1; content=$0} } END {print content}')
  if [[ ${MAX_LEN} -gt ${COL} ]]; then
    MAX_LEN=${COL}
  fi
  MLINE=$(awk -v len=${MAX_LEN} 'BEGIN{OFS="─"; NF=len+1; print}')
  echo "┌${MLINE}┐"
  IFS=''
  echo -n "${INPUT}" | while read LINE; do
    if [[ -z ${LINE} ]]; then
      echo "├${MLINE}┤"
    else
      printf "│%-${MAX_LEN}s│\n" "${LINE}"
    fi
  done
  echo -e "└${MLINE}┘\n"
}

function ping_host {
  ping -c 1 -W 1 $1 2>&1 > /dev/null || (echo -e "Host $1: Ping Failed.\n" && exit 1)
}

function get_tomcat_service {
  for HOST_IP in $(echo $1 | tr ',' ' '); do
    (ping_host ${HOST_IP} && sshpass -e ssh root@${HOST_IP} 'bash -s' << EOF) | format_output | tee -a ${LOG_FILE}
export LANG=en_US.UTF-8
echo -e "Tomcat Server: ${HOST_IP}\n"
echo -e "Tomcat Process PID, %CPU, MEM, CMD:"
ps -eo pid,%cpu,rss,cmd | grep [a]pache-tomcat
echo -e "\nTomcat catalina.log:"
grep -E "^$(date -d '6 day ago' +%d-%b-%Y)|^$(date -d '5 day ago' +%d-%b-%Y)|^$(date -d '4 day ago' +%d-%b-%Y)|^$(date -d '3 day ago' +%d-%b-%Y)\
|^$(date -d '2 day ago' +%d-%b-%Y)|^$(date -d '1 day ago' +%d-%b-%Y)" /opt/apache-tomcat-8.0.52/logs/catalina.* | grep 'OutOfMemory'
EOF
  done
}

get_tomcat_service 192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4

rm -f ~/.ssh/config
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Kubernetes上部署Tomcat集群,可以使用以下步骤: 1. 准备Docker镜像:可以使用官方的Tomcat镜像,或者自己构建镜像,并将其上传到Docker Registry中。 2. 创建Deployment:使用kubectl create命令创建一个Deployment,指定使用的镜像和副本数,例如: ``` kubectl create deployment tomcat --image=tomcat:latest --replicas=3 ``` 这将创建一个名为tomcat的Deployment,使用最新版的Tomcat镜像,并启动3个副本。 3. 创建Service:使用kubectl expose命令创建一个Service,将Tomcat容器的端口暴露出来,例如: ``` kubectl expose deployment tomcat --type=LoadBalancer --name=tomcat-svc --port=8080 --target-port=8080 ``` 这将创建一个名为tomcat-svc的Service,将Tomcat容器的8080端口暴露出来,并使用LoadBalancer类型的Service。 4. 创建ConfigMap:使用kubectl create configmap命令创建一个ConfigMap,用于存储Tomcat配置文件,例如: ``` kubectl create configmap tomcat-config --from-file=./tomcat/conf/server.xml ``` 这将创建一个名为tomcat-config的ConfigMap,并将当前目录下的server.xml文件存储到ConfigMap中。 5. 创建StatefulSet:使用kubectl create命令创建一个StatefulSet,指定使用的镜像、副本数和ConfigMap,例如: ``` kubectl create -f tomcat-statefulset.yaml ``` 这将从tomcat-statefulset.yaml文件中创建一个名为tomcat的StatefulSet,使用最新版的Tomcat镜像,并启动3个副本。tomcat-statefulset.yaml文件内容如下: ``` apiVersion: apps/v1 kind: StatefulSet metadata: name: tomcat spec: serviceName: tomcat-svc replicas: 3 selector: matchLabels: app: tomcat template: metadata: labels: app: tomcat spec: containers: - name: tomcat image: tomcat:latest ports: - containerPort: 8080 volumeMounts: - name: tomcat-config mountPath: /usr/local/tomcat/conf/server.xml subPath: server.xml volumeClaimTemplates: - metadata: name: tomcat-data spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 1Gi ``` 其中,volumeClaimTemplates用于定义存储卷,将每个副本的数据存储到持久化存储中。 6. 验证部署:使用kubectl get命令查看Deployment、Service和StatefulSet的状态,例如: ``` kubectl get deployment tomcat kubectl get service tomcat-svc kubectl get statefulset tomcat ``` 确认Deployment、Service和StatefulSet都处于运行状态,并且Service的EXTERNAL-IP不为<pending>。 7. 访问Tomcat:使用浏览器访问Service的EXTERNAL-IP,即可访问Tomcat Web应用。如果有多个副本,则可以通过访问不同的Pod IP地址来访问不同的副本。 需要注意的是,以上步骤只是一个简单的示例,实际部署可能需要针对具体的需求进行调整。例如,可能需要配置存储卷、使用Ingress等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值