Python實現監控某個服務,服務崩潰傳送郵件報告

2021-07-09 12:20:56 字數 1925 閱讀 2981

前言:最近我們的公升級伺服器有點不太穩定,經常崩潰掉。然後客戶連線不上,跟我們反饋才知道。所以寫這個指令碼的目的就是為了比客戶提前知道公升級服務的執行狀況,一旦崩潰掉,就能第一時間登入上去,開啟服務,避免客戶投訴。

目標:python實現監控某個服務,服務崩潰傳送郵件報告。

原理:服務對應著埠,服務關閉的時候埠也會關閉。所以可以簡化為監控某個埠,埠關閉傳送郵件報告

方法:需要用到簡單郵件伺服器和埠探測的方法

廢話不多說直接上**:

#-*- encoding:utf-8 -*-

#!/usr/bin/env python

# name isopen.py

import os

import socket

import time

import smtplib

from email.mime.text import mimetext

mailto_list=["[email protected]"]

mail_host="smtp.qq.com" #設定伺服器

mail_user="1234" #使用者名稱

mail_pass="密碼" #口令

mail_postfix="qq.com" #發件箱的字尾

def send_mail(to_list,sub,content): #to_list:收件人;sub:主題;content:郵件內容

me="公升級伺服器報告"+"<"+mail_user+"@"+mail_postfix+">" #這裡的hello可以任意設定,收到信後,將按照設定顯示

msg = mimetext(content,_subtype='html',_charset='gb2312') #建立乙個例項,這裡設定為html格式郵件

msg['subject'] = sub #設定主題

msg['from'] = me

msg['to'] = ";".join(to_list)

try:

s = smtplib.smtp()

s.connect(mail_host) #連線smtp伺服器

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

def isopen(ip,port,flag):

s = socket.socket(socket.af_inet,socket.sock_stream)

try:

s.connect((ip,int(port)))

s.shutdown(2)

print '%d is open' % port

return true

except:

print '%d is down' % port

return false

if __name__ == '__main__':

while(1>0):

flag=1

isopen('127.0.0.1',9906)

time.sleep(60)

flag=isopen('127.0.0.1',9906)

print flag

if flag==false:

send_mail(mailto_list,"xx公升級伺服器監測異常","error")

time.sleep(1800)

#設定一分鐘監測一次,如果發現埠9906消失則傳送郵件報告,設定延遲為半小時,避免一直重**送郵件

python監控 python 監控服務

最近寫了乙個web測試程式,因為部署在其他地方,所以想弄個監控的程序去看服務是不是還在,要是不在好發郵件,就用python簡單的寫了乙個。當然,有的時候也要考慮到監控程序本身就掛了,或者不想監控了。首先監控指令碼是這樣,很簡單 monitor.py coding 簡單的monitor函式,主要監控乙...

Python 伺服器監控

python 伺服器監控 一 安裝 paramiko 和 psutil 二 實現遠端監控 三 問題 cryptographydeprecationwarning 一 安裝 paramiko 和 psutil pip install paramiko pip install psutil12 二 實現...

python實現鳳凰新聞監控

由於任務需求,要關注鳳凰新聞網相關報道,要做到出現相關報道報警來通知我,時間緊湊,本人水平也有限,寫的比較簡單,請見諒。如有人實現過類似功能,也請多多指教。下面直接貼 了。coding utf 8 from bs4 import beautifulsoup import urllib import ...