-
Notifications
You must be signed in to change notification settings - Fork 0
/
main_check_http.py
76 lines (67 loc) · 2.38 KB
/
main_check_http.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/python
# coding: utf-8
# author :zhaowencheng
# desc :checck suda http service
import httplib
import socket
import subprocess
from conf import host_conf
host = host_conf.host_l
socket.setdefaulttimeout(3)
emial_list = host_conf.user_l
def check_http(host,method,url):
try:
conn = httplib.HTTPConnection(host)
conn.request(method,url)
result = conn.getresponse()
status = result.status
if status == 200:
return False
return True
except:
return True
def get_duty_user(host,method,url):
try:
conn = httplib.HTTPConnection(host)
conn.request(method,url)
result = conn.getresponse()
duty_user = result.read()
except:
duty_user = "wencheng"
return duty_user
def allert_sms(message):
message = str(message)
level = 'warning'
service = 'SUDA_NGINX'
subject = 'suda前端机nginx服务异常'
sms = 'http://monitor.pso.sina.com.cn/monitor/index.php/interface/sendSMS'
receiver = emial_list
curl_cmd = ("curl -d receivers=%s -d service=%s -d level=%s -d subject='%s' %s") % (
receiver, service, level, message, sms)
try_run_ing = subprocess.Popen(curl_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
def allert_mail(message):
message = str(message)
level = 'warning'
service = 'SUDA_NGINX'
subject = 'suda前端机nginx服务异常'
mail = 'http://monitor.pso.sina.com.cn/monitor/index.php/interface/sendMail'
receiver = emial_list
curl_cmd = ("curl -d receivers=%s -d service=%s -d level=%s -d subject=%s -d content='%s', %s") % (
receiver, service, level, subject, message, mail)
try_run_ing = subprocess.Popen(curl_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if __name__ == '__main__':
duty_user = get_duty_user("monitor.pso.sina.com.cn", "GET", "/monitor/index.php/interface/internal/getDutyUser")
emial_list = emial_list+duty_user
print duty_user
alert_list = []
for host_ip in host:
check_result = check_http(host_ip, "GET", "/a.gif")
if check_result:
alert_list.append(host_ip)
if alert_list:
message = (" %s : %s " % ("suda nginx 异常ip", alert_list))
allert_sms(message)
allert_mail(message)
print (" %s : %s " % ("check ngin error", alert_list))
else:
print "check_suda_ok "