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

    由于之前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 = 1024 * 1024 * 1024; 
           
            // 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。演绎或用于商业目的,但是必须保留本文的署名软件人生(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。

posted @ 2013-10-14 10:48  软件人生  阅读(3275)  评论(5编辑  收藏  举报