我们的商店在很大程度上依赖SSIS来运行我们的后端流程和数据库任务。总的来说,我们有数百个工作岗位,而且大多数工作都能高效顺利地运行。
大多数情况下,由于外部依赖性失败(数据不可用,文件未送达等)导致作业失败。现在,我们的流程设置为每次工作失败时给我们发送电子邮件。 SSIS将生成一封电子邮件,向我们发送作业名称及失败的步骤。
我正在寻找创建各种仪表板来更有效地监控此过程。我知道通过查询msdb数据库也可以获得SSIS的“作业历史记录”窗口中提供的相同信息。我想设置一个中心位置来报告失败(可能使用SQL Reporting Services),还有一个更智能的电子邮件警报系统。
还有其他人处理过这个问题吗?如果是这样,您是否围绕SSIS程序创建了哪种流程/报告,以简化作业失败或警报的通知?
答案 0 :(得分:2)
我们公司也有类似的设置。我们主要依靠让工作在出现问题时通知我们,并且我们的员工在特定时间检查工作状态,以确保一切正常,没有被忽视。
我的团队每天早上6点和下午4点收到一封SQL Server代理作业活动报告HTML电子邮件,其中列出了顶部的所有失败作业,低于该作业的正在运行的作业,以及低于每天,每周,每月,每季度的所有其他作业等等。我们实质上是监视SQL Server代理作业,而不是SSIS包本身。我们依靠工作类别和作业计划命名约定来自动化报告中的分组。
我们有类似的设置来监控我们的SSRS订阅。但是,我们每天只监控一次,因为我们的大部分订阅都是在凌晨3点到凌晨4点左右触发的。 SSRS订阅活动报告比SQL Server代理作业活动报告更进一步,因为它具有指向报告订阅屏幕的链接,并且内置了更多异常处理。
除了依赖报告之外,我们还有一些工作可以在工作完成时通过电子邮件通知操作员,而不是在工作失败时。这样可以轻松快速检查所有主要ETL进程是否已成功运行。它是系统健康状况的早期指标。如果我们在第一个团队成员进入办公室时没有收到这封电子邮件,那么我们就知道出了什么问题。如果在特定时间内未加载某些数据源,我们还会有一系列作业失败并出现作业错误。在我有人提前轮班工作之前,我会在半夜醒来时随时检查我的iPhone电子邮件(自从我生了一个新生婴儿后发生了很多事)。在极少数情况下,我没有收到表明已完成所有内容的电子邮件,或者我收到有关作业步骤的错误,然后我通过远程桌面登录我的计算机以检查作业的状态。
我考虑让我们的数据中心人员每天凌晨4点左右运行报告来检查服务器的状态,但最后我确定这不是必要的,因为我们有一个人在早上6点开始工作。我实施此流程的主要问题是我们的ETL会随着时间的推移而发生变化,因此我需要维护有关如何正确检查作业以及如何在检测到问题时将通知升级到我的团队的文档。如果流程必须在半夜运行,我愿意这样做。但是,我们的ETL每天都在运行,所以如果我们必须在清晨启动所有主要的ETL流程,我们仍然可以在任何人进入办公室之前完成加载我们的数据仓库并发布报告。此外,由于某种原因,我们的办公室开始真正迟到,因此人们通常不会以交互方式运行我们的报告,直到上午9点。
答案 1 :(得分:1)
如果您不打算进行全面的自定义构建,可以使用https://cronitor.io来监控etl作业。
答案 2 :(得分:0)
当前的SSRS作业监视过程: 没有SSRS作业监视过程。如果任何SSRS作业失败,则由用户创建事件,然后TOPS Reporting和SSRS开发人员团队将根据事件开始工作。结果,此过程花费了大量的周转时间来解决此问题。
拟议的SSRS作业监视过程: SSRS订阅监视作业将有助于TOPS Reporting和SSRS开发人员主动监视SSRS作业。该作业将创建报告以显示失败的报告列表以及常规执行日志状态和订阅错误日志状态。最初,开发人员可以从此报告中了解报告失败的原因,然后开发人员可以开始积极工作以解决问题。