windows下如何实现磁盘满额自动邮件报警

发布网友 发布时间:2022-04-21 05:46

我来回答

2个回答

懂视网 时间:2022-05-05 18:54

由于之前ESB是供应商部署的,且部署在C盘(C盘空间很小,还添加了很多ESB的windows服务日志在C盘,很容易把C盘空间占满,导致ESB服务运行宕机,几乎每隔几周发生一次事故,需要人工干预处理,不甚其烦),因此 前段时间对于基于RabbitMQ构建的ESB进行了综合

由于之前ESB是供应商部署的,且部署在C盘(C盘空间很小,还添加了很多ESB的windows服务日志在C盘,很容易把C盘空间占满,导致ESB服务运行宕机,几乎每隔几周发生一次事故,需要人工干预处理,不甚其烦), 因此前段时间对于基于RabbitMQ构建的ESB进行了综合优化,,以确保ESB服务的稳定可靠,同时初步建立了自动化的ESB监控和运维体系,本文介绍一种其中用到技术之一,通过SSIS监控远程服务器磁盘空间并发送邮件报警,目的是当自动化ESB运维失效的时候,可以进行人工干预处理。

通过WMI可以很容易查询和获得远程服务器的磁盘空间,如磁盘空间不足1G,自动发送邮件给自定人员进行报警,具体过程如下:

WMI的连接管理器:

定义的两个包变量如下图:

通过WMI的WQL的语句:

DeviceID

懂视网 时间:2022-05-05 18:58

由于之前ESB是供应商部署的,且部署在C盘(C盘空间很小,还添加了很多ESB的windows服务日志在C盘,很容易把C盘空间占满,导致ESB服务运行宕机,几乎每隔几周发生一次事故,需要人工干预处理,不甚其烦),因此 前段时间对于基于RabbitMQ构建的ESB进行了综合

由于之前ESB是供应商部署的,且部署在C盘(C盘空间很小,还添加了很多ESB的windows服务日志在C盘,很容易把C盘空间占满,导致ESB服务运行宕机,几乎每隔几周发生一次事故,需要人工干预处理,不甚其烦), 因此前段时间对于基于RabbitMQ构建的ESB进行了综合优化,,以确保ESB服务的稳定可靠,同时初步建立了自动化的ESB监控和运维体系,本文介绍一种其中用到技术之一,通过SSIS监控远程服务器磁盘空间并发送邮件报警,目的是当自动化ESB运维失效的时候,可以进行人工干预处理。

通过WMI可以很容易查询和获得远程服务器的磁盘空间,如磁盘空间不足1G,自动发送邮件给自定人员进行报警,具体过程如下:

WMI的连接管理器:

定义的两个包变量如下图:

通过WMI的WQL的语句:

DeviceID

热心网友 时间:2022-05-05 16:06

该问题分为两个步骤来考虑,一是如何监测磁盘容量;二是如何自动邮件报警。

第一个问题有两种解决方法,一是利用命令行下的wmic命令来写一个bat脚本;二是利用windows自带的性能监控。第一种方法比较麻烦,这里采用了第二种方法。

这样,总的详细步骤如下:

第一步 启用“性能”功能

在服务器中,点击“开始→运行”,在“运行”对话框中输入“perfmon.msc”命令后回车,弹出“性能”管理主窗口。接着依次展开“性能日志和警报 → 警报”选项,下面就可以利用“新建警报设置”来监控服务器空间的剩余数量,当服务器剩余空间低于某个数值时,就向管理员报警,提示空间 不足的警告信息。

第二步 新建警告设置

接下来要新建一个警报设置,用来监控磁盘空间剩余量。

在“性能”管理主窗口中,右键点击“警报”选项,在弹出的菜单中选择“新建警报设置”选项,弹出新建警报设置对话框,在“名称”栏中为该警报起个名称,如“Diskfree”,点击“确定”按钮后,进入到警报参数设置对话框。

第三步 警报参数设置

1. 添加计数器

在警报参数设置对话框中,点击“添加”按钮,弹出“添加计数器”对话框,接着在“性能对象”下拉列表框中选中“LogicalDisk”选项。

下面选中“从列表选中计数器”选项,接着在列表框中选中“%Free Space”,再选中要监控的盘符,如“C:”,最后点击“添加”按钮。 (注意,监控多个盘要分别添加警报;监控整个磁盘容量就选择“_Total”)

2. 警告参数和采样间隔

然后回到警报参数设置对话框中,接下来要设置触发警告参数和数据采样间隔参数。这里要设置为剩余磁盘空间低于15%后,就向管理员发出警报。在“将触发警报,如果值是”下拉框中选择“低于”选项,在“*”栏中输入“15”。 接着设置数据采样间隔值,这个间隔时间不要设置的过短,如设置为“5分钟”,在“间隔”栏中输入“5”,“单位”栏中选择“分钟”。

3. 指定警告操作

最后还要切换到“操作”标签页,在“当触发警报时”框体中选中“执行这个程序”选项,单击“浏览”,选择“邮件警告.bat”

附上“邮件警告.bat”示例:

[html]

@echo off

echo 磁盘已满,请及时清理!!!服务器地址为: > c:mail_body.txt

ipconfig | find "IP Address" >> c:mail_body.txt

:::::::::::::: 参数设置:::::::::::::

set from=test@qq.com

set user=test

set pass=11111

set to=alarm@qq.com

set subj="Disk Full Alarm!"

set mail=c:mail_body.txt

set server=smtp.qq.com

set debug=-debug -log c:blat.log -timestamp

::::::::::::::::: 运行blat :::::::::::::::::

blat %mail% -to %to% -base -charset Gb2312 -subject %subj% -server %server% -f %from% -u %user% -pw %pass% %debug%

邮件报警截图:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com