Much effort, much prosperity.

配置服务器监控专线网络

项目介绍:

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

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

公司搭建的邮件报警就是写脚本进行监控网络是否通畅,不通则直接发邮件进行报警,更直接,更方便相比传统的监控器监控服务(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 .
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\n地址:$ip\n专线:$name\n内容:专线异常")
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)!

Shell脚本监控专线Network并SendEmail报警的更多相关文章

  1. shell脚本监控Linux系统性能指标

    2016-11-04 22:41 原作者不详 分类: Linux(7) 在服务器运维过程中,经常需要对服务器的各种资源进行监控, 例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出 ...

  2. 用shell脚本监控进程是否存在 不存在则启动的实例

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]th ...

  3. shell脚本监控网站状态

    shell脚本监控网站状态 #!/bin/sh date=`date +"%Y%m%d-%H%M"` title="status" contentFail=&q ...

  4. linux shell脚本检测硬盘磁盘空间 邮件报警

    使用 http://www.weiruoyu.cn/?p=368 shell脚本监控硬盘空间剩余空间 邮件报警 1.先观察一下磁盘,和如何使用脚本 [root@localhost ~]# df -h ...

  5. linux shell脚本监控进程是否存在

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货:    #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ...

  6. Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间

    Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...

  7. Linux/Unix shell 脚本监控磁盘可用空间

    Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少.下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考. 1.监控磁盘的空闲空间shell脚本 robi ...

  8. shell脚本监控MySQL服务是否正常

    监控MySQL服务是否正常,通常的思路为:检查3306端口是否启动,ps查看mysqld进程是否启动,命令行登录mysql执行语句返回结果,php或jsp程序检测(需要开发人员开发程序)等等: 方法1 ...

  9. 用shell脚本监控MySQL主从同步

    企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒 ...

随机推荐

  1. TaoKeeper

    基于zookeeper的监控管理工具taokeeper,由淘宝团队开源的zk管理中间件: 按照taokeeper官方说明 http://jm-blog.aliapp.com/?p=1450 下载tao ...

  2. android--WaveView(波浪形View) 的实现记录

    背景 请假回家当伴郎,由于实在无聊,就写下了此篇博客!!按照惯例,先上动态图 怎么样!效果比较赞吧!!! 思路 当我第一次看见这个效果的时候,我的第一个想法是:如果是静态的时候是什么样子的!好,再来张 ...

  3. CentOS firewalld 防火墙操作

    Centos 7 开启端口CentOS 7 默认没有使用iptables,所以通过编辑iptables的配置文件来开启80端口是不可以的 CentOS 7 采用了 firewalld 防火墙 如要查询 ...

  4. 【BZOJ4504】K个串 可持久化线段树+堆

    [BZOJ4504]K个串 Description 兔子们在玩k个串的游戏.首先,它们拿出了一个长度为n的数字序列,选出其中的一个连续子串,然后统计其子串中所有数字之和(注意这里重复出现的数字只被统计 ...

  5. 延迟任务和循环任务ScheduledExecutorService

    public class ScheduledThreadPool { public static ScheduledExecutorService scheduledThreadPool = Exec ...

  6. 160628、利用Oracle rownum让表排序字段值连续

    利用Oracle rownum让表排序字段值连续 1.需求说明 表(eval_index)中有字段如下: 表字段 描述 说明 ID 主键 GROUP_ID 分组编号 SORT_NUM 排序序号 按照分 ...

  7. delphi中String 和 动态静态数组

    默认string类型为ansiString:有编译开关控制 shortString: strShort : shortString; strShort 大小256字节,可根据sizeof()计算出,s ...

  8. HTTP 常见状态码

    1. 以"1"开头(临时响应) 100: Continue,请求者应当继续提出请求;表示服务端已经收到请求的一部分,正在等待其余部分; 101: Switching Protoco ...

  9. python基础之类的封装

    从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,还有alex一起装进麻袋,然后把麻袋封上口子.但其实这种理解相当片面 一 封装什么 你钱包的有多少钱(数据的封装) 你的性取向( ...

  10. js身份证号有效性验证

    1.简述 最近做的系统有用到实名验证的,起初对于用户身份证号只是简单地使用正则表达式进行验证, 很多无效的身份证号就成了漏网之鱼. 导致后台存表里很多无效的身份证号,随便输入用户名和身份证号就可以实名 ...