使用维护模式临时暂停监视

使用 Operations Manager 中的维护模式,可以避免在受监视对象(如计算机、SQL 数据库或分布式应用程序)脱机进行维护时可能发生的任何警报或错误。 维护模式暂停了以下功能:

  • 规则和监视器

  • 通知

  • 自动响应

  • 状态更改

  • 新警报

例如,在 Windows 服务器上运行的 Exchange 邮箱角色将应用 Exchange 服务器服务包。 此软件更新维护预计需要 60 分钟完成。 在此期间,在此服务器上运行的邮箱数据库不可用。

在这种情况下,可以将 Exchange 邮箱角色和包含的组件放入维护模式,而不是将整个计算机置于维护模式。 这样就可以继续监视服务器上运行的其他组件,包括 Windows 操作系统,同时专门对 Exchange Server 应用程序执行维护。

可以选择一个或多个监视对象并按需将其置于维护模式,也可以定义与服务或维护时段一致的计划,并根据所选的计划自动将其置于维护模式。 使用新的计划功能,可以:

  • 计划将来的每日、每周或每月维护模式。

  • 选择要作为单个计划一部分进行维护的实体和组的不同类。

  • 从单个屏幕查看所有维护模式计划。

  • 为同一受监视实体计划多个作业。

重要

有关配置和使用维护计划功能,请参阅以下重要信息:

  • 可以更改正在运行的计划何时结束,但更改仅适用于正在运行的计划。 如果要编辑该计划将来运行的结束时间,必须先停止计划,然后应用更改。

  • 使用 Operations Manager 2019 UR2 时,更改维护计划的最远时间。 请参阅 详细示例

  • 创建或编辑维护计划时,一次不能包含超过 216 个对象。 如果对象数超过 216,将显示以下错误消息: 客户端已与服务器断开连接。请调用 ManagementGroup.Reconnect()重新建立连接。

    若要包含 216 多个对象,请创建包含要添加到维护计划的所有对象的单个或多个 ,然后创建或编辑面向组的维护计划。 一次不能包含 216 个以上的组对象。

  • 为托管管理服务器角色的 Windows 计算机指定的时区将应用于维护计划。

  • 适应夏令时的变化不会自动应用于维护计划。 必须手动编辑计划才能调整夏令时。

  • 可以通过查询 Operations Manager 数据库中的 MaintenanceModeHistory 表来获取受监视实体进入维护模式时的历史数据。

  • System Center Operations Manager SDK 帐户必须是以下 SQL Server 角色之一的成员,才能利用维护模式功能:

    • SQLAgentUserRole
    • SQLAgentReaderRole
    • SQLAgentOperatorRole

    有关设置 SDK 操作帐户的详细信息,请参阅 Operations Manager 的帐户信息

  • 操作数据库帐户配置文件下列出的帐户应对 MSDB 数据库具有 SQLAgentOperatorRole 权限。
  • 如果操作数据库帐户配置文件下列出的任何帐户都无权访问 MSDB 数据库的 SQLAgentOperatorRole 权限,请将 MSDB 数据库的 SQLAgentOperatorRole 权限分配给操作数据库配置文件下的每个帐户。
  • 如果没有在操作数据库帐户配置文件下列出的任何帐户,则默认操作帐户配置文件下可用的帐户应具有 MSDB 数据库的 SQLAgentOperatorRole 权限。 在 System Center Operations Manager 2019 的全新安装过程中,会自动授予此权限。 但是,如果从早期版本的 System Center Operations Manager 升级到 System Center Operations Manager 2019,则需要手动授予此权限

为了支持直接从代理管理的计算机启动维护模式的方案,Operations Manager 现在支持允许系统管理员直接从计算机本身在维护模式下设置计算机,而无需从操作控制台执行它。 可以使用新的 PowerShell cmdlet Start-SCOMAgentMaintenanceMode 执行。

以下部分介绍如何使用按需维护模式功能的不同选项。

按需维护模式

选择所需的选项卡,以使用按需维护模式的不同选项:

按照以下步骤将监视的对象置于维护模式:

  1. 使用作为 Operations Manager 管理员角色成员的帐户登录到计算机。

  2. 在操作控制台中,选择“ 监视”。

  3. 在“监视”工作区中,展开“监视”,然后选择“Windows 计算机”。

  4. “Windows 计算机 ”窗格中,右键单击要置于维护模式的计算机,选择 “维护模式”,然后选择“ 启动维护模式”。 可以按下 Ctrl 并单击或按下 Shift 并单击以选择要置于维护模式的多个计算机。

  5. 在“维护模式设置”对话框中的“应用于”下,仅当计算机要置于维护模式时,才选择“所选”对象;否则,请选择“所选对象”及其包含的所有对象

  6. 如果是已计划的事件,则选择“已计划” ,否则将其清除。

  7. “类别” 列表中,选择适当的维护类别。

  8. 在“持续时间”下,选择并输入分钟数或选择并输入特定结束时间,然后选择“确定”。 维护模式图标显示在“计算机” 窗格中所选计算机的“维护模式” 列中。

    注意

    分钟数的最小值为 5。 最大值为 1,051,200(2 年)。 若要启动维护模式,最长等待时间为 5 分钟。

从目标系统启用

使用 PowerShell cmdlet Start-SCOMAgentMaintenanceMode 的系统管理员可以直接从受监视的 Windows 计算机启用维护模式。 当系统管理员或操作员在计算机上运行此 PowerShell cmdlet 时,该命令会在 Operations Manager 事件日志中记录事件,并存储维护活动的参数,例如持续时间、原因、注释和信息(例如调用 cmdlet 的时间)。

注释字段包含用户信息,特别是已调用维护模式的用户信息。 以代理为目标的规则每隔 5 分钟运行一次,以使用 PowerShell 脚本 ReadMaintenanceModeRegEntry.ps1 在代理上读取此注册表项,然后将此项标记为无效,因此下次调用时不会选取此条目。 写入操作是规则的一部分,面向管理服务器,根据从注册表读取的记录为代理设置维护模式。 规则运行的频率可以重写为自定义间隔。

从目标系统启用

可以使用 PowerShell cmdlet Start-SCOMAgentMaintenanceMode 从受监视的 Windows 计算机直接启用维护模式。 当服务器管理员或操作员在计算机上运行此 PowerShell cmdlet 时,该命令会记录一个事件,该事件存储维护模式的参数,例如持续时间、原因、注释和调用 cmdlet 的时间等信息。

针对代理的规则,读取代理上的事件条目,并将其存储在 Operations Manager 数据库中。 另一个规则Microsoft.SystemCenter.Agent.MaintenanceMode.Trigger.Rule,该规则默认每 4 分钟运行一次,并从 Operations Manager 数据库读取此事件。 然后,它会根据从事件读取的记录在代理上设置维护模式。

Start-SCOMAgentMaintenanceMode 具有以下语法:

Start-SCOMAgentMaintenanceMode -Duration <Double (in minutes)> [-Reason <string>] [-Comments <string>]

注意

接受的最小持续时间值为 5 (5) 分钟。

cmdlet 接受以下原因:

  • PlannedOther
  • 计划外
  • PlannedHardwareMaintenance
  • UnplannedHardwareMaintenance
  • PlannedHardwareInstallation
  • UnplannedHardwareInstallation
  • PlannedOperatingSystemReconfiguration
  • UnplannedOperatingSystemReconfiguration
  • PlannedApplicationMaintenance
  • UnplannedApplicationMaintenance
  • ApplicationInstallation
  • ApplicationUnresponsive
  • ApplicationUnstable
  • SecurityIssue
  • 网络连接丢失

示例:

  1. 若要启用间隔为 5 (5) 分钟,并且主要原因为 “计划 ”和“次要原因 其他”,请输入:

    Start-SCOMAgentMaintenanceMode -Duration 5 –Reason PlannedOther

  2. 若要启用间隔为 10 分钟且无原因,请输入:

    Start-SCOMAgentMaintenanceMode -Duration 10

执行以下步骤从目标 Windows 计算机启动维护模式:

  1. 登录到计算机。

  2. 在运行 Windows Server 2012 及更高版本的计算机上,若要从 “开始” 屏幕以管理员身份运行 Windows PowerShell,请 右键单击 Windows PowerShell 磁贴,然后在应用栏中选择“ 以管理员身份运行”。

  3. 输入以下命令,将目录更改为以下路径 cd C:\Program Files\Microsoft Monitoring Agent\Agent

  4. 输入 Import-module MaintenanceMode.dllMaintenanceMode.dll导入模块。

  5. 输入 Start-SCOMAgentMaintenanceMode ,并使用参数配置维护模式请求。

注意

若要确认维护模式请求成功,可以在 Operations Manager 事件日志中查找事件 ID 2222,后跟一个或多个事件(事件 ID 为 1215)。 如果事件 ID 2222 存在,但 ID 1215 缺失,则表示缺少维护模式请求。 需要重新提出请求。

若要重新引发请求,需要使用以下命令删除注册表中维护模式的记录,然后重新运行 Start-SCOMAgentMaintenanceMode cmdlet: Set-ItemProperty -Path "HKLM:\software\Microsoft\Microsoft Operations Manager\3.0\MaintenanceMode" -Name record -Value "" 

注意

若要确认维护模式请求是否成功,请在 Operations Manager 系统日志中查找事件 ID 19999。 如果事件 ID 19999 不可用,请再次提交维护模式请求。

计划维护模式

以下部分介绍如何使用可用于维护模式计划功能的不同选项。

在操作控制台中创建维护计划

以下过程介绍如何在操作控制台中为所选受监视对象创建维护计划,以便将来的日期。

  1. 使用作为 Operations Manager 管理员角色成员的帐户登录到计算机。

  2. 在操作控制台中,选择“ 监视”。

  3. 监控 工作区中,展开 监控,然后选择 维护计划

  4. 在“任务”窗格中,选择“创建维护计划”。

  5. 在“创建维护计划”向导“对象选择”页上,选择“添加/删除对象...”,此时会显示“创建组向导 - 对象选择”对话框。

  6. “创建组向导 - 对象选择 ”对话框中,执行以下操作:

    1. “搜索”列表中,已选择默认项目 “计算机 ”。 或者,可以从下拉列表中选择 计算机组 或特定类,例如 SQL Server 2012 数据库引擎

    2. (可选)在 “按名称 框的一部分筛选”中,输入对象名称的所有或部分,然后选择“ 搜索”。

    3. “可用项 ”框中,选择所需的对象,选择“ 添加”,然后选择“ 确定”。

  7. “对象选择 ”页上,选择“ 下一步”。

  8. “创建维护计划 ”向导的“ 计划” 页上,可以为维护计划指定以下内容:

    1. 选择其运行频率的频率。 如果选择“一次”选项,则任务将仅根据所选的开始日期和时间运行一次。

    2. 在“持续时间”下,选择“开始时间”和“结束时间”,选择分钟数或选择并输入特定结束时间

    3. “计划”下有效开始,指定允许此计划生效的时间,如果要求在一段时间后不再有效,请选择“计划过期时间”选项并选择将来的到期日期。

      注意

      分钟数的最小值为 5。 最大值为 1,051,200(2 年)。 若要启动维护模式,最长等待时间为 5 分钟。

  9. 完成配置计划选项后,选择“ 下一步 ”。

  10. “创建维护计划 ”向导的“ 详细信息 ”页上,指定以下内容:

    1. “计划名称 ”框中为计划创建名称。

    2. 如果是已计划的事件,则选择“已计划” ,否则将其清除。

    3. “类别” 列表中,选择适当的维护类别。

    4. 如果要立即启用计划,请选择“ 启用计划 ”,或者如果计划稍后启用计划,请清除该计划。

  11. 选择“完成以保存更改。

新计划将显示在维护计划列表中,可以从列表中编辑、禁用或删除维护计划。 这可以通过从列表中选择计划并从“任务”窗格中选择相应的选项来实现。

在 Web 控制台中创建维护计划

以下过程介绍如何在 Web 控制台中为所选受监视对象创建维护计划,以便将来的日期。

  1. 在任何计算机上打开 Web 浏览器并输入 http://<web host>/OperationsManager,其中 Web 主机 是托管 Web 控制台的计算机的名称。

  2. 在 Web 控制台的左窗格中,选择“ 维护计划”。

  3. 在页面顶部,选择“ + 创建”。

  4. “创建维护计划 ”窗格中,执行以下操作:

    1. “搜索类”中,选择默认项目 “计算机 ”。 或者,可以从下拉列表中选择 计算机组 或特定类,例如 SQL Server 2012 数据库引擎

    2. (可选)在 “按关键字 筛选”框中,输入对象名称的所有或部分,然后选择 Enter

    3. “可用对象 ”框中,选择所需的对象。

  5. 展开 “计划” ,并在本节中为维护计划指定以下内容:

    1. 选择其运行频率的频率。 如果选择“一次”选项,则任务将仅根据所选的开始日期和时间运行一次。

    2. 在“持续时间”下,选择“开始时间”和“结束时间”,选择分钟数或选择并输入特定结束时间

    3. “计划”下有效开始,指定允许此计划生效的时间,如果要求在一段时间后不再有效,请选择“计划过期时间”选项并选择将来的到期日期。

      注意

      分钟数的最小值为 5。 最大值为 1,051,200(2 年)。 若要启动维护模式,最长等待时间为 5 分钟。

  6. 展开“ 完成 ”,在本部分中,指定以下内容以完成自定义维护计划的配置:

    1. “计划名称 ”框中为计划创建名称。

    2. 从“类别”下拉列表中,选择适当的维护类别或将其保留为默认(计划)。

    3. (可选)在 “注释 ”框中,输入计划维护任务的说明。

    4. 如果要立即启用计划,请选择“ 启用计划 ”,或者如果计划稍后启用计划,请清除该计划。

  7. 选择“完成以保存更改。

新计划将显示在维护计划列表中,可以从列表中编辑、禁用、启用或删除维护计划。 为此,可以从列表中选择计划,并从页面顶部的菜单中选择相应的选项。

使用 SQL Always On 启用计划的维护模式

在 Operations Manager 的早期版本中,当故障转移到另一个 SQL Server 实例时,针对 AlwaysOn 可用性组中 SQL Server 实例的维护计划无法提供 Operations Manager 数据库的高可用性。 Operations Manager 2019 包括此问题的修补程序,以防止此行为,并确保在故障转移方案中维护计划正常工作。

指导

  • 随着此问题的修复,现有计划将转换为新的设计。 升级到 Operations Manager 2019 时会自动发生这种情况。

  • 上述操作中的任何失败都会捕获到以下数据库表中:[OperationsManager]。[dbo]。[MaintenanceModeSchedulesMigrationLogs]

  • 如果计划无法转换为新设计,则应针对 Operations Manager 数据库执行以下脚本来手动转换。 EXEC [dbo].[p_MaintenanceScheduleMigrateSchedule] <ScheduleIDOftheMMSchedule> 示例:EXEC [dbo].[p_MaintenanceScheduleMigrateSchedule] '1A6917C6-999C-E811-837B-02155DC77B3F'

  • 若要将所有计划转换为新设计,请使用以下命令:Delete [OperationsManager].[dbo].[MaintenanceModeSchedulesMigrationLogs] EXEC [dbo].[p_MaintenanceScheduleMigrateExistingSchedules]

    注意

    部署升级后,可能会触发维护计划,最大延迟为 5 (5) 分钟。 可以通过重写 维护模式 规则来配置最大延迟。 默认值 5 分钟是避免在系统上导致性能大幅下降。

计划重叠期间最远的结束时间

注意

此功能适用于 UR2 及更高版本。

目前,如果对象(s)的维护模式窗口中存在冲突,则新更新的结束时间将覆盖现有的计划时间。 如果最新定义的时间长于前一个值,则计算机将长时间保持维护模式。 但是,当最新定义的时间较短时,计算机会早于预期退出维护模式,生成虚假警报。

例如,用户在 Redmond 的所有代理上每周二 从上午 8 点到下午 3 点 安排维护。 用户 Ryan 会在 Dan 后创建另一个计划,以便每个星期二针对运行 SQL Server 的所有代理从上午 10 点到下午 12 点启动维护模式。 有 500 个代理位于运行 SQL Server 的 Redmond 中,现在它们将在下午 12 点退出维护模式,Dan 将收到这些代理的虚假警报和票证。

上述方案生成的虚假警报可能会花费大量资金、时间和延迟来解决组织的实际问题。 从更新汇总 2 中,如果为对象运行多个 MM 计划,则最远的结束时间将覆盖任何其他定义的结束时间。

使用 2019 UR2 时,如果维护模式结束时间存在冲突,则对象将在为对象定义的最远端时间退出维护模式。 对于上面的示例,服务器位于 Redmond 中并具有 SQL Server,将在下午 3 点退出维护模式,这是为其定义的最远结束时间。

后续步骤

创建和管理组