web 网站实时监控与报警

#!/bin/bash

#Created by yangjie

#mail:[email protected]

#blog:http:flower-fz.com

lang=C

#被监控服务器\端口列表

server_all_list={\

10.10.10.10:10 \

100.100.100.100:100 \

0.0.0.0:0 \

}

telnum=134********

passwd=12345

date=$(date -d "today" +"%Y-%m-%d_%H:%M:%S")

#采用http post 方式发送检测信息给接口程序interface.php,接口程序负责分析信息。决定是否发送报警MSN信息、手机短信、电子邮件

send_msg_to_interface()

{

if [[ $2 = "0" ]] || [[ $2 = "2" ]];then

#开始发送警报邮件,[email protected] 即是发送方也是接收方

sendEmail -f [email protected] -t [email protected] -s smtp.139.com -u "from http_monitor" -xu [email protected] -xp james -o message -charset=utf-8 -m $1

#发送MSB警报消息(如果不需要MSN警报可以注释这行)

#curl -m 600 -d menu=http -d date=$date -d ip=$server_ip -d port =$server_port -d status=$status http://127.0.0.1/monitor/interface.php,接口程序负责分析信息。决定是否发送报警MSN信息、手机短信、电子邮件

fi

}

server_all_len=${#server_all_list[*]}

i=0

while [$i -lt $server_all_len]

do

server_ip=$(echo ${server_all_list[$i]} | awk -F ':' '{print $1}')

server_port=$(echo ${server_all_list[$i]} | awk -F ':' '{print $2}')

server_message=""

if curl -m 10 -G http:// ${server_all_list[$i]} / > /dev/null 2>&1

then

# status: 0,http down 1,http ok 2,http down but ping ok

status=1

echo "服务器${server_ip},端口${server_port}能够正常访问!";

server_message="服务器${server_ip},端口{server_port}能够正常访问!"

else

if curl -m 30 -G http://${server_all_list[$i]}/ > /dev/null 2>&1

then

status=1

echo "服务器${server_ip},端口${server_port}能够正常访问!";

server_message="服务器${server_ip},端口{server_port}能够正常访问!"

else

if ping -c 1 $server_ip > /dev/null 2>&1

then

status=2

echo "服务器${server_ip},端口${server_port}不能够正常访问,但是可以ping通!";

server_message="服务器${server_ip},端口{server_port}不能够正常访问,但是可以ping通!"

else

status=0

echo "服务器${server_ip},端口${server_port}不能够正常访问,并且无法ping通!";

server_message="服务器${server_ip},端口{server_port}不能够正常访问,并且无法ping通!"

fi

fi

fi

send_msg_to_interface "${server_message}" "${status}";

let i++

done

你可能感兴趣的:(web 网站实时监控与报警)