使用 Azure Monitor 监视 SSIS 操作

注意

只能在 Azure 数据工厂中使用 Azure Monitor 监视 SSIS 操作,不能在 Azure Synapse Pipelines 中进行监视。

要直接迁移 SSIS 工作负载,可以在 ADF 中预配 SSIS IR,以支持:

  • 运行部署在由 Azure SQL 数据库服务器/托管实例托管的 SSIS 目录 (SSISDB) 中的包(项目部署模型)
  • 运行部署在由 Azure SQL 托管实例托管的文件系统、Azure 文件存储或 SQL Server 数据库 (MSDB) 中的包(包部署模型)

预配后,可以通过 Azure PowerShell 或 ADF 门户的“监视器”中心检查 SSIS IR 操作状态。 使用项目部署模型时,SSIS 包执行日志存储在 SSISDB 内部表或视图中,因此可以使用 SSMS 之类的指定工具对其进行查询、分析和直观显示。 使用包部署模型时,可以将 SSIS 包执行日志作为 CSV 文件存储在文件系统或 Azure 文件存储中,仍需要使用其他指定工具对这些文件进行分析和处理,然后才能对其进行查询、分析和直观显示。

现在,通过 Azure Monitor 集成,可在 Azure 门户上查询、分析和直观显示从 SSIS IR 操作和 SSIS 包执行生成的所有指标和日志。 此外,还可发出相关警报。

为 SSIS 操作配置诊断设置和工作区

要将从 SSIS IR 操作和 SSIS 包执行生成的所有指标和日志发送到 Azure Monitor,需要为 ADF 配置诊断设置和工作区

SSIS 操作指标

SSIS 操作指标是性能计数器或数字值,用于描述特定时间点的 SSIS IR 启动和停止操作以及 SSIS 包执行的状态。 它们是 Azure Monitor 中 ADF 指标的一部分。

在 Azure Monitor 上为 ADF 配置诊断设置和工作区时,选中“AllMetrics”复选框将使 SSIS 操作指标可用于使用 Azure 指标资源管理器进行的交互分析在 Azure 仪表板上呈现以及近实时警报

Name your settings and select a log-analytics workspace

SSIS 操作警报

若要从 ADF 门户基于 SSIS 操作指标引发警报,请选择 ADF“监视器”中心的“警报和指标”页面,并按照提供的分步说明进行操作

Raising SSIS operational alerts from ADF portal

若要从 Azure 门户基于 SSIS 操作指标引发警报,请选择 Azure“监视器”中心的“警报”页面,并按照提供的分步说明进行操作

Raising SSIS operational alerts from Azure portal

SSIS 操作日志

SSIS 操作日志是由 SSIS IR 操作和 SSIS 包执行生成的事件,这些事件提供了有关已识别问题的充足上下文,对根本原因分析很有用。

在 Azure Monitor 上为 ADF 配置诊断设置和工作区时,可以选择相关 SSIS 操作日志,并将其发送到基于 Azure 数据资源管理器的 Log Analytics。 在这里,它们可用于使用丰富的查询语言进行的分析在 Azure 仪表板上呈现以及近实时警报

Name your settings and select a log-analytics workspace

Azure Monitor 和 Log Analytics 中的 SSIS 包执行日志的架构和内容类似于 SSISDB 内部表或视图中的架构。

Azure Monitor 日志类别 Log Analytics 表 SSISDB 内部表/视图
SSISIntegrationRuntimeLogs ADFSSISIntegrationRuntimeLogs
SSISPackageEventMessageContext ADFSSISPackageEventMessageContext [internal].[event_message_context]
SSISPackageEventMessages ADFSSISPackageEventMessages [internal].[event_messages]
SSISPackageExecutableStatistics ADFSSISPackageExecutableStatistics [internal].[executable_statistics]
SSISPackageExecutionComponentPhases ADFSSISPackageExecutionComponentPhases [internal].[execution_component_phases]
SSISPackageExecutionDataStatistics ADFSSISPackageExecutionDataStatistics [internal].[execution_data_statistics]

有关 SSIS 操作日志特性/属性的详细信息,请参阅 Azure Monitor 和 Log Analytics 为 ADF 使用的架构

无论使用哪种调用方法,所选 SSIS 包执行日志始终会发送到 Log Analytics。 例如,可以在 SSMS、SQL Server 代理或其他指定工具上通过 T-SQL 调用包执行,也可以作为 ADF 管道中“执行 SSIS 包”的已触发运行或调试运行进行调用。

在 Logs Analytics 上查询 SSIS IR 操作日志时,可以使用 OperationName 和 ResultType 属性,这两个属性分别设置为 Start/Stop/Maintenance/HeartbeatStarted/InProgress/Succeeded/Failed/Healthy/Unhealthy

Querying SSIS IR operation logs on Log Analytics

若要查询 SSIS IR 节点状态,可以将 OperationName 属性设置为 Heartbeat。 通常,每个节点每分钟都会向日志分析发送一个 Heartbeat 记录,通过 ResultType 属性反映其状态,当节点可用于包执行时其属性为 Healthy,反之则为 Unhealthy。 例如,如果 SSIS IR 有两个可用节点,将在任意一个一分钟时间段内始终可以看到两个 ResultType 属性设置为 HealthyHeartbeat 记录。

Querying SSIS IR heartbeats on Log Analytics

你可以查询以下模式以检测 SSIS IR 节点的不可用性:

  • SSIS IR 仍在运行时,在许多一分钟时间段内都会缺失 Heartbeat 记录。
  • SSIS IR 仍在运行时,在许多一分钟时间段内会有 ResultType 属性设置为 UnhealthyHeartbeat 记录。

你可以将以上查询转换成警报,然后转到 SSIS IR 监视页面以确认收到那些警报。

在 Logs Analytics 上查询 SSIS 包执行日志时,可以使用 OperationId/ExecutionId/CorrelationId 属性联接它们 。 对于与未存储在 SSISDB 中的包/通过 T-SQL 调用的包相关的所有操作/执行,OperationId/ExecutionId 始终设置为 1

Querying SSIS package execution logs on Log Analytics

日志和事件的架构