由于之前ESB是供应商部署的,且部署在C盘(C盘空间很小,还添加了很多ESB的windows服务日志在C盘,很容易把C盘空间占满,导致ESB服务运行宕机,几乎每隔几周发生一次事故,需要人工干预处理,不甚其烦), 因此前段时间对于基于RabbitMQ构建的ESB进行了综合优化,以确保ESB服务的稳定可靠,同时初步建立了自动化的ESB监控和运维体系,本文介绍一种其中用到技术之一,通过SSIS监控远程服务器磁盘空间并发送邮件报警,目的是当自动化ESB运维失效的时候,可以进行人工干预处理。
通过WMI可以很容易查询和获得远程服务器的磁盘空间,如磁盘空间不足1G,自动发送邮件给自定人员进行报警,具体过程如下:
WMI的连接管理器:
定义的两个包变量如下图:
通过WMI的WQL的语句:
SELECT FreeSpace FROM Win32_LogicalDisk where DriveType= 3 and DeviceID='C:'
脚本任务中主要实现磁盘空间的变量赋值并判断是否小于1G:
long gb = * * ; // TODO: Add your code here
Dts.Variables["DiskResults"].Value = double.Parse(Dts.Variables["DiskUsageResults"].Value.ToString()) / gb; Dts.TaskResult = (int)ScriptResults.Success;
磁盘空间不足1G,发送报警邮件,如下图:
最终实现效果,如下图:
本博客为软件人生原创,欢迎转载,转载请标明出处:http://www.cnblogs.com/nbpowerboy/p/3367918.html。演绎或用于商业目的,但是必须保留本文的署名软件人生(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。 |