跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability 文档 / 管理指南 / 配置和管理 / 监控群集
适用范围 SUSE Linux Enterprise High Availability 15 SP6

11 监控群集

本章介绍如何监控群集的健康状况并查看其历史记录。

11.1 监控群集状态

Hawk2 提供不同的屏幕用于监控单个群集和多个群集:状态仪表板屏幕。

11.1.1 监控单个群集

要监控单个群集,请使用状态屏幕。当您登录 Hawk2 后,默认会显示状态屏幕。右上角的图标可让用户一目了然地获悉群集状态。如需更多细节,请查看以下类别:

错误

如果发生了错误,会显示在页面顶部。

资源

显示配置的资源,包括它们的状态名称 (ID)、位置(运行资源的节点)和资源代理类型。在操作列中,您可以启动或停止资源,触发多个操作或查看细节。可以触发的操作包括将资源设置为维护模式(或去除维护模式)、将其迁移到其他节点、清理资源、显示任何最近的事件,或编辑资源。

节点

显示属于您登录的群集站点的节点,包括节点的状态名称。在维护待机列中,您可以为节点设置或去除 maintenancestandby 标志。操作列可用于查看节点的最近事件或其他细节:例如,查看是否为相应节点设置了 standbyutilizationmaintenance 属性。

票据

仅当已配置了票据的情况下才显示(用于与 Geo 群集配合使用)。

Hawk2 - 群集状态
图 11.1︰ Hawk2 - 群集状态

11.1.2 监控多个群集

要监控多个群集,请使用 Hawk2 仪表板仪表板屏幕中显示的群集信息存储在服务器端。群集节点之间会同步这些信息(如果已配置群集节点之间的无口令 SSH 访问权限)。不过,运行 Hawk2 的计算机甚至不需要属于任何群集也可实现该目的,它可以是不相关的独立系统。

除了一般的 Hawk2 要求之外,还需要满足以下先决条件才能使用 Hawk2 监控多个群集:

先决条件
  • 要通过 Hawk2 的仪表板监控的所有群集都必须运行 SUSE Linux Enterprise High Availability 15 SP6。

  • 如果您之前未在每个群集节点上用自己的证书(或官方证书颁发机构签名的证书)替换 Hawk2 的自我签名证书,请执行以下操作:在每个群集的每个节点上至少登录 Hawk2 一次。验证证书(或在浏览器中添加例外以绕过警告)。否则,Hawk2 将无法连接到群集。

过程 11.1︰ 使用仪表板监控多个群集
  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 从左侧导航栏中,选择监控 › 仪表板

    Hawk2 会显示当前群集站点的资源和节点的概述。此外,它还会显示已配置为与 Geo 群集配合使用的所有票据。如需有关此视图中所用图标的信息,请单击图例。要搜索资源 ID,请在搜索文本框中输入名称 (ID)。若只想显示特定节点,请单击过滤器图标并选择一个过滤选项。

    包含一个群集站点 (amsterdam) 的 Hawk2 仪表板
    图 11.2︰ 包含一个群集站点 (amsterdam) 的 Hawk2 仪表板
  3. 要为多个群集添加仪表板,请执行以下操作:

    1. 单击添加群集

    2. 输入用于在仪表板中标识该群集的群集名称。例如,berlin

    3. 输入第二个群集的其中一个节点的完全限定主机名。例如,charlie

      Add Cluster弹出窗口中包含用于提供以下信息的字段:群集名称、群集中某个节点的名称,以及要连接的服务器端口。
      图 11.3︰ Hawk2 添加群集细节
    4. 单击添加。Hawk2 会为新添加的群集站点显示另一个选项卡,提供该群集站点的节点和资源概览。

      注意
      注意:连接错误

      如果系统提示您输入口令来登录此节点,则表明您可能未连接到此节点,且未替换自我签名证书。在此情况下,即使输入了口令,连接也将失败,并显示以下讯息:Error connecting to server. Retrying every 5 seconds... '

      要继续,请参见替换自我签名证书

  4. 要查看群集站点的更多细节或管理群集站点,请切换到站点的选项卡并单击锁链图标。

    Hawk2 会在新的浏览器窗口或选项卡中打开此站点的状态视图。在此视图中,您可以管理 Geo 群集的这部分内容。

  5. 要从仪表板中去除某个群集,请单击该群集细节右侧的 x 图标。

11.2 校验群集健康状况

您可以使用 Hawk2 或 crmsh 来检查群集的健康状况。

11.2.1 使用 Hawk2 校验群集健康状况

Hawk2 提供了一个向导用来检查和检测群集存在的问题。分析完成后,Hawk2 会创建包含更多细节的群集报告。要校验群集健康状况并生成报告,Hawk2 需要具有在节点之间进行无口令 SSH 访问的权限。否则,它只能从当前节点收集数据。如果您已使用 crm 外壳提供的引导脚本设置群集,那么此时已配置好无口令 SSH 访问权限。

  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 从左侧导航栏中,选择配置 › 向导

  3. 展开基本类别。

  4. 选择校验健康状况和配置向导。

  5. 单击校验进行确认。

  6. 输入群集的 root 口令,然后单击应用。Hawk2 会生成报告。

11.2.2 使用 crmsh 检查健康状况

可以使用所谓的脚本来显示群集或节点的健康状态。脚本可以执行不同的任务,并不局限于显示健康状况。不过,本节重点介绍如何获取健康状况。

要获取有关 health 命令的所有细节,请使用 describe

# crm script describe health

该命令将显示所有参数及其默认值的说明和列表。要执行脚本,请使用 run

# crm script run health

如果您希望只运行整套命令中的一个步骤,可以使用 describe 命令列出 Steps 类别中的所有可用步骤。

例如,以下命令将执行 health 命令的第一个步骤。将在 health.json 文件中存储输出以供做进一步调查:

# crm script run health statefile='health.json'

您也可以使用 crm cluster health 运行以上命令。

有关脚本的更多信息,请参见 https://crmsh.github.io/scripts/

11.3 查看群集历史记录

Hawk2 提供了以下用于查看群集上的过去事件(按不同级别和不同详细程度)的功能:

您也可以使用 crmsh 查看群集历史记录信息:

11.3.1 查看节点或资源的最近事件

  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 从左侧导航栏中,选择监控 › 状态。它会列出资源节点

  3. 要查看资源的最近事件:

    1. 单击资源并选择相应的资源。

    2. 在资源的操作列中,单击向下箭头按钮并选择最近的事件

      Hawk2 会打开一个新窗口,显示最近事件的表视图。

  4. 要查看节点的最近事件:

    1. 单击节点并选择相应的节点。

    2. 在节点的操作列中,选择最近的事件

      Hawk2 会打开一个新窗口,显示最近事件的表视图。

      显示节点 alice 上最近的资源操作的表。
      图 11.4︰ “最近的事件”表

11.3.2 使用历史记录浏览器生成群集报告

从左侧导航栏中,选择查错 › 历史记录,以访问历史记录浏览器历史记录浏览器可让您创建详细的群集报告并查看转换信息。它提供以下选项:

生成

创建特定时间内的群集报告。Hawk2 会调用 crm report 命令来生成报告。

上载

允许您上载直接使用 crm 外壳创建的或位于不同群集上的 crm report 存档。

生成或上载报告后,它们会显示在报告下方。在报告列表中,您可以显示报告的细节,或者下载或删除报告。

Hawk2 - 历史记录浏览器主视图
图 11.5︰ Hawk2 - 历史记录浏览器主视图
过程 11.2︰ 生成或上载群集报告
  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 从左侧导航栏中,选择查错 › 历史记录

    历史记录浏览器屏幕会在生成视图中打开。默认情况下,报告的建议时间段为过去 1 小时。

  3. 要创建群集报告:

    1. 要立即启动报告,请单击生成

    2. 要修改报告的时间段,请单击建议时间段的任意位置并从下拉框中选择另一个选项。您还可以分别输入自定义的开始日期、结束日期及小时。要启动报告,请单击生成

      报告生成后会显示在报告下方。

  4. 要上载群集报告,crm report 存档必须位于您可通过 Hawk2 访问的文件系统中。按如下所示继续:

    1. 切换到上载选项卡。

    2. 浏览群集报告存档并单击上载

      报告上载后会显示在报告下方。

  5. 要下载或删除报告,请在操作列中单击报告旁边的相应图标。

  6. 要查看历史记录浏览器中的报告细节,请单击报告的名称,或从操作列中选择显示

    报告细节,包括名称、时间范围、节点事件和资源事件。
    图 11.6︰ Hawk2 报告细节
  7. 单击报告按钮返回到报告列表。

历史记录浏览器中的报告细节
  • 报告的名称。

  • 报告的开始时间。

  • 报告的结束时间。

  • 报告所涵盖的群集中的转换次数以及所有转换的时间表。要了解如何查看转换的更多细节,请参见第 11.3.3 节

  • 节点事件。

  • 资源事件。

11.3.3 在历史记录浏览器中查看转换细节

对于每个转换,群集都会保存其所提供的状态副本,作为对 pacemaker-schedulerd 的输入。会记录此存档的路径。所有 pe-* 文件都在指定协调器 (DC) 上生成。由于群集中的 DC 可能会更换,因此可能存在来自多个节点的 pe-* 文件。所有 pe-* 文件都是保存的 CIB 快照,pacemaker-schedulerd 在执行计算时会将其用作输入。

在 Hawk2 中,您可以显示每个 pe-* 文件的名称、创建时间以及文件是在哪个节点上创建的。历史记录浏览器可以根据相应的 pe-* 文件直观显示以下细节:

历史记录浏览器中的转换细节
细节

显示属于转换的日志记录数据片段。显示以下命令的输出(包括资源代理的日志消息):

crm history transition peinput
配置

显示创建 pe-* 文件时的群集配置。

差别

显示选定 pe-* 文件与下一个文件之间的配置和状态差异。

登录

显示属于转换的日志记录数据片段。显示以下命令的输出:

crm history transition log peinput

这包括来自以下守护程序的细节:pacemaker-controldpacemaker-schedulerdpacemaker-execd

图形

显示转换的图形表示形式。如果您单击图表,系统会模拟该计算(与 pacemaker-schedulerd 执行的计算完全一样),并生成直观的图表。

过程 11.3︰ 查看转换细节
  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 从左侧导航栏中,选择查错 › 历史记录

    如果报告已生成或上载,它们会显示在报告列表中。否则,请按过程 11.2 中所述生成或上载报告。

  3. 单击报告的名称或从操作列中选择显示以打开历史记录浏览器中的报告细节

  4. 要访问转换细节,您需要在下面显示的转换时间表中选择一个转换点。使用上一个下一个以及放大缩小图标查找您感兴趣的转换。

  5. 要显示 pe-input* 文件的名称、创建时间以及文件是在哪个节点上创建的,请将鼠标指针悬停在时间线的转换点上。

  6. 要查看历史记录浏览器中的转换细节,请单击要了解其详细信息的转换点。

  7. 要显示细节配置差异日志示意图,请单击相应的按钮以显示历史记录浏览器中的转换细节中所述的内容。

  8. 要返回报告列表,请单击报告按钮。

11.3.4 使用 crmsh 检索历史记录信息

调查群集的历史记录是一项复杂的任务。为简化此任务,crmsh 包含了 history 命令及其子命令。假定已正确配置 SSH。

每个群集都会移动状态、迁移资源或启动重要进程。这些操作均可通过 history 子命令进行检索。

默认情况下,所有 history 命令会查看最近一小时的事件。要更改此时间段,请使用 limit 子命令。语法是:

# crm history
crm(live)history# limit FROM_TIME [TO_TIME]

有效示例如下所示:

limit 4:00pm , limit 16:00

上述两个命令表达同一个意思:今天下午 4 点。

limit 2012/01/12 6pm

2012 年 1 月 12 日下午 6 点

limit "Sun 5 20:46"

当年当月 5 日(星期日)晚上 8:46

要查找更多示例以及如何创建时间段的信息,请访问 https://labix.org/python-dateutil

info 子命令可显示 crm report 涉及的所有参数:

crm(live)history# info
Source: live
Period: 2012-01-12 14:10:56 - end
Nodes: alice
Groups:
Resources:

要想只对 crm report 使用特定参数,请通过 help 子命令查看可用的选项。

要降低细节级别,请使用 detail 子命令及级别:

crm(live)history# detail 1

级别数字越高,报告就越详细。默认值为 0(零)。

设置上述参数后,使用 log 显示日志消息。

要显示上次转换操作,请使用以下命令:

crm(live)history# transition -1
INFO: fetching new logs, please wait ...

此命令会获取日志并运行 dotty (来自 graphviz 软件包)以显示转换图。外壳会打开日志文件,您在其中可以使用 光标键浏览内容。

如果希望不要打开转换图,请使用 nograph 选项:

crm(live)history# transition -1 nograph

11.4 使用 SysInfo 资源代理监控系统健康状况

为避免节点耗尽磁盘空间因而无法管理已分配给该它的任何资源,SUSE Linux Enterprise High Availability 提供了资源代理,即 ocf:pacemaker:SysInfo。使用此代理可监控节点磁盘分区的健康状况。SysInfo 资源代理会创建名为 #health_disk 的节点属性,如果任何受监控磁盘的可用空间低于指定限额,该属性就会变为 red

要定义 CRM 在节点健康状况到达临界状态时应如何反应,请使用全局群集选项 node-health-strategy

过程 11.4︰ 配置系统健康状况监控

要在某个节点耗尽磁盘空间时从该节点自动移除资源,请执行以下操作:

  1. 配置 ocf:pacemaker:SysInfo 资源:

    primitive sysinfo ocf:pacemaker:SysInfo \
         params disks="/tmp /var"1 min_disk_free="100M"2 disk_unit="M"3 \
         op monitor interval="15s"

    1

    要监控的磁盘分区。例如,/tmp/usr/var/dev。要指定多个分区作为属性值,请以空格进行分隔。

    注意
    注意:系统始终会监控 / 文件系统

    您无需在 disks 中指定根分区 (/)。此分区默认将始终受到监控。

    2

    这些分区所需的最小可用磁盘空间。您也可以指定度量单位(在上例中,M 表示兆字节)。如果未指定,min_disk_free 默认会使用 disk_unit 参数中定义的单位。

    3

    报告磁盘空间所使用的单位。

  2. 为了完成资源配置,请创建 ocf:pacemaker:SysInfo 的克隆并在每个群集节点上启动此克隆。

  3. node-health-strategy 设置为 migrate-on-red

    property node-health-strategy="migrate-on-red"

    如果 #health_disk 属性设置为 redpacemaker-schedulerd 会为该节点的资源分数加 -INF。这样所有资源都会从此节点中移出。STONITH 资源将是最后一个停止的资源,但即使 STONITH 资源不再运行,该节点仍可屏蔽。屏蔽对 CIB 有直接访问权且将继续起作用。

当节点健康状况变成 red 状态后,解决会导致问题的状况。然后清除 red 状态,使节点能够再次运行资源。登录到群集节点并使用下列其中一种方法:

  • 执行以下命令:

    # crm node status-attr NODE delete #health_disk
  • 在该节点上重启动群集服务。

  • 重引导该节点。

该节点会恢复正常状态并可再次运行资源。