温馨提示×

如何监控cdn上的页面访问

CDN
小新
123
2020-12-28 18:49:42
栏目: 云计算

如何监控cdn上的页面访问

监控cdn上的页面访问示例:

邮件脚本如下:

#!/usr/bin/python

#coding:utf-8

import smtplib

from email.mine.text import MIMEText

import sys

mail_host = 'stmp.163.com'

mail_user = 'test@163.com'

mail_pass = 'your_mail_password'

mail_postfix = '163.com'

def send_mail(to_list,subject,content):

me = "zabbix 监控告警平台"+"<"+mail_user+"@"+mail_postfix+">"

msg = MIMEText(content,'plain','utf-8')

msg['Subject'] = subject

msg['From'] = me

msg['to'] = to_list

try:

s = smtplib:SMTP()

s.connect(mail_host)

s.login(mail_user,mail_pass)

s.sendmail(me,to_list,msg.as_string())

s.close()

return True

except Exception,e:

print str(e)

return False

if __name__ == "__main__"

send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

参考脚本如下:

#!/bin/bash

#监控所有cdn节点是否正常

#定义收件人邮箱

mail="/usr/local/sbin/mail.py"

mail_user=admin@admin.com

url="http://www.lzxlinux.com/test.php"

s_ip="88.88.88.88"

ipf="/data/cdn_ip.list"

if ! which curl &>/dev/null

then

yum install -y curl

fi

mycurl()

{

curl --connect-timeout 2 -x$1:80 $url 2>/dev/null

}

#定义告警函数

m_mail()

{

log=$1

t_s=`date +%s`

t_s2=`date -d "1 hours ago" +%s`

if [ ! -f /tmp/$log ]

then

touch /tmp/$log

chattr +a /tmp/$log

echo $t_s2 >> /tmp/$log

fi

t_s2=`tail -1 /tmp/$log |awk '{print $1}'

echo $t_s >> /tmp/$log

v=$[$t_s-$t_s2]

if [ $v -gt 1800 ]

then

python $mail $mail_user "节点$1异常" "`cat $2`" 2>/dev/null

echo "0" > /tmp/$log.count

else

if [ ! -f /tmp/$log.count ]

then

echo "0" > /tmp/$log.count

fi

nu=`cat /tmp/$log.count`

nu2=$[$nu+1]

echo $nu2 > /tmp/$log.count

if [ $nu2 -gt 30 ]

then

python $mail $mail_user "节点$1异常持续30分钟了" "`cat $2`" 2>/dev/null

echo "0" > /tmp/$log.count #第二次告警后计时器归0

fi

fi

}

mycurl $s_ip >/tmp/s.html

for ip in `cat $ipf`

do

mycurl $ip > /tmp/$ip.html

#对比源站和节点的页面是否有差异

diff /tmp/s.html /tmp/$ip.html > /tmp/$ip.diff 2>/dev/null

n=`wc -l /tmp/$ip.diff |awk '{print $1}'`

if [ $n -gt 0 ]

then

m_mail $ip /tmp/$ip.diff

fi

done

0