show system-health サブコマンド¶
概要¶
show system-health は system-health デーモン(HealthCheckerManager)が保持するシステム状態(サービス・ハードウェア・ファイルシステムなど)と、SmartSwitch 構成での DPU 状態、システムが boot 完了したかの「sysready」状態を表示する。実装は show/system_health.py、show/main.py 末尾で cli.add_command(system_health.system_health) の形で登録される1。
HealthCheckerManager の本体は health_checker/ パッケージで、/usr/share/sonic/device/<platform>/system_health_monitoring_config.json をベースに監視対象を決める。show system-health は root 権限必須(os.geteuid() チェック)。
コマンド一覧¶
| コマンド | 用途 |
|---|---|
show system-health summary |
状態 LED + Services / Hardware の OK/Not OK サマリ |
show system-health detail |
summary + monitor list + ignore list |
show system-health monitor-list |
監視対象のサービス・デバイス一覧 |
show system-health sysready-status |
sysreadyshow 経由のシステム ready 状態 |
show system-health sysready-status brief |
sysreadyshow --brief |
show system-health sysready-status detail |
sysreadyshow --detail |
show system-health dpu <module_name> |
SmartSwitch 構成での DPU 状態(CHASSIS_STATE_DB.DPU_STATE) |
各コマンドの詳細¶
show system-health summary¶
動作:
HealthCheckerManagerを生成し、config.config_file_exists()で構成ファイル(system_health_monitoring_config.json)の有無を確認。なければ exit 1。chassis = sonic_platform.chassis.Chassis()で chassis オブジェクトを取得。manager.check(chassis)を呼び、サービス/ハードウェア/FS のチェック結果 dict (stat) を取得。chassis.initizalize_system_led()を呼んで status LED の現在色を取得。- 整形ロジック (
display_system_health_summary) でServices/Hardwareを OK / Not OK 判定して表示。Servicesの Not OK 内訳は「Not Running(プロセス未起動)」と「Not Accessible(FS アクセス不可)」に分けて表示する2。
📋 検証エビデンス: sonic-net/sonic-utilities/show/system_health.py#L113-L131 (sha: 39732bceb8bdefe706518ab40623bbbba6ff33b9)
出典:
sonic-net/sonic-utilities/show/system_health.py#L113-L131 (sha: 39732bceb8bdefe706518ab40623bbbba6ff33b9)
抜粋:
show system-health detail¶
summary の出力に加えて、
- monitor list(監視対象 = サービス + デバイス、各々のステータスとタイプ)
- ignore list(
config.ignore_services/config.ignore_devicesに登録された監視除外項目)
を tabulate で表示する。
show system-health monitor-list¶
stat.values() を走査し、各要素のステータス順にソートして (Name, Status, Type) のテーブルを表示。
show system-health sysready-status [brief|detail]¶
invoke_without_command=True のため、サブコマンド無しで呼ぶと sysreadyshow を引数なしで実行する。
| 形式 | 内部実行 |
|---|---|
sysready-status |
sysreadyshow |
sysready-status brief |
sysreadyshow --brief |
sysready-status detail |
sysreadyshow --detail |
sysreadyshow 自体は別スクリプトで、SONiC が boot 完了したかどうかを STATE_DB の SYSTEM_READY|SYSTEM_STATE から判定して人間可読に表示する。
show system-health dpu <module_name>¶
前提: is_smartswitch() が True の場合のみ実 動作(False の場合は黙って return)。
動作:
redis_chassis.server:6380のCHASSIS_STATE_DB(DB 13)に接続。DPU_STATE|<module_name>キー(module_nameがDPUで始まる場合)またはDPU_STATE|*(全件)を取得。- 各エントリの
<key>_stateフィールドをmidplane_state/control_plane_state/data_plane_stateの 3 軸に振り分けて表示。midplane_state == downなら全体Offline、3 軸ともupならOnline、それ以外はPartial Online。 - 各
_stateに対応する_time/_reasonフィールドも添えて表示。
module_name は is_smartswitch() が True のときのみ Choice バリデーションが付く(get_all_dpu_options() の戻り値から)。
関連 DB / ファイル¶
| ソース | 用途 |
|---|---|
system_health_monitoring_config.json(platform 固有) |
HealthCheckerManager の監視対象定義 |
STATE_DB.SYSTEM_READY |
sysreadyshow の入力 |
CHASSIS_STATE_DB.DPU_STATE(chassis-only) |
dpu サブコマンドの入力 |
chassis.get_status_led()(platform API) |
summary の状態 LED 色 |
注意¶
- root 権限が無いと
summary/detail/monitor-listは exit 1。 - chassis モジュール (
sonic_platform.chassis.Chassis) が存在しないプラットフォームでは ImportError になる可能性がある。 - ユニットテスト用の
UTILITIES_UNIT_TESTING=1でMockerManager/MockerChassisに切り替わるパスがある。
関連リファレンス¶
- CLI: show services / show techsupport / show feature / show platform
- 関連 HLD: SONiC System Health Monitor HLD / event-driven techsupport
- Topic: プラットフォーム / ポート / 光モジュール / リブート / アップグレード
引用元¶
データフロー (手動作成)¶
flowchart LR
CLI["show system-health"]
SH["system-health daemon<br/>(HealthCheckerManager)"]
ST[("STATE_DB<br/>SYSTEM_HEALTH_INFO / DPU_STATE")]
CLI --> SH
ST --> CLI
凡例
show 系 (CLI ← STATE_DB ← system-health daemon) のミニ図。CONFIG_DB を直接介さないコマンドのため手動で記述。
関連 Topics¶
運用ヒント¶
典型的な利用シーン¶
- fan / PSU / temperature / container health の集約確認。
- NMS 連携前のしきい値確認。
よくある落とし穴¶
- system-health monitor list には
Ignored項目が含まれる。production では誤検知の温床。 - syshealth daemon が落ちると
show system-health summaryも止まる。
関連する show / debug¶
関連 CLI コマンド¶
config banner— config banner サブコマンドconfig clock— config clock サブコマンドconfig kdump— config kdump サブコマンドconfig ntp— config ntp サブコマンドconfig platform firmware— config platform firmware サブコマンド
-
cli.add_command(system_health.system_health)はshow/main.pyL329。https://github.com/sonic-net/sonic-utilities/blob/39732bceb8bdefe706518ab40623bbbba6ff33b9/show/main.py#L329 ↩ -
整形は
display_system_health_summary(show/system_health.pyL44-L74)。https://github.com/sonic-net/sonic-utilities/blob/39732bceb8bdefe706518ab40623bbbba6ff33b9/show/system_health.py#L44 ↩