利用SSIS不仅可以做BI项目的ETL,而且还可以做一些系统监控和维护工作,由于之前供应商写的Windows服务是读取ESB的消息进行处理,且通过OA流程与访客系统进行了集成,无论是ESB出现状况,还是Windows服务出现状况,都会对访问系统造成严重影响,导致内部员工
利用SSIS不仅可以做BI项目的ETL,而且还可以做一些系统监控和维护工作,由于之前供应商写的Windows服务是读取ESB的消息进行处理,且通过OA流程与访客系统进行了集成,无论是ESB出现状况,还是Windows服务出现状况,都会对访问系统造成严重影响,导致内部员工无法进行接待外部人员,因此整体对ESB进行优化,在本人博客的前一篇已介绍了《通过SSIS监控远程服务器磁盘空间并发送邮件报警!》。本文实现的方法思路与此相同,仅仅是监控Windows服务的状态是否为运行,如果不是运行状态则自动发送邮件进行报警,对于自动化的运维主要是通过专门的服务程序进行监控和运维等,待下次再进行介绍。
通过WMI很容易查询远程服务器的Windows服务信息,具体过程如下:
WMI的连接管理器:
定义8个包变量,对8个Windows服务进行监控,,如下图:
通过WMI的WQL的语句,如下图:
脚本任务中主要实现去除服务状态变量的空格字符,如下图:
Dts.Variables[].Value = Dts.Variables[].Value.ToString().Trim();
Dts.TaskResult = (int)ScriptResults.Success;