下面是使用Python监控服务器的CPU、磁盘空间、内存,并超过邮件报警的完整攻略:
1. 安装必要的Python库
我们需要安装以下Python库来监控服务器的CPU、磁盘空间和内存:
- psutil:用于获取系统CPU、内存和磁盘等信息。
- smtplib:用于发送邮件。
可以使用pip安装这些库:
pip install psutil smtplib
2. 编写Python脚本
首先,我们需要导入必要的库:
import psutil
import smtplib
import os
from email.mime.text import MIMEText
from email.header import Header
然后,定义我们希望监控的阈值:
# CPU使用率
cpu_threshold = 80
# 内存使用率
mem_threshold = 80
# 磁盘使用率
disk_threshold = 80
# SMTP服务器配置信息
smtp_server = 'smtp.163.com'
smtp_port = 25
smtp_user = 'your_email@example.com'
smtp_password = 'your_password'
接下来,定义一个函数来获取系统信息:
def get_system_info():
# 获取CPU使用率
cpu_percent = psutil.cpu_percent()
# 获取内存使用率
mem_percent = psutil.virtual_memory().percent
# 获取磁盘使用率(根目录)
disk_percent = psutil.disk_usage('/').percent
return cpu_percent, mem_percent, disk_percent
然后,定义一个函数来发送邮件:
def send_email(content):
# 创建邮件内容对象
message = MIMEText(content, 'plain', 'utf-8')
# 设置邮件主题
message['Subject'] = Header('服务器监控报警', 'utf-8')
# 设置发件人和收件人
message['From'] = smtp_user
message['To'] = smtp_user
# 发送邮件
try:
smtp = smtplib.SMTP(smtp_server, smtp_port)
smtp.login(smtp_user, smtp_password)
smtp.sendmail(smtp_user, [smtp_user], message.as_string())
smtp.quit()
except Exception as e:
print('发送邮件失败:{}'.format(str(e)))
最后,编写代码进行监控并发送报警邮件:
if __name__ == '__main__':
# 获取系统信息
cpu_percent, mem_percent, disk_percent = get_system_info()
# 判断是否需要报警
if cpu_percent >= cpu_threshold or mem_percent >= mem_threshold or disk_percent >= disk_threshold:
content = '服务器监控报警:\n\n'
content += 'CPU使用率:{}%\n'.format(cpu_percent)
content += '内存使用率:{}%\n'.format(mem_percent)
content += '磁盘使用率(根目录):{}%\n\n'.format(disk_percent)
content += '请立即处理!'
send_email(content)
示例说明:
下面提供两个示例说明:
示例1:
某台服务器总内存只有4GB,可用内存只有不到500MB,但是管理员误将其挂在了高访问量的网站上,导致内存经常短缺,影响网站服务质量。因此,管理员想要使用Python监控服务器内存使用率超过阈值报警。
管理员将阈值设为80%,当内存使用率超过80%时,服务器会自动发送一封邮件给管理员:
# 内存使用率
mem_threshold = 80
if __name__ == '__main__':
# 获取系统信息
cpu_percent, mem_percent, disk_percent = get_system_info()
# 判断是否需要报警
if mem_percent >= mem_threshold:
content = '服务器监控报警:\n\n'
content += '内存使用率:{}%\n\n'.format(mem_percent)
content += '请立即处理!'
send_email(content)
示例2:
某个高并发的网站需要保证服务器的CPU、内存和磁盘等资源充足,以保证网站服务质量。管理员希望使用Python监控这些资源超过阈值时报警。
管理员将阈值设为80%,当CPU、内存或磁盘使用率超过80%时,服务器会自动发送一封邮件给管理员:
# CPU使用率
cpu_threshold = 80
# 内存使用率
mem_threshold = 80
# 磁盘使用率
disk_threshold = 80
if __name__ == '__main__':
# 获取系统信息
cpu_percent, mem_percent, disk_percent = get_system_info()
# 判断是否需要报警
if cpu_percent >= cpu_threshold or mem_percent >= mem_threshold or disk_percent >= disk_threshold:
content = '服务器监控报警:\n\n'
content += 'CPU使用率:{}%\n'.format(cpu_percent)
content += '内存使用率:{}%\n'.format(mem_percent)
content += '磁盘使用率(根目录):{}%\n\n'.format(disk_percent)
content += '请立即处理!'
send_email(content)
以上就是监控服务器CPU、磁盘空间、内存,并超过阈值邮件报警的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用python监控服务器的cpu,磁盘空间,内存,超过邮件报警 - Python技术站