监视自动化任务

发布时间:2025-02-10 04:13

利用技术自动化重复任务 #生活技巧# #高效#

监视自动化任务

自动执行任务后,请务必对其进行监视,确保它们正常工作。 这样,便可以最大程度地提高服务的性能和可用性,并主动识别出问题。

监视 Runbook

runbook 本质上应该是模块化的,具有可以轻松重用和重启的逻辑。 监视 runbook 中的进度可确保在出现问题时正确执行 runbook 的逻辑。

可以使用数据库、存储帐户或共享文件来监视 runbook 的进度。 确保 runbook 在启动下一个操作之前,先检查已执行的最后一个操作。 根据检查结果,可跳过逻辑,或者逻辑在 runbook 中继续执行特定任务。

可以在 Azure 门户中监视 runbook 的执行情况。 在自动化帐户的主边栏选项卡的“流程自动化”部分中,选择“作业”

Azure 门户上的作业执行历史记录页的屏幕截图。

如上图所示,突出显示的 runbook 已完成。 若要调查详细信息和状态,请选择相应的作业。

若要详细了解如何排查 runbook 的问题,请参阅排查 runbook 问题

警报

你还可以创建指标警报来监视 runbook 的执行情况。 使用警报,可以定义条件,在满足这些条件时进行监视和执行操作。

Azure 自动化的“创建预警规则”选项的屏幕截图。

当你选择“创建预警规则”时,屏幕右侧将打开“选择信号”滑出对话框。 接下来,需要选择一个最适合你的场景的信号。 对于本示例,请选择“作业总数”

关于警报的“选择信号”页的屏幕截图。

在“配置信号逻辑”滑出对话框中,为“阈值”属性选择“静态”。 然后,将“运算符”属性设置为“大于”,并将“聚合”类型设置为“总计”。 然后在“阈值”中输入值 10

Azure 自动化警报的“配置信号逻辑”幻灯片的屏幕截图。

或者,可以指定维度。 例如,可以定义预警规则将仅针对特定 runbook 和状态触发。 如果没有指定维度,则不会应用任何筛选器。

显示如何在 Azure 自动化上为警报逻辑添加自定义维度的屏幕截图。

接下来,请确保配置操作组。 操作组是一个操作集合,你可以在多个警报中使用它。 其中包括电子邮件通知、runbook 和 Webhook 等。

备注

可以将 Azure 自动化与 Azure 警报操作组结合起来,在引发警报时启动自动化 runbook。

活动日志

Azure 自动化流程将执行 runbook,并在活动日志中收集详细信息。

自动化帐户的活动日志的屏幕截图。

在上图中,可以检索 runbook 详细信息,例如启动 runbook 的人员或帐户。

作为替代方法,以下 PowerShell 示例显示了运行指定 runbook 的最后一名用户。

$rgName = 'MyResourceGroup' $accountName = 'MyAutomationAccount' $runbookName = 'MyRunbook' $startTime = (Get-Date).AddDays(-1) $params = @{ ResourceGroupName = $rgName StartTime = $startTime } $JobActivityLogs = (Get-AzLog @params).Where( { $_.Authorization.Action -eq 'Microsoft.Automation/automationAccounts/jobs/write' }) $JobInfo = @{} foreach ($log in $JobActivityLogs) { # Get job resource $JobResource = Get-AzResource -ResourceId $log.ResourceId if ($null -eq $JobInfo[$log.SubmissionTimestamp] -and $JobResource.Properties.Runbook.Name -eq $runbookName) { # Get runbook $jobParams = @{ ResourceGroupName = $rgName AutomationAccountName = $accountName Id = $JobResource.Properties.JobId } $Runbook = Get-AzAutomationJob @jobParams | Where-Object RunbookName -EQ $runbookName # Add job information to hashtable $JobInfo.Add($log.SubmissionTimestamp, @($Runbook.RunbookName, $Log.Caller, $JobResource.Properties.jobId)) } } $JobInfo.GetEnumerator() | Sort-Object Key -Descending | Select-Object -First 1

Log Analytics

Azure 自动化可将 Runbook 作业状态和作业流发送到 Log Analytics 工作区。 此方法不需要工作区链接,并且是独立的。

使用与自动化帐户集成的 Azure Monitor 日志,可以执行以下操作:

查看自动化作业的状态 编写跨作业工作流的高级查询 基于 runbook 作业状态触发电子邮件或警报 关联来自多个自动化作业的数据

若要运行查询,请从自动化帐户主边栏选项卡的“监视”部分中选择“日志”

Azure 门户提供了一些查询模板,方便你开始使用。 正如我们在下面看到的,我们使用了一个现有的 Kusto 查询模板来列出自动化帐户中所有已完成的作业。

Log Analytics 工作区 Runbook 查询的屏幕截图,其中显示了自动化帐户中所有已完成作业的列表。

将 Azure 自动化诊断日志转发到 Log Analytics 工作区是一项重要的功能,有助于监视 runbook 的运行状况。

备注

在开始使用 Log Analytics 查询自动化作业数据之前,必须为自动化帐户配置诊断设置

监视弹性作业(预览版)

使用弹性作业时,将记录作业执行情况,并在出现任何失败时自动重试。 自动重试功能为暂时性故障提供了更具弹性的服务。

你可以通过 Azure 门户、PowerShell 和 T-SQL 监视弹性作业执行情况。

Azure 门户

若要查看作业执行的历史记录,请选择弹性作业代理主边栏选项卡中的“概述”

弹性作业的“概述”部分的屏幕截图,可在其中监视作业执行。

PowerShell

以下代码片段获取了作业执行情况详细信息。

# get the latest 5 executions run $jobAgent | Get-AzSqlElasticJobExecution -Count 5 # get the job step execution details $jobExecution | Get-AzSqlElasticJobStepExecution # get the job target execution details $jobExecution | Get-AzSqlElasticJobTargetExecution -Count 2

T-SQL

以下示例演示如何查看所有作业的执行状态详细信息。 创建作业代理并连接到作业数据库,然后运行以下命令:

--View all execution status for all jobs SELECT * FROM jobs.job_executions ORDER BY start_time DESC; --View all execution statuses for job named 'MyJob' SELECT * FROM jobs.job_executions WHERE job_name = 'MyJob' ORDER BY start_time DESC; -- View all active executions SELECT * FROM jobs.job_executions WHERE is_active = 1 ORDER BY start_time DESC;

下一单元: 练习:部署自动化 Runbook,以自动重新动生成索引

上一篇下一步

网址:监视自动化任务 https://www.yuejiaxmz.com/news/view/764333

相关内容

脚本自动化任务
Python自动化任务
Linux自动化任务
自动化管理任务
《系统自动化任务》课件.pptx
【Linux自动化任务构建】
任务自动化工具
自动化脚本开发,实现自动化任务派发
如何在Linux上自动化任务
任务自动化

随便看看