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 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}')
doname=$(cat $IP | grep $ip | awk '{print $2}')neirong=$(echo -e "时间:$DATE\n地址:$ip\n专线:$name\n内容:专线异常")ping -c 10 -i 0.1 $ip &>/dev/nullif [ $? -ne 0 ]thenfor 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"donefi
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)!

转载于:https://www.cnblogs.com/LuckWJL/p/8143801.html

Shell脚本监控专线Network并SendEmail报警相关推荐

  1. epel源mysql版本_linux增加epel源,yum安装nignx,脚本安装mysql服务端,shell脚本监控网站页面...

    epel是一种yum仓库,里面提供了更多.更丰富linux软件,但是,它不是默认yum仓库,我们需要手工添加这个yum源. 添加epel源 然后,找到fedora-epel, 在列表里找到:6serv ...

  2. linux增加epel源,yum安装nignx,脚本安装mysql服务端,shell脚本监控网站页面

    epel是一种yum仓库,里面提供了更多.更丰富linux软件,但是,它不是默认yum仓库,我们需要手工添加这个yum源. 添加epel源 参考:http://freeloda.blog.51cto. ...

  3. linux shell脚本攻略_(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤...

    今天为大家带来的内容是:(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤 本文内容主要介绍了Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,文章 ...

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

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

  5. 使用shell脚本监控共享池内存碎片

    使用shell脚本监控共享池内存碎片 环境 [monitor:/]#uname -a HP-UX monitor B.11.11 U 9000/785 2013813380 unlimited-use ...

  6. linux shell脚本监控进程崩溃自动重启

    linux shell脚本监控进程崩溃自动重启,由于目前有Python实现的通讯组件时不时会异常中断,在还没有找到问题的解决办法时先暂时用shell监控并自动重启处理. # ! /bin/shbase ...

  7. linux shell 进程监控脚本,shell脚本监控进程

    直接以实例示范如何使用shell脚本实现对待监测进程的监测: 背景:服务器需要确保sendFlowMail.py脚本的运行. 思路:故编写一个shell脚本,按周期(60秒)判断该进程是否在运行,若未 ...

  8. 用shell脚本监控系统

    简单的用shell脚本写一个"监控"程序作为思路,大致为:实时检测系统的内存使用率,如果大于阈值那么报警(如果有条件可以使用短信接口或者实在不行可以使用邮件通知),并记录到日志文件 ...

  9. Linux虚拟机 百度云 监控,使用Shell脚本监控KVM虚拟机

    最近有朋友问我平时使用KVM虚拟机的时候用什么软件进行管理.其实我平时都是使用virsh命令通过命令行进行虚拟机的管理的.虽然RedHat有虚拟机管理和监控平台,但是只能在redhat发行版上使用,其 ...

最新文章

  1. 优达学城《DeepLearning》1-1:神经网络概论
  2. .NE 后退刷新验证码
  3. 同时读取两个USB摄像头采集
  4. ./utserver: error while loading shared libraries: libcrypto.so.0.9.8: cannot open shared object file
  5. Eclipse中手动清理项目缓存,
  6. 12 哈希表相关类——Live555源码阅读(一)基本组件类
  7. mybatis循环map的一些技巧
  8. javascript 参数检验(二):参数检查工具的完善
  9. 关于使用百度地图插件的显示行政区域的操作
  10. lamp 配置mysql_LAMP安装配置超详细讲解
  11. 计算机网络2020秋--第四次测验
  12. xilinx sdk退出Debug模式回到C开发布局
  13. poj 3026 Borg Maze
  14. 【读书笔记《Android游戏编程之从零开始》】10.游戏开发基础(View 游戏框架)
  15. Js批量下载花瓣网及堆糖网专辑图片
  16. win10系统无法删除文件提示找不到该项目解决办法
  17. Modern Standby 调试的准备
  18. 驾考科目二考试经验谈
  19. php 获取月份的周数,PHP获取当前月份的周数只能使用php
  20. 推荐1个视频播放画中画工具!

热门文章

  1. asp.net datatable 导出为 txt
  2. 2.Java内存回收机制
  3. 忘记mysql数据库连接密码
  4. mapper 判断条件为null
  5. 开发springboot项目,遇到的一些问题总结
  6. Linux CentOS6离线安装Jupyter notebook
  7. NAT模式下虚拟机与主机网络关系配置
  8. java 等待唤醒机制,Java线程等待唤醒机制
  9. pycharm镜像源_pycharm安装第三方库
  10. Java工艺路线和工序_工序分散表现为工序多,工序内容( ),工艺路线长。