报警shell脚本浅写

在企业的大数据系统中,会存在许许多多的shell监控脚本对集群的各种指标进行监控和报警。

1.编写mysql数据库监控

            #!/bin/bash
            #mysql.sh
                      #这一行是连接数据库的操作
            nc -e 3 localhost 3306 &>/dev/null

                     #$?是上一行代码操作成功与否,成功不等于1,否则等于0
            if [ $? -eq 0 ];then

                    str="mysql server status Running!!!"

            else

                    str="mysql server status Shuting!!!"

            fi

            echo $str | mail -s 'mysql server' admin@g.cn

2.编写Disk硬盘空间监控

            #!/bin/bash
            #disk.sh                         
                      #df查看磁盘占用情况  NR==7是第七行 每一行默认空格划分所以$5就是占用率
            ds=`df |awk '{if(NR==7){print int($5)}}'`   

            if [ $ds -lt 45 ];then

                   str="disk space is less than 45%!!!"

            else

                   str="disk space is greater than 45%!!!"

            fi

            echo $str | mail -s 'linux server disk space' admin@g.cn

3.编写mem(内存)空间监控脚本

            #!/bin/bash

            #mem.sh

            mem=`free -m |awk '{if(NR==2){printf("%.0f\n",(int($3)/int($2))*100)}}'` //四舍五入取整

            if [ $mem -lt 45 ];then //表达式内为整数表达式,不能用浮点型

                   str="mem space is less than 45%,Achieve $mem%!!!"

            else

                   str="mem space is greater than 45%,Achieve $mem%!!!"   

            fi

            echo $str | mail -s 'linux server mem space' admin@g.cn

4、报警脚本重启生效

          1)设置脚本权限

            chmod 755 /etc/init.d/mon.sh    //mon.sh:将所有脚本放到这个脚本中,或者调用其他脚本,发送一封邮件即可

          2)crontab -e                //任务计划

            */5****bash /etc/init.d/mon.sh

            如:10 13 *** /mnt/monitor.dh      //每天的13:10执行这个代码

          3)tail -f /var/log/cron

          4)邮件报警要提前测试准备邮件系统是否正常工作

上述几个是网上的一些小demo,也是报警脚本的一个小入门,下面贴一份在某大型互联网的部分代码(部分公司信息已手动去除):

unction hdfs() {
    
    JAVA_HOME="/home/work/software/java"
    HADOOP_HOME="/home/work/software/hadoop"
    
    PROCESS=`${JAVA_HOME}/bin/jps | grep -iE "datanode|avatardatanode" | wc -l`   //拿到相关的进程数
    PORT=`/bin/netstat -nl | grep -E "50020|50010" | wc -l`  //拿到相关的端口数
    
    if [[ $PROCESS -gt 0 ]] || [[ $PORT -gt 0 ]]
    then
        echo "Normal."

    elif [[ "$PROCESS" == '0' ]] || [[ "$PORT" == '0' ]]
    then
        echo "auto restart service."
        if [ -f "${HADOOP_HOME}/conf/hdfs-site.xml" ]
        then
            is_master="`grep image $HADOOP_HOME/conf/hdfs-site.xml`"
            if [ "$is_master" == '' ]
            then
                is_dn=`/usr/bin/curl --user ***:**** -d "interface=hdfs" -d "ip=$ip_list" $ReportCenter -s`
                if [ "$is_dn" == 'datanode' ]
                then
                    hdfs_dn_type="`grep avatar ${HADOOP_HOME}/conf/hdfs-site.xml`"
                    if [ "$hdfs_dn_type" == '' ]
                    then
                        su - work -c "~/software/hadoop/bin/hadoop-daemon.sh start datanode" //su -work -c  代表切换到work用户并执行命令
                    else
                        su - work -c "~/software/hadoop/bin/hadoop-daemon.sh start avatardatanode"
                    fi
                fi
            else
                echo "Master Node!"
            fi
        fi
    else
        reportAlarm hdfs statuserror
    fi
}

hdfs

其实监控脚本本质还是对一些linux命令的掌握以及根据公司的业务需求对集群的一些指标进行实时查询,从而达到业务集群的稳定性,当然编写脚本的时候请保持每行空格对齐,代码的美观可以让我们身心愉悦( ̄▽ ̄)/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,928评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,748评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,282评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,065评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,101评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,855评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,521评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,414评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,931评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,053评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,191评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,873评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,529评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,074评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,188评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,491评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,173评论 2 357