作者:JackTian来源:公众号「杰哥的IT之旅」ID:Jake_Internet转载请联系授权(微信ID:Hc220088)
(资料图片)
服务器配置免密钥环境准备:
配置免密钥前,需要在服务器的 hosts 文件中配置目标主机名称与 IP 对应关系。
vim/etc/hostsIP1hostname1IP2hostname2......
将 mianmiyaojiaoben.zip 安装包解压在当前目录下
cd/usr/local/jiaobenunzipmianmiyaojiaoben.zip
修改 mianmiyao_config 配置文件,添加目标主机名称与目标主机密码,通过用免密钥的脚本来调用。
vimmianmiyao_configAllHosts=hostname1,hostname2Passwd="test23!\@Test^&*","test23!\@Test^&*"
配置文件中,需注意:
AllHosts:可配置当前主机通往目标主机的主机名,可以免秘钥自身,数量不限。多台目标主机需以英文逗号隔开
Passwd:主机所对应的密码,顺序需要与主机顺序对应
如果原密码为:test23!@Test^&*,则密码字符带有特殊符号可以用 \ 符转义
mianmiyao.sh 脚本文件内容:
vimmianmiyao.sh#!/bin/bash-xsourcemianmiyao_configyum-yinstallexpectexpect-devel#rm-rf/root/.ssh/*/usr/bin/expect-d<<-EOFsettimeout100spawnssh-keygen-trsaexpect{"*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"}}expecteofEOFhostsarr=(${hosts//,/})passwdarr=(${passwd//,/})num=${#hostsarr[@]}for((i=0;i将 mianmiyao.sh 文件添加执行权限并执行此脚本
chmod+xmianmiyao.sh./mianmiyao.sh脚本执行完毕后,可以先手动执行如下命令,如无需输入密码跳转到对应的目标服务器时,则表示成功。
sshhostname2服务器部署监测 ElasticSearch 环境准备:将 cpufreedisk_config 配置文件添加对应 ES 集群主机名、ES 端口、ES 主节点服务器主机名。
vimcpufreedisk_config#所有ES集群的主机名,用英文逗号分隔,需要在免密钥机器上执行EsHosts=hostname1,hostname2#ES端口EsPort=9200#ES主节点服务器的主机名EsMaster=hostname1将 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 主节点服务器的主机名#设置定时任务(可以事先手动执行)#06***source/etc/profile&&cd/usr/local/jiaoben&&./cpufreedisk.shsource/usr/local/jiaoben/cpufreedisk_configfunctionesStatus{curl--connect-timeout30-m60$1:$esport>resultEsCurl.logecho"`catresultEsCurl.log|grepcluster_name`"}functionesLost{iptemp=`cat/etc/hosts|grep-w$1|grep"^[^#]"|awk"{print$1}"`curl--connect-timeout30-m60$esMaster:$esport/_cat/nodes?v|grep$iptemp>resultEsCurl1.logecho"`catresultEsCurl1.log`"}functionesDie{ssh$1"source/etc/profile&&jps|grepElasticsearch|awk"{print\$1}"|xargs"}functionrestart{ssh$1<>/usr/local/jiaoben/ESmanager.logrestart$rootHostfielseecho"${todaytime}xxx系统$rootHost的ES进程运行状态异常,启动重启中...">>/usr/local/jiaoben/ESmanager.logecho"${todaytime}xxx系统$rootHost重启">>/usr/local/jiaoben/ESmanager.logssh$rootHost< >/usr/local/jiaoben/ESmanager.logmkdir-p/usr/local/jiaoben/cd/usr/local/jiaoben/echo"--------------------------------------服务器分割线-------------------------------------------"echo"$rootHost磁盘信息"df-hecho"$rootHost内存信息(单位为:G)"free-hecho"$rootHost的CPU信息"vmstatexitEOFif[$?-eq0];thenesDieResult=`esDie$rootHost`if[-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+xcpufreedisk.sh./cpufreedisk.sh设定周期性定时任务,每天定时执行。
crontab-e#使用该脚本监控 ES 系统程序假死、挂掉、异常及服务器断网、宕机服务器恢复后,程序做判断恢复/检测服务器cpu内存磁盘。06***source/etc/profile&&cd/usr/local/jiaoben&&./cpufreedisk.sh推荐阅读:
太强了!利用 Python 写了一个监控服务器资源利用率的脚本!
超硬核!11 个非常实用的 Python 和 Shell 拿来就用脚本实例!
7 个非常实用的 Shell 拿来就用脚本实例!
写了个自动巡检多个接口地址的脚本!
拿来就用的脚本案例!(三)
Copyright 2015-2023 华夏地质网版权所有 备案号:琼ICP备2022009675号-37 联系邮箱:435 227 67@qq.com