定时监控所有服务器的端口,如果挂起,发送报警邮件

功能:1:ping所有网内机器的IP地址,如果不通,发送报警

   2:检测网内所有机器的服务端口,如果不通,发送报警

#!/bin/bash

##读取IP列表,测试ip的某个端口##

while read ip1
do

ping -c 2 $ip1 >> /dev/null 2>&1
if [ $? -eq 0 ]; then

echo "************************"
echo "ping $ip1 ,ok"

else
echo "************************"
echo "ping $ip1,error,please check"

fi

ipnum=`echo $ip1 |awk -F ‘.‘ ‘{print $4}‘`

echo -e ---------------------$ipnum

#ip =238 的时候,prot 1521 8089#
#ip=239的时候,port 8081 80#

case $ipnum in
238)
for port1 in 1521 8089
do
nc -vv -w1 -z $ip1 $port1 >> /dev/null 2>&1

if [ $? -eq 0 ];then
echo "$ip1 $port1 OK" >>/dev/null 2>&1

else
echo "$ip1 $port1 err,please check" | mail -s "dg-server" [email protected]
fi
done
;;
239)
for port2 in 80 8081
do
nc -vv -w1 -z $ip1 $port2 >> /dev/null 2>&1

if [ $? -eq 0 ];then
echo "$ip1 $port2 OK" >>/dev/null

else
echo "************************"
echo "$ip1 $port2 err,please check"
fi
done

;;
esac

done<iplist

echo "192.168.16.238\n192.168.16.239" >iplist

时间: 2024-08-03 18:47:06

定时监控所有服务器的端口,如果挂起,发送报警邮件的相关文章

Linux下利用nc命令来监控检测服务器的端口使用情况(转载)

最近碰到一个项目,前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口),现在需要随时监控这三个端口的情况,一旦down掉需要能够立即告警处理.批量的系统监控比较好的是用nagios软件来实现,这样小项目专门装一个nagios软件,有点繁琐了.在网上查了一些资料,总结实验了一下,可以用简单的nc命令来实现. 一.nc命令检测端口的用法 # nc -v -w 10 %IP% -z %PORT% -v 显示指令执行过程.

Linux下监控磁盘使用量并在超过阀值后自动发送报警邮件

最近Linux服务器磁盘使用量经常到100%,直到影响到正常服务出现故障才会去注意,做不到防患于未然,今天在网上搜集了资料,加上自己修改,写了一个shell脚本用于实时监控磁盘使用量并在超过阀值后自动发送报警邮件. 脚本简单说明:用df命令查看磁盘使用量信息,超过脚本设置的阀值(critical=90)90%,就会自动用sendEmail命令发送报警邮件(邮件smtp.email等需自行修改成真实存在的). 1.首先下载监测脚本(点击下载)或直接复制下面脚本代码存为disk_check.sh文件

linux服务器发送报警邮件

由于公司业务需要,领导要求发送报警邮件,在我的认知中应该是有两种,一种是将服务器搭建为邮件服务器,这种可以使用postfix或者sendmail等,但是配置相对比较复杂,对运维人员水平要求也比较高.其实完全没有必要这么做.这就说到我们的第二种方法了,可以调用第三方邮件服务器.我们公司有自己的邮件服务器,所以直接新建了个账户,然后在这台需要发送的服务器上进行配置就可以了.服务器是centos6.8的系统.配置是在/etc/mail.rc这个文件中配置的.主要有以下几个配置项需要调整 [[email

Python3 实现简易ping监控并发送报警邮件

Python3 实现简易ping监控并发动报警邮件 1.实现原理通过ping命令结果获取丢包率和延时情况,当丢包率和延时达到预设值时,将结果作为邮件内容,并发送邮件 2.邮件是用smtplib和email实现发送的 3.目前脚本有个小问题就是:我打开文件,循环读,当读第一行时,我执行ping,获取结果,把结果写到一个文件里,同时判断是否达到预设值,如果达到,就把结果加到邮件内容,就这样一直循环,当把文件读完,然后关闭这两个文件,再发送邮件.总学得有点问题,应该将结果存到一个列表,一次性写入.算了

Centos 6.5 服务器下面配置邮件客户端 发送报警邮件

以Centos 系统为例,确保服务器可以正常连接外网 Centos 6.5 下面默认 安装 postfix 查看 rpm -qa | grep postfix postfix-2.6.6-2.2.el6_1.x86_64 配置邮件客户端 set [email protected] set smtp=smtp.163.com set [email protected] set smtp-auth-password=UserPassword set smtp-auth=login 发送测试邮件  e

关于zabbix发送报警邮件25端口不通问题的解决方案

写这篇文章的目的不是别的,今年在阿里云的centos7上安装了zabbix3以上版本,我可以直接说明不是zabbix最新版本,安装路上根据之前总结文档一顿操作,ok,一切正常,zabbix服务器正常启动,界面也正常,直至报警调试自带mail报警,发现并没有收到邮件. 于是手动测试邮件发送,发现失败了,....失败了.然后各种百度找资料,一瞬间发现很多文档,最多的就说阿里云禁用了邮件服务器的25端口,而mail默认走25.            既然发现问题,那就是解决问题,于是各种尝试改配置文件

编写监控脚本,监控集群内所有服务存活状态,内存、磁盘剩余率检测,异常则发送报警邮件

发送邮件Python程序 #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import smtplib import email.mime.multipart import email.mime.text server = 'smtp.163.com' port = '25' def sendmail(server,port,user,pwd,msg): smtp = smtplib.SMTP() smtp.connect(server,

通过SSIS监控远程服务器Windows服务并发送邮件报警!

原文:通过SSIS监控远程服务器Windows服务并发送邮件报警! 利用SSIS不仅可以做BI项目的ETL,而且还可以做一些系统监控和维护工作,由于之前供应商写的Windows服务是读取ESB的消息进行处理,且通过OA流程与访客系统进行了集成,无论是ESB出现状况,还是Windows服务出现状况,都会对访问系统造成严重影响,导致内部员工无法进行接待外部人员,因此整体对ESB进行优化,在本人博客的前一篇已介绍了<通过SSIS监控远程服务器磁盘空间并发送邮件报警!>.本文实现的方法思路与此相同,仅

定时监控服务,告警,并启动服务

脚本功能:每5分钟监控服务进程,本次进程为3个tomcat服务,当服务挂起时,发送报警邮件,并启动服务 1:创建日志文件脚本 [[email protected] ~]# cat a.sh #!/bin/bashb=a.`date +%Y%m%d-%T`.log echo -n "-------------------------$b" [[email protected] ~]# sh a.sh -------------------------a.20150604-18:04:20