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

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

通过SSIS监控远程服务器磁盘空间并发送邮件报警!-LMLPHP

WMI的连接管理器:

通过SSIS监控远程服务器磁盘空间并发送邮件报警!-LMLPHP

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

通过SSIS监控远程服务器磁盘空间并发送邮件报警!-LMLPHP

通过WMI的WQL的语句:

SELECT FreeSpace FROM Win32_LogicalDisk where DriveType= 3 and DeviceID='C:'

通过SSIS监控远程服务器磁盘空间并发送邮件报警!-LMLPHP

脚本任务中主要实现磁盘空间的变量赋值并判断是否小于1G:

通过SSIS监控远程服务器磁盘空间并发送邮件报警!-LMLPHP

  long gb =  *  * ;

            // TODO: Add your code here
Dts.Variables["DiskResults"].Value = double.Parse(Dts.Variables["DiskUsageResults"].Value.ToString()) / gb; Dts.TaskResult = (int)ScriptResults.Success;

通过SSIS监控远程服务器磁盘空间并发送邮件报警!-LMLPHP

磁盘空间不足1G,发送报警邮件,如下图:

通过SSIS监控远程服务器磁盘空间并发送邮件报警!-LMLPHP

通过SSIS监控远程服务器磁盘空间并发送邮件报警!-LMLPHP

最终实现效果,如下图:

通过SSIS监控远程服务器磁盘空间并发送邮件报警!-LMLPHP

本博客为软件人生原创,欢迎转载,转载请标明出处:http://www.cnblogs.com/nbpowerboy/p/3367918.html。演绎或用于商业目的,但是必须保留本文的署名软件人生(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。

05-06 05:23