推送的需要的机子多最好使用数据库,机子少就写死变量了,在被巡检主机上新建一个普通用户,被巡检主机免安装,增加ansible-hosts新加巡检主机,多个租户可以用码头工人隔离,
扩展可以用yml角色代码复用配上数据库就很方便的了,现在更新巡检脚本只要更新ansible-server上的脚本,增加新功能。
这里需要被巡检主机免安装就没用数据库记录,yml要用复制模块后用sh执行脚本,用脚本模块会找不到执行路径
还写了一套用于监控告警的脚,本还在继续写…
# !/bin/bash # yejunhai # 2020-2-27 #巡检并发连接数发送企业微信告警定期巡检通知 #告警阀值可以自定义 #定义时间 cur_time () { 日期”+ Y % - % m - H % d %: % m: % S” } 天气(){ #生成告警脚本发送到企业微信 sh_name=$ 0 猫在sh_name美元。json & lt; & lt; eof 旋度”填写微信机器人Webhook地址:“\ - h \ application/json - type: - d ' { “msgtype”:“文本”, "文本":{ “内容”:“$ 1”, “mentioned_mobile_list”(" $ 2 "): } }' EOF #发送告警脚本,发送成功后清空脚本 sh sh_name美元。json,,回声“发送成功”比;sh_name.json美元 } cpu_usage () { 最高- n 1 - d 1 | awk/% Cpu/{printf (" % .2f % \ n”,(100 -) 8美元)}” } #获取本机IP ip=癷fconfig eth0 | awk/inet/{打印$ 2}' ' #监控端口并发数告警阀值获取当前并发数 端口=8303 #并发数告警阀值 max_number=2000 #获取当前并发数 数量=' netstat ant | grep - w“ip:美元港口”| grep“建立”| wc - l ' mem='自由| awk '/mem:/{printf (" % .2f % \ n”,(2 - 4美元)/2 * 100美元)}' ' #磁盘读:=' iostat | awk/阅读。da/{打印3美元“kb/s”} ' ' #磁盘写:=' iostat | awk/写。da/{print $ 4 kb/s“}” # IO利用率: io=' iostat - x | awk '/.da/{打印14美元“%”}' ' ORACLE_BASE=/u01/app/oracle;出口ORACLE_BASE ORACLE_HOME=$ ORACLE_BASE/产品/12.1.0/client_1;出口ORACLE_HOME 路径=:$ {JAVA_HOME}/bin: $ {PATH}: $ HOME/bin: $ ORACLE_HOME/bin 导出路径 #数据库用tnsping因为有4台rac的贵宾,2个实例,这边没用数据库只能用字典了,还是懒 声明——实例 实例=((192.168.1.1)=a [192.168.1.2]=癮”[192.168.56.195]=癰”[192.168.56.196]=" b ") db_ip在$ (echo ${!实例[*]}) 做 状态=' tnsping db_ip美元:1521/${实例[$ db_ip]} | grep“OK”| wc - l ' 如果(“美元地位”eq 0); 数据库=" $ db_ip: 1521/${实例[$ db_ip]}错误” 打破 elif[“美元地位”eq 1]; 数据库="成功" fi 完成 #后续需要多租户使用在改造成函数调用 过程=tomcat process_status=' ps辅助| grep“元过程”| grep - v“grep——颜色=美元汽车过程”| wc - l ' 如果(" $ process_status "情商0); tomcat_process="禁用" 其他的 tomcat_process="启用" fi 在df - p | awk的disk_usage NR>=2{打印5美元}| tr - d“%”的 做 如果(" $ disk_usage "通用电气90年); disk_status=" \ n磁盘剩余不足df - h | grep - w disk_usage美元” fi 完成 wx " $ (cur_time)巡检主机\ n(主机名)ip美元\ n端口:美元港口并发连接数:美元数量\ nCPU利用率:美元(cpu_usage) \ n内存利用率:美元mem \ nIO利用率:美元io \ n数据库连接:美元数据库\ ntomcat进程:tomcat_process disk_status美元”
-主机:linux remote_user: centos gather_facts:假 任务: 远程主机-名称:复制脚本 复制:src=https://www.yisu.com/root/check dest=/home/centos/检查 -名称:执行脚本 命令:sh/home/centos/check