千家信息网

ansible 推送脚本巡检闽政通

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,推送的需要的机子多最好使用数据库,机子少就写死变量了,在被巡检主机上新建一个普通用户,被巡检主机免安装,增加ansible-hosts新加巡检主机,多个租户可以用docker隔离,扩展可以用yml r
千家信息网最后更新 2024年11月30日ansible 推送脚本巡检闽政通


推送的需要的机子多最好使用数据库,机子少就写死变量了,在被巡检主机上新建一个普通用户,被巡检主机免安装,增加ansible-hosts新加巡检主机,多个租户可以用docker隔离,

扩展可以用yml role代码复用配上数据库就很方便了,现在更新巡检脚本只要更新ansible-server上的脚本,增加新功能。

这里需要被巡检主机免安装就没用数据库记录,yml要用copy模块后用sh执行脚本,用script模块会找不到执行路径

还写了一套用于监控告警的脚本,还在继续写。。。

#!/bin/bash#yejunhai #2020-2-27#巡检并发连接数 发送企业微信告警 定期巡检通知#告警阀值可以自定义#定义时间cur_time(){        date "+%Y-%m-%d %H:%M:%S"}wx(){#生成告警脚本 发送到企业微信sh_name=$0cat > $sh_name.json <<-EOFcurl '填写微信机器人Webhook地址:' \   -H 'Content-Type: application/json' \   -d '   {        "msgtype": "text",        "text": {            "content": "$1",            "mentioned_mobile_list":["$2"]        }   }'EOF#发送告警脚本,发送成功后清空脚本sh $sh_name.json && echo "Send successfully" > $sh_name.json}cpu_usage(){        top -n 1 -d 1|awk '/%Cpu/{printf("%.2f%\n",(100-$8))}'}#获取本机IP ip=`ifconfig eth0|awk '/inet /{print$2}'`#监控端口 并发数告警阀值 获取当前并发数port=8303#并发数告警阀值 max_number=2000#获取当前并发数number=`netstat -ant|grep -w "$ip:$port"|grep "ESTABLISHED"|wc -l`mem=`free|awk '/Mem:/{printf("%.2f%\n",($2-$4)/$2*100)}'`#磁盘读:read=`iostat|awk '/.da/{print$3 "kb/s"}'`#磁盘写:write=`iostat|awk '/.da/{print$4 "kb/s"}'`#IO利用率:io=`iostat -x|awk '/.da/{print$14"%"}'`ORACLE_BASE=/u01/app/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/12.1.0/client_1; export ORACLE_HOMEPATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/binexport PATH#数据库用tnsping 因为有4台rac的VIP,2个实例,这边没用数据库只能用字典了,还是懒declare -A instancesinstances=([192.168.1.1]="a" [192.168.1.2]="a" [192.168.56.195]="b" [192.168.56.196]="b")for db_ip in $(echo ${!instances[*]})do        status=`tnsping $db_ip:1521/${instances[$db_ip]}|grep "OK"|wc -l`        if [ "$status" -eq 0 ];then                database="$db_ip:1521/${instances[$db_ip]} Error"                break        elif [ "$status" -eq 1 ];then                database="Successfully"        fidone#后续需要多租户使用在改造成函数调用process=tomcatprocess_status=`ps -aux|grep "$process"|grep -v "grep --color=auto $process"|wc -l`if [ "$process_status" -eq 0 ];then  tomcat_process="Disabled"else  tomcat_process="Enable"fifor disk_usage in `df -P|awk 'NR>=2{print$5}'|tr -d "%"`do  if [ "$disk_usage" -ge 90 ];then     disk_status="\n磁盘剩余不足 `df -h|grep -w $disk_usage`"  fidonewx "$(cur_time) 巡检主机 \n$(hostname) $ip\n端口: $port 并发连接数: $number \nCPU利用率: $(cpu_usage) \n内存利用率: $mem \nIO利用率: $io \n数据库连接:$database\ntomcat进程:$tomcat_process $disk_status"
- hosts: linux  remote_user: centos  gather_facts: false  tasks:   -  name: copy script remote host     copy: src=/root/check dest=/home/centos/check  -  name: execution script     command: sh /home/centos/check


0