当前位置: 首页 > 编程笔记 >

基于python3监控服务器状态进行邮件报警

璩涵衍
2023-03-14
本文向大家介绍基于python3监控服务器状态进行邮件报警,包括了基于python3监控服务器状态进行邮件报警的使用技巧和注意事项,需要的朋友参考一下

在正式的生产环境中,我们常常会需要监控服务器的状态,以保证公司整个业务的正常运转,常常我们会用到像nagios、zabbix这类工具进行实时监控,那么用python我们怎么进行监控呢?这里我们利用了python3调用psutil和yagmail这两个模块进行监测服务器的内存、磁盘、cpu状态(以及我们监控apache运行状态用到的socket模块)

监控内存、磁盘、cpu

import psutil
def mem():
	mem = psutil.virtual_memory()
return mem[2]
def disk():
	disk = psutil.disk_usage('/root')
return disk[3]
def cpu():
	cpu = psutil.cpu_percent(60)
return cpu
a = mem()
b = disk()
c = cpu()
import yagmail
yag = yagmail.SMTP(user = 'xxx@qq.com',
	password = 'cxboscylplifgadd', host =
	'smtp.qq.com')
if a > 80:
	yag.send(to = 'xxx@qq.com', subject =
		'内存报警', contents = '运行内存超过80%请尽快处理',
		cc = 'xxx@qq.com')
yag.close()
if b > 70:
	yag.send(to = 'xxx@qq.com', subject =
		'系统磁盘报警', contents = '系统磁盘超过70%请尽快处理',
		cc = 'xxx@qq.com')
yag.close()
if c > 90:
	yag.send(to = 'xxx@qq.com', subject =
		'cpu报警', contents = 'cpu超过90%请尽快处理',
		cc = 'xxx@qq.com')
yag.close()

监控网页服务(报警)

import socket, yagmail
hosts = ['192.168.8.137:80',
	'192.168.8.15:88'
]
socket.setdefaulttimeout(5)
for host in hosts:
	ip = host.split(':')[0]
port = host.split(':')[1]
server = socket.socket()
res = server.connect_ex((ip, int(port)))# 返回值为0代表ok,
	不为0代表失败
if res == 0:
	pass
else :
	yag = yagmail.SMTP(user = 'xxx@qq.com',
		password = 'cxboscylplifgadd', host =
		'smtp.qq.com')
yag.send(to = 'xxx@qq.com', subject =
	'警告', contents = '%s httpd服务断开请检测' %
	ip, cc = 'xx@163.com')
yag.close()

这样我们的监控脚本python脚本就完成了,现在就只需要拿到服务器执行定时任务就行了。现在我们来检测一下:

编辑一下定时任务

我们将写上面两个脚本写入1.py和2.py这两个文件中,为了方便验证我们将磁盘判断值改为30,实际上我们已用到了40%,这样就能直接报警了,两台服务器的Apache端口都为80且均为正常运行状态。

我们等待一分钟。。。。。。。

我们收到两封报警邮件,是不是很方便呢?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Linux服务器硬件运行状态及故障邮件提醒的监控脚本分享,包括了Linux服务器硬件运行状态及故障邮件提醒的监控脚本分享的使用技巧和注意事项,需要的朋友参考一下 监控硬件运行状况 shell 监控cpu,memory,load average,记录到log,当负载压力时,发电邮通知管理员。 原理: 1.获取cpu,memory,load average的数值 2.判断数值是否超过自定

  • 本文向大家介绍如何监控 Linux 服务器状态的方法,包括了如何监控 Linux 服务器状态的方法的使用技巧和注意事项,需要的朋友参考一下 Linux 服务器我们天天打交道,特别是 Linux 工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。 本文介绍的几个命令,不仅仅适用于服务器监控,也适用于我们日常情况下的开发。 1. watch watch

  • 本文向大家介绍使用python进行服务器的监控,包括了使用python进行服务器的监控的使用技巧和注意事项,需要的朋友参考一下 在linux服务器中,一切皆为文件,就是说,服务器运行的个中信息,其实是可以从某些文件中查询得到的;百度后,你会知道,在Linux系统中,有一个/proc的虚拟文件系统: Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新引导内核系统,

  • 7. 状态监控 主界面右下角状态栏可查看课堂的网络状态,如果房间网络状态不佳,请检查讲师和各个学员的本地网络链接是否正常。 延时 表示各个参会者之间的互动延时,延时在 0.2S 以下为正常状态,如果延时较高则可能会影响参会者的互动体验效果。 丢包 表示网络链路的传输质量,丢包率在 1%以下为正常状态,如果丢包率较高则可能会出现视频卡顿或中断等现象。 网络 表示房间的整体网络状态,其中“好”为正常状

  • 本文向大家介绍用python监控服务器的cpu,磁盘空间,内存,超过邮件报警,包括了用python监控服务器的cpu,磁盘空间,内存,超过邮件报警的使用技巧和注意事项,需要的朋友参考一下   监控Linux服务器嘛,脚本逻辑基本上是用os.popen模块,然后把获取到的结果通过split切分成一个list,再拿目标list值和我阈值对比,超过就邮件报警;   邮件是通过Linux的mailx发出去

  • 5.2 状态码监控 对于动态请求,Nginx本身不处理请求,而是反向代理到业务服务器,由业务服务器来真正处理请求。 业务服务器的处理状态,可以通过http返回状态码来判定。Nginx本身的access.log中,记录了每条请求以及返回状态码。对返回状态码进行监控,可以了解业务服务器的状态。 目前Camel以业务集群upstream为粒度进行监控,提供了状态码趋势图、状态码大盘、监控规则报警功能。