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/
从左侧导航栏中,选择 › 。
屏幕会在视图中打开。默认情况下,报告的建议时间段为过去 1 小时。
要创建群集报告:
要立即启动报告,请单击。
要修改报告的时间段,请单击建议时间段的任意位置并从下拉框中选择另一个选项。您还可以分别输入的开始日期、结束日期及小时。要启动报告,请单击。
报告生成后会显示在下方。
要上载群集报告,
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 historycrm(live)history#limit FROM_TIME [TO_TIME]
有效示例如下所示:
limit 4:00pm,limit 16:00上述两个命令表达同一个意思:今天下午 4 点。
limit 2012/01/12 6pm2012 年 1 月 12 日下午 6 点
limit "Sun 5 20:46"当年当月 5 日(星期日)晚上 8:46
要查找更多示例以及如何创建时间段的信息,请访问 https://labix.org/python-dateutil。
info 子命令可显示 crm report 涉及的所有参数:
crm(live)history#infoSource: 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 -1INFO: 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在该节点上重启动群集服务。
重引导该节点。
该节点会恢复正常状态并可再次运行资源。





