网站整合营销等服务,网站备案 代理,wordpress 创建数据库,企业官方网站建设方案服务器配置免密钥环境准备#xff1a;
配置免密钥前#xff0c;需要在服务器的 hosts 文件中配置目标主机名称与 IP 对应关系。
vim /etc/hosts
IP1 hostname1
IP2 hostname2
......
将 mianmiyaojiaoben.zip 安装包解压在当前目录下
cd /usr/local/jiaoben
unzip mianmi…服务器配置免密钥环境准备
配置免密钥前需要在服务器的 hosts 文件中配置目标主机名称与 IP 对应关系。
vim /etc/hosts
IP1 hostname1
IP2 hostname2
......
将 mianmiyaojiaoben.zip 安装包解压在当前目录下
cd /usr/local/jiaoben
unzip mianmiyaojiaoben.zip
修改 mianmiyao_config 配置文件添加目标主机名称与目标主机密码通过用免密钥的脚本来调用。
vim mianmiyao_configAllHostshostname1,hostname2
Passwdtest23!\Test^*,test23!\Test^*
配置文件中需注意 AllHosts可配置当前主机通往目标主机的主机名可以免秘钥自身数量不限。多台目标主机需以英文逗号隔开 Passwd主机所对应的密码顺序需要与主机顺序对应 如果原密码为test23!Test^*则密码字符带有特殊符号可以用 \ 符转义
mianmiyao.sh 脚本文件内容
vim mianmiyao.sh#!/bin/bash -x
source mianmiyao_config
yum -y install expect expect-devel
#rm -rf /root/.ssh/*
/usr/bin/expect -d -EOF
set timeout 100
spawn ssh-keygen -t rsa
expect {
*id_rsa): { send \r; exp_continue }
*(y/n)? { send y\r; exp_continue }
*passphrase)* { send \r; exp_continue }
*again: { send \r; exp_continue }
*------- { send \r}
}
expect eof
EOFhostsarr(${hosts//,/ })
passwdarr(${passwd//,/ })
num${#hostsarr[]}
for((i0;inum;i));
do /usr/bin/expect -EOFset timeout 100spawn ssh-copy-id ${hostsarr[i]}expect {*(yes/no)? { send yes\r; exp_continue }*password: { send ${passwdarr[i]}\r; exp_continue }*authorized_keys* { send \r}}expect eofexit
EOF
done
将 mianmiyao.sh 文件添加执行权限并执行此脚本
chmod x mianmiyao.sh
./mianmiyao.sh
脚本执行完毕后可以先手动执行如下命令如无需输入密码跳转到对应的目标服务器时则表示成功。
ssh hostname2
服务器部署监测 ElasticSearch 环境准备
将 cpufreedisk_config 配置文件添加对应 ES 集群主机名、ES 端口、ES 主节点服务器主机名。
vim cpufreedisk_config# 所有 ES 集群的主机名用英文逗号分隔需要在免密钥机器上执行
EsHostshostname1,hostname2# ES 端口
EsPort9200# ES 主节点服务器的主机名
EsMasterhostname1
将 cpufreedisk.sh 脚本文件放入 ElasticSearch 服务器的 /usr/local/jiaoben/ 目录下
#!/bin/bash
# Time : 2023/02/01
# Author : JackTian
# File : cpufreedisk.sh
# Desc : 使用该脚本监控 ES 系统程序假死、挂掉、异常及服务器断网、宕机服务器恢复后程序做判断恢复/检测服务器cpu内存磁盘。
# 使用前提ES 集群服务器配置免密钥
# 使用方法将 cpufreedisk.sh 脚本放置 ES 服务器的 /usr/local/jiaoben/ 目录下、在 cpufreedisk_config 中配置 ES 集群的主机名、端口、ES 主节点服务器的主机名
# 设置定时任务可以事先手动执行
# 0 6 * * * source /etc/profile cd /usr/local/jiaoben ./cpufreedisk.sh
source /usr/local/jiaoben/cpufreedisk_configfunction esStatus
{
curl --connect-timeout 30 -m 60 $1:$esport resultEsCurl.log
echo cat resultEsCurl.log | grep cluster_name
}function esLost
{
iptempcat /etc/hosts | grep -w $1 | grep ^[^#] | awk {print $1}
curl --connect-timeout 30 -m 60 $esMaster:$esport/_cat/nodes?v | grep $iptemp resultEsCurl1.log
echo cat resultEsCurl1.log
}function esDie
{
ssh $1 source /etc/profile jps | grep Elasticsearch | awk {print \$1} | xargs
}function restart
{
ssh $1 EOF
echo 请手动启动 ES 进程
exit
EOF
}today$(date %Y-%m-%d)
todaytimedate
#针对 ES 做假死、宕机、挂掉做日志记录和处理
serverroothostname(${esHosts//,/ })
for rootHost in ${serverroothostname[*]}
doesStatusResultesStatus $rootHostecho $rootHost 的状态为: $esStatusResultif [ -n $esStatusResult ];thenesLostResultesLost $rootHostecho $rootHost 的状态为: $esLostResultif [ -n $esLostResult ];thenecho ES 运行状态正常。elseecho $rootHost 脱离集群。echo ${todaytime}ES的${rootHost}节点脱离集群。请人工排查 /usr/local/jiaoben/ESmanager.logrestart $rootHostfielseecho ${todaytime}xxx系统$rootHost 的 ES 进程运行状态异常启动重启中... /usr/local/jiaoben/ESmanager.logecho ${todaytime}xxx系统$rootHost 重启 /usr/local/jiaoben/ESmanager.logssh $rootHost EOF /usr/local/jiaoben/ESmanager.logmkdir -p /usr/local/jiaoben/cd /usr/local/jiaoben/echo --------------------------------------服务器分割线-------------------------------------------echo $rootHost磁盘信息df -hecho $rootHost内存信息单位为Gfree -hecho $rootHost的CPU信息vmstatexit
EOFif [ $? -eq 0 ];thenesDieResultesDie $rootHostif [ -n $esDieResult ];thenecho ${todaytime}xxx系统 ES 出现假死已执行重启临时解决详情参看日志 /usr/local/jiaoben/ESmanager.logelseecho ${todaytime}xxx系统 ES 未启动已执行重启临时解决详情参看日志 /usr/local/jiaoben/ESmanager.logfielseecho ${todaytime}xxx系统 ES 服务器疑似宕机无法 ssh 登录 /usr/local/jiaoben/ESmanager.logfirestart $rootHostfidone
将 cpufreedisk.sh 脚本文件添加可执行权限并执行
chmod x cpufreedisk.sh
./cpufreedisk.sh
设定周期性定时任务每天定时执行。
crontab -e
# 使用该脚本监控 ES 系统程序假死、挂掉、异常及服务器断网、宕机服务器恢复后程序做判断恢复/检测服务器cpu内存磁盘。
0 6 * * * source /etc/profile cd /usr/local/jiaoben ./cpufreedisk.sh