11.1 监控群集状态 #
Hawk2 提供不同的屏幕用于监控单个群集和多个群集:
和 屏幕。11.1.1 监控单个群集 #
要监控单个群集,请使用
屏幕。当您登录 Hawk2 后,默认会显示 屏幕。右上角的图标可让用户一目了然地获悉群集状态。如需更多细节,请查看以下类别:- 错误
如果发生了错误,会显示在页面顶部。
- 资源
显示配置的资源,包括它们的
、 (ID)、 (运行资源的节点)和资源代理 。在 列中,您可以启动或停止资源,触发多个操作或查看细节。可以触发的操作包括将资源设置为维护模式(或去除维护模式)、将其迁移到其他节点、清理资源、显示任何最近的事件,或编辑资源。- 节点
显示属于您登录的群集站点的节点,包括节点的
和 。在 和 列中,您可以为节点设置或去除maintenance
或standby
标志。 列可用于查看节点的最近事件或其他细节:例如,查看是否为相应节点设置了standby
、utilization
或maintenance
属性。- 票据
仅当已配置了票据的情况下才显示(用于与 Geo 群集配合使用)。
11.1.2 监控多个群集 #
要监控多个群集,请使用 Hawk2
。 屏幕中显示的群集信息存储在服务器端。群集节点之间会同步这些信息(如果已配置群集节点之间的无口令 SSH 访问权限)。不过,运行 Hawk2 的计算机甚至不需要属于任何群集也可实现该目的,它可以是不相关的独立系统。除了一般的 Hawk2 要求之外,还需要满足以下先决条件才能使用 Hawk2 监控多个群集:
要通过 Hawk2 的
监控的所有群集都必须运行 SUSE Linux Enterprise High Availability 15 SP6。如果您之前未在每个群集节点上用自己的证书(或官方证书颁发机构签名的证书)替换 Hawk2 的自我签名证书,请执行以下操作:在每个群集的每个节点上至少登录 Hawk2 一次。验证证书(或在浏览器中添加例外以绕过警告)。否则,Hawk2 将无法连接到群集。
登录 Hawk2:
https://HAWKSERVER:7630/
从左侧导航栏中,选择
› 。Hawk2 会显示当前群集站点的资源和节点的概述。此外,它还会显示已配置为与 Geo 群集配合使用的所有
。如需有关此视图中所用图标的信息,请单击 。要搜索资源 ID,请在 文本框中输入名称 (ID)。若只想显示特定节点,请单击过滤器图标并选择一个过滤选项。图 11.2︰ 包含一个群集站点 (amsterdam
) 的 Hawk2 仪表板 #要为多个群集添加仪表板,请执行以下操作:
要查看群集站点的更多细节或管理群集站点,请切换到站点的选项卡并单击锁链图标。
Hawk2 会在新的浏览器窗口或选项卡中打开此站点的
视图。在此视图中,您可以管理 Geo 群集的这部分内容。要从仪表板中去除某个群集,请单击该群集细节右侧的
x
图标。
11.2 校验群集健康状况 #
您可以使用 Hawk2 或 crmsh 来检查群集的健康状况。
11.2.1 使用 Hawk2 校验群集健康状况 #
Hawk2 提供了一个向导用来检查和检测群集存在的问题。分析完成后,Hawk2 会创建包含更多细节的群集报告。要校验群集健康状况并生成报告,Hawk2 需要具有在节点之间进行无口令 SSH 访问的权限。否则,它只能从当前节点收集数据。如果您已使用 crm 外壳提供的引导脚本设置群集,那么此时已配置好无口令 SSH 访问权限。
登录 Hawk2:
https://HAWKSERVER:7630/
从左侧导航栏中,选择
› 。展开
类别。选择
向导。单击
进行确认。输入群集的 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 查看节点或资源的最近事件 #
登录 Hawk2:
https://HAWKSERVER:7630/
从左侧导航栏中,选择
› 。它会列出 和 。要查看资源的最近事件:
单击
并选择相应的资源。在资源的
列中,单击向下箭头按钮并选择 。Hawk2 会打开一个新窗口,显示最近事件的表视图。
要查看节点的最近事件:
单击
并选择相应的节点。在节点的
列中,选择 。Hawk2 会打开一个新窗口,显示最近事件的表视图。
图 11.4︰ “最近的事件”表 #
11.3.2 使用历史记录浏览器生成群集报告 #
从左侧导航栏中,选择
› ,以访问 。 可让您创建详细的群集报告并查看转换信息。它提供以下选项:创建特定时间内的群集报告。Hawk2 会调用
crm report
命令来生成报告。允许您上载直接使用 crm 外壳创建的或位于不同群集上的
crm report
存档。
生成或上载报告后,它们会显示在
下方。在报告列表中,您可以显示报告的细节,或者下载或删除报告。登录 Hawk2:
https://HAWKSERVER:7630/
从左侧导航栏中,选择
› 。要创建群集报告:
要立即启动报告,请单击
。要修改报告的时间段,请单击建议时间段的任意位置并从下拉框中选择另一个选项。您还可以分别输入
的开始日期、结束日期及小时。要启动报告,请单击 。报告生成后会显示在
下方。
要上载群集报告,
crm report
存档必须位于您可通过 Hawk2 访问的文件系统中。按如下所示继续:切换到
选项卡。报告上载后会显示在
下方。
要下载或删除报告,请在
列中单击报告旁边的相应图标。要查看历史记录浏览器中的报告细节,请单击报告的名称,或从 列中选择 。
图 11.6︰ Hawk2 报告细节 #单击
按钮返回到报告列表。
报告的名称。
报告的开始时间。
报告的结束时间。
报告所涵盖的群集中的转换次数以及所有转换的时间表。要了解如何查看转换的更多细节,请参见第 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-controld
、pacemaker-schedulerd
和pacemaker-execd
。显示转换的图形表示形式。如果您单击
,系统会模拟该计算(与pacemaker-schedulerd
执行的计算完全一样),并生成直观的图表。
登录 Hawk2:
https://HAWKSERVER:7630/
从左侧导航栏中,选择
› 。如果报告已生成或上载,它们会显示在过程 11.2 中所述生成或上载报告。
列表中。否则,请按单击报告的名称或从历史记录浏览器中的报告细节。
列中选择 以打开要访问转换细节,您需要在下面显示的转换时间表中选择一个转换点。使用
和 以及 和 图标查找您感兴趣的转换。要显示
pe-input*
文件的名称、创建时间以及文件是在哪个节点上创建的,请将鼠标指针悬停在时间线的转换点上。要查看历史记录浏览器中的转换细节,请单击要了解其详细信息的转换点。
要显示历史记录浏览器中的转换细节中所述的内容。
、 、 、 或 ,请单击相应的按钮以显示要返回报告列表,请单击
按钮。
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
。
要在某个节点耗尽磁盘空间时从该节点自动移除资源,请执行以下操作:
配置
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"
为了完成资源配置,请创建
ocf:pacemaker:SysInfo
的克隆并在每个群集节点上启动此克隆。将
node-health-strategy
设置为migrate-on-red
:property node-health-strategy="migrate-on-red"
如果
#health_disk
属性设置为red
,pacemaker-schedulerd
会为该节点的资源分数加-INF
。这样所有资源都会从此节点中移出。STONITH 资源将是最后一个停止的资源,但即使 STONITH 资源不再运行,该节点仍可屏蔽。屏蔽对 CIB 有直接访问权且将继续起作用。
当节点健康状况变成 red
状态后,解决会导致问题的状况。然后清除 red
状态,使节点能够再次运行资源。登录到群集节点并使用下列其中一种方法:
执行以下命令:
#
crm node status-attr NODE delete #health_disk
在该节点上重启动群集服务。
重引导该节点。
该节点会恢复正常状态并可再次运行资源。