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

本文介绍在报表服务器上部署磁盘警告SSIS包的步骤,包括变量创建、WMI与SMTP连接管理器设置、WMIDataReaderTask及ScriptTask配置,解决SQLAgent启动账号访问WMI权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文直接参考了博客园软件人生的文章操作的,写在这里只为做个记录.

到公司这边先把两个报表服务器接收了. 为防止宕机,部署个磁盘警告的SSIS包.

Step 1 建立两个变量来接收和写入磁盘容量

image

Step 2 创建 WMI和SMTP 连接管理器

image

 

Step 3 拖个WMI Data Reader Task,并进行配置

注意,几乎每个选项都要改

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

image

Step 4 拖个Script Task 并进行配置

image

 

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;

(注,我点击Edit Script的时候报错了, 应该是之前装了新版本的SSDT删掉后,在用老的SSDT就会有问题。把原来VS相关的东西删掉,再重新安装SSDT就好了)

image

约束限制:

image

最后设置SMTP就好啦

image

问题

 SQL Agent 默认的启动帐号 NT Service\SQLSERVERAGENT 跨服务访问WMI提示失败, 我尝试把这个帐号加入管理组也不行。 后来找了个本地帐号来启动SQL Agent 才可以。 看资料好像WMI只认本地帐号。 其他小伙伴碰到这个情况请解说下。

 

 

参考文档

[总结]WMI相关的知识

http://blog.chinaunix.net/uid-7672958-id-2599044.html

Could not load file or assembly ‘Microsoft.VisualStudio.Tools.Applications.Core’

http://pietervanhove.azurewebsites.net/?p=461

WQL - WMI Event Watcher Task - Access Denied

https://social.technet.microsoft.com/Forums/sqlserver/en-US/fe033702-d1e9-4276-a2a4-99a7ae61c722/wql-wmi-event-watcher-task-access-denied?forum=sqlintegrationservices

转载于:https://www.cnblogs.com/haseo/p/4384049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值