Cisco Catalystスイッチの冗長化技術であるStackWise(スタック)を導入すると、複数台の物理スイッチが論理的に「1台のスイッチ」として動作します。運用管理が楽になる一方で、悩みどころになるのが「各筐体の個別死活監視をどう行うか」という問題です。

スタックを組むと管理用IPアドレス(SVIなど)も1つに統合されるため、個々の物理筐体に対して個別にPingを打って死活監視することができなくなります。
本記事では、スタック構成における各筐体の監視・確認方法を、実機コマンドの出力例やSyslogメッセージを交えて整理します。

1. スタック状態を監視する3つのアプローチ

実務の監視設計では、以下の3つを組み合わせて各筐体の状態を補足します。

① SNMPポーリングによる個別ステータス取得(監視サーバー向け)

監視サーバー(NMS)からスタックの「代表IPアドレス」に対して定期的にSNMPを取得します。Cisco固有のMIBであるCISCO-STACKWISE-MIB内のオブジェクトciscoStackMemberState(OID: 1.3.6.1.4.1.9.9.500.1.2.1.1.1)を監視することで、代表IPひとつから各メンバー筐体のステータスを個別に取得できます。

値の判定基準は、3 (Ready)が正常稼働中、5 (Removed)が異常(スタックから離脱)です。

② Syslog / SNMP Trapによるイベント監視(リアルタイム検知)

筐体の離脱(電源断や故障)、スタックリンクのダウン、Active/Standbyの切り替わり(スイッチオーバー)が発生した際、稼働しているスイッチがSyslogサーバーやNMSへ自発的に送信するイベントログを検知します。

③ 対向ポートのステータス監視(間接的な物理監視)

スタックは通常、各筐体にまたがって対向機器(コアスイッチ等)とEtherChannel(マルチシャシー・イーサチャネル:MEC)を構成します。対向機器側で個々の物理ポート(LACPメンバーポート)の状態をSNMP等で監視しておけば、どちらか片方の筐体がダウンした際に「メンバーポートのDown」として間接的かつ確実に検知できます。

2. 実機で確認するコマンドと出力例

定期点検や障害切り分け時に、CLIから各筐体の物理・論理ステータスを直接確認するための重要コマンド3選です。

コマンド①:show switch(全体の状態と役割の確認)

スタック全体における各筐体の役割(Active / Standby / Member)および現在のステータスを確認します。

⭕ 正常時の出力例(2台スタックが正常にReady状態)

Switch# show switch
Switch/Stack Mac Address : 70b3.17e3.f600 - Local Mac Address
Mac persistency wait time: Indefinite
                                              H/W   Current
Switch#   Role    Mac Address     Priority Version  State
-------------------------------------------------------------------------------------
*1       Active   70b3.17e3.f600     15     V01     Ready
 2       Standby  70b3.17e9.cf00     14     V01     Ready
  • *が付いているスイッチ(上記ではSwitch 1)が、現在コンソールや管理通信を処理しているActiveスイッチです
  • Stateが両方ともReadyになっているのが正常な状態です

❌ 異常時の出力例(2号機が電源断等でスタックから離脱)

Switch# show switch
Switch/Stack Mac Address : 70b3.17e3.f600 - Foreign Mac Address
Mac persistency wait time: Indefinite
                                              H/W   Current
Switch#   Role    Mac Address     Priority Version  State
-------------------------------------------------------------------------------------
*1       Active   70b3.17e3.f600     15     V01     Ready
 2       Member   0000.0000.0000     0      V01     Removed

離脱した2号機のRoleがMemberに格下げされ、StateがRemoved(スタックから削除)に変化します。

コマンド②:show switch stack-ports summary(スタック専用ポートの状態確認)

背面にある専用スタックポートおよびスタックケーブル自体の接続状態を、物理レベルで確認します。

⭕ 正常時の出力例(リングトポロジーが正常に形成されている場合)

Switch# show switch stack-ports summary
Sw#/Port#  Port Status  Neighbor  Cable Length   Link OK   Link Active   Sync OK   #Changes to LinkOK In Loopback
-------------------------------------------------------------------------------------------------------------------
1/1        OK           2         50cm           Yes       Yes           Yes       3                  No
1/2        OK           2         50cm           Yes       Yes           Yes       4                  No
2/1        OK           1         50cm           Yes       Yes           Yes       1                  No
2/2        OK           1         50cm           Yes       Yes           Yes       1                  No

すべてのポートのPort StatusがOKであり、Link OK / Link Active / Sync OKがすべてYesになっていることを確認します。

❌ 異常時の出力例(1/2ポートのケーブルが抜けた、または接触不良の場合)

Switch# show switch stack-ports summary
Sw#/Port#  Port Status  Neighbor  Cable Length   Link OK   Link Active   Sync OK   #Changes to LinkOK In Loopback
-------------------------------------------------------------------------------------------------------------------
1/1        OK           2         50cm           Yes       Yes           Yes       1                  No
1/2        Down         None      50cm           No        No            No        2                  No
2/1        Down         None      50cm           No        No            No        2                  No
2/2        OK           1         50cm           Yes       Yes           Yes       1                  No

ケーブルに問題が発生したポートはStatusがDownまたはAbsent(未接続)になり、Link OK等のステータスがNoに変わります。

コマンド③:show redundancy state(冗長化同期の状態確認)

ActiveとStandbyの2台間で、コンフィグやルーティング情報が正常に同期できているかを確認します。

⭕ 正常時の出力例

Switch# show redundancy state
my state = 13 -ACTIVE
peer state = 8  -STANDBY HOT
Mode = Duplex
Unit = Primary
Unit ID = 1
Redundancy Mode (Operational) = sso
Redundancy Mode (Configured)  = sso
Split Mode = Disabled

peer stateがSTANDBY HOTになっており、Redundancy Modeがsso(Stateful Switchover:ノンストップ切り替え)で動作していることを確認します。これにより、Active障害時も即座にStandbyへ処理が引き継がれます。

3. 障害発生時に出力される実際のSyslogメッセージ

Syslog監視に登録しておくべき、スタック障害発生・復旧時のログパターンです。

パターンA:Active(1号機)が突然電源断・故障した場合(スイッチオーバー)

1号機がダウンし、Standbyだった2号機が自動的にActiveへ昇格した瞬間、新Active(2号機)のコンソールおよびSyslogサーバーへ出力されます。

%PLATFORM-6-HASTATUS: RP switchover, received chassis event to become active
%REDUNDANCY-3-SWITCHOVER: RP switchover (PEER_DOWN)

%REDUNDANCY-3-SWITCHOVERはスタックの主導権切り替えが発生したことを示す最重要アラートです。監視への登録を推奨します。

パターンB:Standby(2号機)が電源断などでダウンした場合

生き残ったActiveスイッチ(1号機)から、相方であるStandbyスイッチがロストしたことを示すログが出力されます。

%NIF_MGR-6-PORT_LINK_DOWN: Switch 1 R0/0: nif_mgr: Port 39 on front side stack link 0 is DOWN.
%STACKMGR-6-STACK_LINK_CHANGE: Switch 1 R0/0: stack_mgr: Stack port 1 on Switch 1 is down

パターンC:ダウンしていた筐体が復旧し、スタックに再同期した場合

電源復旧などによって2号機が再起動し、再びスタックに組み込まれて同期(SSO)が完了するまでの一連の正常化ログです。

%STACKMGR-6-SWITCH_ADDED: Switch 2 R0/0: stack_mgr: Switch 1 has been added to the stack.
%STACKMGR-6-STANDBY_ELECTED: Switch 2 R0/0: stack_mgr: Switch 1 has been elected STANDBY.
%HA_CONFIG_SYNC-6-BULK_CFGSYNC_SUCCEED: Bulk Sync succeeded
%RF-5-RF_TERMINAL_STATE: Terminal state reached for (SSO)

BULK_CFGSYNC_SUCCEED(設定の同期成功)とRF-5-RF_TERMINAL_STATE(SSO冗長化完了)が届くことで、スタックが元の二重化状態へ完全復旧したと判断できます。

4. 対応しているCatalyst機器

本手順(コマンドおよびログ仕様)は、Catalyst 9000シリーズで共通して利用可能です。

  • StackWise-160 / 80(専用モジュール/スタックケーブル方式):Catalyst 9200 / 9200L シリーズ
  • StackWise-480 / 320(背面の専用スタックポート接続方式):Catalyst 9300 / 9300L シリーズ
  • StackWise Virtual(10G/40G等のイーサネットポートを利用した仮想スタック方式):Catalyst 9400 / 9500 / 9600 シリーズ

まとめ

スタックを組んだCatalystスイッチの死活監視は、IPアドレス単位ではなく、SNMPのオブジェクト(OID)やSyslog監視によるメンバー個別ステータス判定で行うのが正解です。

構築時の監視設計にこれらのコマンドやログ定義を盛り込み、片筐体停止に気づけない「サイレント障害」を未然に防ぎましょう。