zoukankan      html  css  js  c++  java
  • Shell脚本监控专线Network并SendEmail报警

    配置服务器监控专线网络

    项目介绍:

    配置一台服务器监控专线网络的情况,(由于公司业务的原因需要用到专线进行与客户对接)实时监控专线的状态,如果专线不通则进行报警

    报警方法有邮件报警,微信报警,和监控器报警等

    公司搭建的邮件报警就是写脚本进行监控网络是否通畅,不通则直接发邮件进行报警,更直接,更方便相比传统的监控器监控服务(zabbix、nagios、cacti等)更直观,(个人意见)毕竟专线的网络是挺重要的!微信报警则就显得比较繁琐更麻烦还需要调用微信的接口什么的

    项目准备:

    一台服务器,因为只有一个脚本需要跑占用的资源不大,可以放在其他服务器上(比如测试服务器,日志服务器,监控服务器等尽量避开生产服务器)因为项目已经部署,我这里在虚拟机上进行还原步骤

    [root@localhost ~]# cat /etc/redhat-release 
    CentOS release 6.9 (Final)
    [root@localhost ~]# uname -a
    Linux localhost.localdomain 2.6.32-696.16.1.el6.x86_64 #1 SMP Wed Nov 15 16:51:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

    配置安装:

    安装邮件系统sendmail

    [root@localhost ~]# cd /usr/src/
    [root@localhost src]#
    wget -c http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
    [root@localhost src]# tar xf sendEmail-v1.56.tar.gz
    [root@localhost src]# cd sendEmail-v1.56
    [root@localhost sendEmail-v1.56]# cp -a sendEmail /usr/local/bin/
    [root@localhost sendEmail-v1.56]# chmod +x /usr/local/bin/sendEmail
    [root@localhost sendEmail-v1.56]# file /usr/local/bin/sendEmail
    /usr/local/bin/sendEmail: a /usr/bin/perl -w script text executable

    安装依赖(针对CentOS6.x)

    [root@localhost ~]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL
    [root@localhost ~]# sendEmail -f goodmoodwjl@163.com -t wangjinlong@elements.org.cn -s smtp.163.com -u "你好王叔叔" -o message-content-type=html -o message-charset=utf8 -xu goodmoodwjl@163.com -xp *** -m "邮件主题:别来无恙"
    Jan 10 05:02:30 localhost sendEmail[14290]: Email was sent successfully!
    命令说明:
    /usr/local/bin/sendEmail                         #命令主程序
    -f  from@uhanqiu.cn                              #发件人邮箱
    -t  to@huanqiu.cn                                #收件人邮箱
    -s  smtp.huanqi.cn                               #发件人邮箱的smtp服务器
    -u  "我是邮件主题"                                 #邮件的标题
    -o  message-content-type=html                    #邮件内容的格式,html表示它是html格式
    -o  message-charset=utf8                         #邮件内容编码
    -xu  from@huanqiu.cn                             #发件人邮箱的用户名
    -xp  zh@123bj                                    #发件人邮箱密码
    -m  "我是邮件内容"                                 #邮件的具体内容

    如果你的是CentOS7.x系统使用如下安装perl

    还使用yum安装会报错如下,因为perl的版本高导致的,编译安装5.10版本perl

    *******************************************************************
    Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client
    is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER
    possibly with SSL_ca_file|SSL_ca_path for verification.
    If you really don't want to verify the certificate and keep the
    connection open to Man-In-The-Middle attacks please set
    SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
    *******************************************************************
    at /usr/local/bin/sendEmail line 1906.
    wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz
    tar xf perl-5.10.0.tar.gz 
    cd perl-5.10.0
    ./configure.gnu -des -Dprefix=/usr/local/perl
    echo $?
    make
    make test
    make install
    mv /usr/bin/perl{,.bak}
    ln -s /usr/local/perl/bin/perl /usr/bin/perl
    perl -v
    This is perl, v5.10.0 built for x86_64-linux

    脚本监控Script:

    脚本的组成有4个文件

    其中wss.sh为主脚本程序,其他三个为主程序调用的组件

    组件说明:

    ip.txt          为监控的专线IP地址分为两列,一列为IP,一列为别名
    mima.txt        为发件人的邮箱密码(IMAT/SMTP密码)可用其他程序进行加密
    sou.txt         为收件人的邮箱,报警则会向此文件里的所有邮箱发一份
    wss.sh          为主程序,用于监控专线,对端IP或主机,调用其他三个文件,异常报警

    script-wss.sh

    #!/bin/bash
    DATE=`date +"%Y-%m-%d %H:%M"`
    IP=路径/ip.txt
    MAIL='发件人@163.com'
    mima=`cat ./mima.txt`
    for ip in $(cat $IP | sed '/^#/d' | awk '{print $1}')
    do
        name=$(cat $IP | grep $ip | awk '{print $2}')
        neirong=$(echo -e "时间:$DATE
    地址:$ip
    专线:$name
    内容:专线异常")
        ping -c 10 -i 0.1 $ip &>/dev/null
        if [ $? -ne 0 ]
        then
            for i in $(cat ./sou.txt)
            do
                /usr/local/bin/sendEmail -f $MAIL -t $i -s smtp.163.com -u "$name 异常通知" -o message-content-type=html -o message-charset=utf8 -xu 发件人@163.com -xp $mima -m "$neirong"
            done
        fi
    done

    script-sou.txt

    里面写的都是收件人的邮箱

    abc@163.com
    abc@qq.com
    abc@.....

    script-ip.txt

    里面的第一列都是要监控的IP地址,第二列为第一列的别名

    114.114.114.114    美国
    192.168.5.1        泰国
    192.168.70.70      光大
    192.168.3.3        新加坡
    182.168.5.222      韩国
    192.168.5.222      加拿大
    8.8.8.8            日本
    223.5.5.5          南国
    133.226.7.7        缅甸

    script-mima.txt

    可以用加密工具进行加密,也可以用shc进行转换,shc可以把写的所有脚本转换为c语言写的可执行文件,shc的详解后续我会再写

    存放发件人的SMTP密码

    注意

    如要使用本脚本需按实际情况进行修改(路径,邮箱,smtp)!

  • 相关阅读:
    [转]C#获取文件的MD5值
    跨域ajax返回
    根据子表的条件修改主表的数据
    网络与多线程的设计例子
    网络与多线程的设计模式
    tcpdump移植和使用 -- by Johnson
    关于程序的歪门邪说--by Johnson
    重装系统——联想window 10
    Qt项目中error: C2001: newline in constant错误的解决
    使用NSIS制作Windows安装程序快速入门
  • 原文地址:https://www.cnblogs.com/chuyiwang/p/8143801.html
Copyright © 2011-2022 走看看