检测服务器状态出现问题发送邮件

#coding: UTF-8

import smtplib
import time,sys,requests
from time import sleep
from subprocess import run,PIPE
from email.mime.text import MIMEText
from email.header import Header
#获取时间
ipaddress=input("请输入需要检测ip地址\n")
hostname=input('请输入该IP标识名,例如:***\n')
# 第三方 SMTP 服务
mail_host = "smtp.qq.com"  # 设置服务器
mail_user = "***********@qq.com"  # 用户名
mail_pass = "***************"  # 口令
sender = '*************@qq.com'
receivers = ['**********@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
count=1
sleeptime=0

def sendmail():#发送邮件
    smtpObj = smtplib.SMTP()
    smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号
    smtpObj.login(mail_user, mail_pass)
    smtpObj.sendmail(sender, receivers, message.as_string())
    print("邮件发送成功")
while True:
    localtime = time.asctime(time.localtime(time.time()))#格式化当前时间
    message = MIMEText('IP地址:' + ipaddress + '断网了!' + '断网时间' + localtime, 'plain', 'utf-8')
    message['From'] = Header("*****", 'utf-8')#这里指发送者名字
    message['To'] = Header("******", 'utf-8')#接收者名字
    subject = '淡定点,可能是掉包'
    if count>4:
        subject='他妈的网炸了'
    message['Subject'] = Header(hostname + subject + ',测试IP地址:' + ipaddress + ',断网时间' + localtime, 'utf-8')
    r = run('ping '+ipaddress,stdout=PIPE,stderr=PIPE,stdin=PIPE,shell=True)
    if r.returncode:
        print('IP'+ipaddress+'断网发生第{}次'.format(count)+'发生时间:'+localtime)
        count+=1
        if count ==5:
            sleeptime=count*60#4次之后防骚扰持续发送邮件
        try:
            sendmail()
        except smtplib.SMTPException:
            print("Error: 无法发送邮件")
    else:
        print(hostname+'网炸了吗?没炸')
        sleeptime=30
    print('冷却邮件发送'+str(sleeptime)+'秒')
    sleep(sleeptime)




  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要通过Zabbix检测服务器的存活状态,可以按照以下步骤进行设置: 1. 创建一个名为“Server Alive”的主机监控项。在Zabbix中,可以通过“配置”菜单进入“主机”页面,然后点击要监控的主机名称进入主机配置页面,再点击“监控项”选项卡,创建一个新的监控项。在创建监控项时,可以选择“Zabbix agent”监控方式,并在监控键中输入“agent.ping”。 2. 创建一个名为“Server Alive”的触发器。在Zabbix中,可以通过“配置”菜单进入“主机”页面,然后点击要监控的主机名称进入主机配置页面,再点击“触发器”选项卡,创建一个新的触发器。在创建触发器时,可以使用以下的表达式: ``` {HOST.NAME:agent.ping.fail[*].last(0)}=1 ``` 这个表达式的含义是:如果主机的agent.ping监控项最近一次检测失败,则触发器状态为“问题”。这样,如果主机无法响应,Zabbix就会自动检测到它,并向管理员发送警报。 3. 创建一个名为“Server Alive”的动作。在Zabbix中,可以通过“配置”菜单进入“动作”页面,然后点击“创建动作”按钮,创建一个新的动作。在创建动作时,可以选择“发送邮件”等操作,以便在触发器状态为“问题”时向管理员发送警报。 完成上述步骤后,Zabbix就可以自动监测服务器的存活状态,并向管理员发送警报,以便及时处理任何问题。需要注意的是,为了使这个监控项正常工作,需要在要监控的服务器上安装并配置Zabbix Agent软件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值