CRM MON命令如何高效使用?

在Linux系统管理和监控中,crm_mon命令是Pacemaker集群管理工具中的一个关键组件,主要用于实时监控集群的当前状态、资源运行情况、节点状态以及集群配置信息,作为Corosync和Pacemaker集群的核心监控工具,crm_mon提供了命令行界面,帮助管理员快速排查集群故障、验证资源分配合理性,并确保集群的高可用性,以下将详细介绍crm_mon命令的功能、常用参数、输出解析及实际应用场景。

crm mon 命令
(图片来源网络,侵删)

crm_mon命令的核心功能

crm_mon(Cluster Resource Monitor)通过查询Pacemaker的CIB(Cluster Information Base)和集群状态,生成集群的实时或静态视图,其核心功能包括:

  1. 集群状态监控:显示集群是否处于在线(Online)、离线(Offline)、维护模式(Maintenance Mode)等状态。
  2. 节点状态管理:列出集群中所有节点的名称、状态(如Up/Down)、角色(如Member/Remote)以及最后一次联系时间。
  3. 资源追踪:展示集群中定义的资源(如VIP、数据库、服务等)的运行状态(Started/Stopped)、所属节点、运行时间以及监控操作历史。
  4. 资源约束分析:通过显示位置约束(Location Constraint)、排序约束(Colocation Constraint)等,帮助管理员理解资源分配规则。
  5. 操作历史记录:记录资源的启动、停止、迁移等操作,便于故障回溯。

crm_mon命令的常用参数

crm_mon支持丰富的命令行参数,以满足不同的监控需求,以下是常用参数及其作用:

参数说明
-1(或--one-shot输出一次集群状态后退出,适合脚本调用或快速查看。
-r(或--resources仅显示资源信息,不显示节点和集群状态。
-n(或--nodes仅显示节点信息。
-R(或--resource-operations显示资源的操作历史(如启动、停止时间)。
-f(或--forever持续监控集群状态,每隔一定时间(默认3秒)刷新输出,适合实时跟踪。
-i(或--interval=-f配合使用,指定刷新间隔(单位:秒)。
-d(或--daemonize以守护进程模式运行,将监控日志输出到指定文件(需配合--logfile)。
-S(或--show-node-attributes显示节点的属性(如节点权重、自定义标签)。
-p(或--partial以部分模式显示,即使集群未完全同步(如节点离线)也输出信息。
-Q(或--quiet静默模式,仅输出错误信息,适合与-1配合用于脚本判断集群状态。
-h(或--help显示帮助信息。
-V(或--verbose输出详细日志,包含调试信息,适合排查复杂问题。

crm_mon输出解析示例

执行crm_mon -1后,输出内容通常分为以下几个部分:

集群状态摘要

Cluster Summary:  
  Stack: corosync  
  Current DC: node1 (version 2.1.4-8.el8) - partition with quorum  
  Last updated: Mon Oct 10 14:30:00 2023 on node1  
  Last change: Mon Oct 10 14:25:00 2023 by hacluster via crm_attribute on node1  
  3 nodes and 2 resources configured  
  • Stack:集群使用的底层通信栈(如corosync)。
  • Current DC:当前集群的Designated Controller(主节点),包含版本和分区状态(with quorum表示集群有法定票数)。
  • Last updated/Last change:最后更新时间和变更记录。
  • Nodes and resources configured:已配置的节点数和资源数。

节点状态

Online: [ node1 node2 node3 ]  
  • Online:在线节点列表,若节点处于离线状态,会显示为Offline

资源状态

Active Resources:  
 VIP        (ocf:heartbeat:IPaddr2):       Started node1  
 WebService (ocf:heartbeat:apache):      Started node2  
  • 资源名称:如VIP、WebService。
  • 资源类型:OCF(Open Cluster Framework)标准资源,后跟提供商和资源名称。
  • 运行状态Started表示资源正在运行,Stopped表示已停止,Failed表示运行失败。
  • 所属节点:资源当前运行的节点。

资源操作历史(-R参数)

Operations:  
  VIP        2023/10/10 14:25:00    Started node1  
  VIP        2023/10/10 14:20:00    Stopped node2  

记录资源的启动、停止时间及操作节点。

crm mon 命令
(图片来源网络,侵删)

实际应用场景

  1. 快速检查集群状态
    使用crm_mon -1可以快速确认集群是否在线、节点是否正常、资源是否运行。

    crm_mon -1 | grep "Online"

    若输出为空或显示Offline节点,需立即排查节点网络或服务问题。

  2. 资源故障排查
    当资源(如数据库)频繁故障时,通过crm_mon -R查看操作历史,结合日志定位问题:

    crm_mon -R -r | grep "Database"

    若发现资源反复在节点间迁移,可能是节点资源不足或约束配置错误。

    crm mon 命令
    (图片来源网络,侵删)
  3. 维护模式操作
    在节点维护前,需将集群置于维护模式,避免资源自动迁移:

    crm cluster enter-maintenance  # 进入维护模式
    crm_mon -1  # 确认资源是否停止
    # 维护操作...
    crm cluster exit-maintenance   # 退出维护模式

相关问答FAQs

Q1: crm_mon显示“partition without quorum”是什么意思?如何解决?
A: “partition without quorum”表示集群分区未达到法定票数(quorum),通常发生在集群节点数量不足(如偶数节点中半数以上离线),此时集群会进入“只读”模式,资源迁移可能被禁止,解决方法:

  • 检查离线节点网络或服务状态,尝试恢复节点上线。
  • 若临时无法恢复,可通过crm cluster set no-quorum-policy=ignore忽略法定票数(需谨慎,可能导致数据不一致)。
  • 增加节点数量或调整票数分配(如crm_attribute -n quorum -v 2)。

Q2: 如何通过crm_mon监控资源是否在指定节点运行?
A: 使用crm_mon -r结合grep过滤资源名称,查看其运行节点是否符合预期,监控资源VIP是否在node1运行:

crm_mon -r | grep "VIP"

若输出显示VIP运行在node2,可通过位置约束(Location Constraint)强制其运行在node1

crm configure location vip-on-node1 VIP 100: node1

其中100为权重,数值越高优先级越高。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/380638.html<

(0)
运维的头像运维
上一篇2025-10-04 09:24
下一篇 2025-10-04 09:30

相关推荐

  • ANSYS Workbench命令流如何高效使用?

    在工程仿真领域,ANSYS Workbench作为集成化平台,其图形化操作界面(GUI)为用户提供了便捷的建模与求解流程,而命令流(APDL或ACT脚本)则以其高效、可重复和自动化的优势,成为高级用户处理复杂模型、批量作业和参数化优化的核心工具,命令流本质上是ANSYS参数化设计语言(APDL)或基于Workb……

    2025-11-18
    0
  • Quartus命令行如何快速完成工程编译与配置?

    Quartus命令行工具是Altera(现Intel FPGA)提供的一套强大的脚本化开发环境,允许用户通过命令行界面完成FPGA设计的全流程管理,包括项目创建、代码编译、时序分析、器件编程等操作,与图形化界面相比,命令行模式具有自动化程度高、资源占用低、适合批量处理和集成到CI/CD流程等优势,尤其适用于复杂……

    2025-11-17
    0
  • 如何快速搭建一个功能完善的平台网站?

    如何做平台网站是一个系统性工程,需要从规划、设计、开发到运营维护全流程把控,首先明确平台定位与核心目标,是做电商、社交、服务还是内容分享,这直接决定后续功能架构,例如电商平台需聚焦商品管理、订单流程、支付系统,而社交平台则需突出用户互动、内容发布及关系链搭建,同时进行市场调研,分析竞品优劣势,找到差异化切入点……

    2025-11-17
    0
  • Android Studio命令行如何高效操作?

    Android Studio命令行工具是Android开发中不可或缺的一部分,它允许开发者通过命令行界面执行各种任务,从而提高开发效率、自动化构建流程以及进行版本控制等操作,这些工具通常位于Android SDK的platform-tools目录和Android Studio的安装目录下,通过命令行可以访问ad……

    2025-11-16
    0
  • 如何快速搭建企业网站?

    在当今数字化时代,企业拥有一个专业、高效的网站已成为标配,它不仅是线上形象的展示窗口,更是连接客户、拓展业务的核心渠道,对于许多企业而言,如何快速搭建一个兼具实用性与美观度的网站,是亟待解决的问题,借助现代技术和工具,企业网站建设已不再复杂,通过合理规划与高效执行,最快可在数日内完成上线,以下从筹备阶段、工具选……

    2025-11-16
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注