障害発生時にこの問いが頭をよぎるエンジニアは多い。サービスが止まっている状況で、何をどう集めて渡すかを焦りながら考えるのは消耗する。
RHEL系Linuxを扱う現場では、障害情報の採取にsosreportが標準的に使われている。このコマンド1本で、OS設定・ログ・ハードウェア情報・カーネルパラメータをまとめてパッケージングできる。Red Hatのサポートエンジニアが問い合わせの第一声で「sosreportを送ってください」と言う理由がそこにある。
この記事では、sosreportの基本的な使い方から、プラグイン指定による採取範囲の絞り込み、Red Hatサポートへの提出手順まで、障害対応の「型」として体系的に解説します。RHEL 8/9・Rocky Linux 8/9での動作を確認済みです。
この記事のポイント
・sosreport(sos report)はRHEL系で障害情報を一括採取する標準ツール
・採取ファイルは /var/tmp/ 配下に .tar.xz で保存され、そのままサポートへ送付できる
・プラグイン指定で採取範囲を絞れば、短時間・軽量での採取が可能
・Red Hat社員番号(caseNumber)を指定すると、ファイル名にケース番号が入り管理しやすくなる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
sosreportとは何か——障害時に「全部入り」で渡すための情報採取コマンド
sosreportは、Linuxシステムの設定・ログ・状態情報を一括して採取し、圧縮アーカイブとして出力するコマンドだ。元々はRed Hat社が開発・メンテナンスしているツールで、サポートチームへの情報提供を主な目的としている。なぜ「全部入り」が重要かというと、障害原因は事前に絞り込めないからだ。カーネルログ・サービス設定・ネットワーク状態・メモリ情報のうち、どれが根本原因に関係しているかは調べてみるまでわからない。個別に「このファイルを送ってください」「次はこれを」とやり取りするよりも、最初から一括採取したほうがずっと効率的だ。
コマンド名の変遷:sosreport → sos report
古い資料には
sosreport(1単語)と書かれているが、sos 4.0(RHEL 8.5以降相当)から推奨コマンドは sos report(スペースあり)に変わっている。どちらでも動作するが、新しいスクリプトや手順書を書く際は sos report を使うほうがよい。sosreportが採取する情報の種類と構造
sosreportが収集する情報は「プラグイン」という単位で管理されており、デフォルトでは数十種類のプラグインが自動実行される。主なカテゴリは以下のとおりだ。・OS・カーネル情報:uname -a の出力、/proc/version、カーネルパラメータ(/proc/sys 配下)
・ログファイル:/var/log/messages、/var/log/secure、journalctl のエクスポート
・ネットワーク設定:ip addr、ip route、/etc/hosts、/etc/resolv.conf、firewalld/iptables ルール
・ストレージ情報:df、lsblk、fdisk -l、mount の出力
・パッケージ情報:rpm -qa の一覧(インストール済み全パッケージ)
・サービス状態:systemctl list-units の出力、各サービスの設定ファイル
・ハードウェア情報:dmidecode の出力(BIOS・CPU・メモリ)、/proc/cpuinfo、/proc/meminfo
これらが1つの .tar.xz ファイルにまとめられる。展開するとディレクトリ構造で整理されており、どのプラグインが何を採取したかが一目でわかる。
なお、ハードウェア情報の個別採取については dmidecodeでハードウェア情報を取得 も参照してほしい。sosreportとdmidecodeを使い分けることで、手動調査と一括採取の両方に対応できる。
sosreportのインストールと基本的な実行方法
1. sos パッケージのインストール確認
RHEL 7以降の標準環境ではsos パッケージがプリインストールされていることが多い。まずインストール状況を確認しよう。# インストール確認 rpm -q sos # 出力例(インストール済みの場合) sos-4.5.6-1.el9.noarch # インストールされていない場合 dnf install sos # RHEL 8/9・Rocky Linux 8/9 yum install sos # RHEL 7・CentOS 7
2. sosreportの基本実行
rootユーザーまたは sudo で実行する。対話モードで実行すると、採取開始前に確認画面が表示される。# 基本実行(RHEL 7・旧バージョン互換の書き方) sosreport # 新しい推奨コマンド(RHEL 8.5以降) sos report # sudo で実行する場合 sudo sos report
sosreport (version 4.5.6) This command will collect diagnostic and configuration information from this Red Hat Enterprise Linux system and installed applications. An archive containing the collected information will be generated in /var/tmp/sos.XXXXXXXX/ and may be provided to a Red Hat support representative. Any information provided to Red Hat will be treated in accordance with the published support policies at: Distribution of this information is unrestricted. Press ENTER to continue, or CTRL-C to quit. Please enter the case id that you are generating this report for []:
3. 採取完了後の出力確認
採取が完了すると、ファイルパスとMD5チェックサムが表示される。# 実行完了時の出力例 Your sosreport has been generated and saved in: /var/tmp/sosreport-prod-web01-2026-07-21-abcdefg.tar.xz Size 39.36MiB Owner root sha256 a1b2c3d4e5f6...(省略) Please send this file to your support representative.
採取レポートの確認・圧縮ファイルの中身を見る手順
1. ファイルの場所と確認
採取ファイルは /var/tmp/ 配下に保存される。複数回実行した場合はファイルが複数できるため、ls -lt でタイムスタンプ順に確認するとよい。# 採取ファイルの一覧確認 ls -lt /var/tmp/sosreport-*.tar.xz # 出力例 -rw------- 1 root root 41291776 Jul 21 14:23 /var/tmp/sosreport-prod-web01-2026-07-21-abcdefg.tar.xz
2. 展開せずに中身を確認する
ファイルサイズが大きいため、サポートへの提出前に中身を一部確認したい場合は、tar の t(一覧表示)オプションを使う。# アーカイブ内のファイル一覧を表示(展開しない) tar -tJf /var/tmp/sosreport-prod-web01-2026-07-21-abcdefg.tar.xz | head -30 # 出力例(一部) sosreport-prod-web01-2026-07-21-abcdefg/ sosreport-prod-web01-2026-07-21-abcdefg/version.txt sosreport-prod-web01-2026-07-21-abcdefg/uname sosreport-prod-web01-2026-07-21-abcdefg/sos_logs/ sosreport-prod-web01-2026-07-21-abcdefg/var/log/messages sosreport-prod-web01-2026-07-21-abcdefg/etc/os-release
3. 特定ファイルだけを取り出して確認する
アーカイブ全体を展開するのではなく、特定のファイルだけを取り出して内容を確認することもできる。# 特定ファイルをパイプで直接表示(展開不要) tar -xJOf /var/tmp/sosreport-prod-web01-2026-07-21-abcdefg.tar.xz sosreport-prod-web01-2026-07-21-abcdefg/uname # 出力例 Linux prod-web01 5.14.0-362.8.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC ...
プラグインを指定して採取範囲を絞る方法
サービスが動いている本番環境での採取では、実行時間を短くしたい・特定情報だけ欲しいというケースがある。そのためにプラグイン指定が使える。1. 利用可能なプラグイン一覧の確認
# プラグイン一覧を表示 sos report --list-plugins # 出力例(一部) Currently loaded plugins: block Gather information about block storage devices cgroups Gather information about cgroups docker Gather information about Docker firewalld Gather information about firewalld hardware Gather information about hardware devices kernel Gather information about kernel memory Gather information about memory network Gather information about network configuration systemd Gather information about systemd yum Gather information about yum (dnf) package manager
2. 特定プラグインのみ実行する
-o オプションでプラグインを指定する。複数プラグインをカンマ区切りで指定できる。# ネットワーク情報と firewalld の情報だけ採取 sos report -o network,firewalld # カーネル・メモリ・ハードウェアの情報だけ採取 sos report -o kernel,memory,hardware # ファイル名の識別子を手動指定(case番号なしで採取する際に便利) sos report --label "network-issue-20260721"
3. プラグインを除外して採取時間を短縮する
-n オプションで特定プラグインを除外できる。時間のかかる docker プラグイン等を外すと採取時間が大幅に短縮される。# docker・podman プラグインを除外して実行 sos report -n docker,podman # 確認なしで即時実行(--batch オプション) sos report --batch
サポートケースへのレポート提出とRed Hatサポートとの連携
Red Hatサポートへのsosreport提出には、主に2つの方法がある。方法1:Webコンソールからアップロード
Red Hat Customer Portal(access.redhat.com)のサポートケース画面から、.tar.xz ファイルを直接アップロードする最も一般的な方法だ。ファイルサイズが大きい場合は分割が必要なこともある。
方法2:sos upload コマンドでCLIからアップロード
Red Hat Customer Portalの認証情報があれば、コマンドラインから直接アップロードできる。
# 採取と同時にアップロードする場合 sos report --upload --case-id 03456789 # すでに採取済みのファイルをアップロードする場合 sos upload /var/tmp/sosreport-prod-web01-2026-07-21-abcdefg.tar.xz --case-id 03456789
サポートケースへの提出時の注意点
・ファイルには /etc/shadow のようなパスワードハッシュは含まれないが、設定ファイルやログには機密情報が含まれる場合がある
・ --clean オプションを使うと、IPアドレス・ホスト名・MACアドレスを難読化(obfuscate)してから採取できる
・採取後は不要になったファイルを rm で削除する(/var/tmp 配下に残し続けない)
sosreportを活用したトラブルシューティングの実例
実務でsosreportがどのように役立つか、具体的なシナリオで説明する。1. ネットワーク疎通が急に切れた場合
「昨日まで通っていたSSHが突然繋がらなくなった」という報告を受けた場合、まず以下のプラグインに絞って採取する。# ネットワーク関連を絞り込んで採取 sos report -o network,firewalld,networkmanager --batch # 展開してネットワーク設定の変更履歴を確認 tar -xJOf /var/tmp/sosreport-*.tar.xz "$(tar -tJf /var/tmp/sosreport-*.tar.xz | grep 'etc/NetworkManager' | head -1)"
ip addr・ip route・ファイアウォールルールの現在状態がすべて含まれているため、現象発生時の設定スナップショットとして保存できる。ポート確認の基本については Linux ポート確認の全コマンド も参照してほしい。2. カーネルパニックが発生した場合
再起動後にカーネルパニックの原因を追いたい場合は、kdump と組み合わせてsosreportを採取する。# カーネル・kdump 関連プラグインで採取 sos report -o kernel,kdump,memory --batch # sos 採取後、/var/crash/ 配下のコアダンプも確認する ls -lh /var/crash/
3. 定期的なスナップショットとして活用する
障害が起きてから採取するだけでなく、本番環境の「通常状態」をあらかじめ採取しておくと、障害時との差分を比較できる。cron で週次・月次で採取するチームもある。# cron に登録する例(毎週日曜2時に採取) # /etc/cron.d/sos-snapshot 0 2 * * 0 root /usr/bin/sos report --batch --label "weekly-snapshot" && find /var/tmp -name "sosreport-*weekly-snapshot*.tar.xz" -mtime +30 -delete
まとめ——障害対応の「型」としてのsosreport
sosreportは「何が起きているかわからない状態で、とにかく情報を全部渡す」ための道具だ。ベンダーサポートとの連携において、一番時間を無駄にするのは「あの情報も送ってください、次にこれも」と繰り返すやり取りだ。sosreportで一括採取しておけば、その往復を大幅に減らせる。| やりたいこと | コマンド |
|---|---|
| 全情報を一括採取する(基本) | sos report |
| 確認なしで即時採取する | sos report --batch |
| ネットワーク情報のみ採取する | sos report -o network,firewalld |
| 特定プラグインを除外して採取する | sos report -n docker,podman |
| ケース番号を指定して採取する | sos report --case-id 03456789 |
| 採取ファイルを直接アップロードする | sos upload /var/tmp/sosreport-*.tar.xz --case-id 03456789 |
| 利用可能なプラグインを確認する | sos report --list-plugins |
| IPアドレス等を難読化して採取する | sos report --clean |
sosreportをはじめとするLinuxのトラブルシューティング技術をさらに深めたい方には、障害対応の実務ノウハウを体系的に学べる環境として、Linuxマスター上級コース の受講も選択肢のひとつだ。
sosreportで一歩進んだら、次はLinuxサーバー構築の「型」を体系的に固めませんか?
sosreportによる障害情報採取はトラブルシューティングの起点にすぎません。ネットワーク設定・セキュリティ・サービス管理と合わせて体系的に身につけることで、ベンダーサポートに頼らず自力で解決できるエンジニアになれます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:ハングしたLinuxサーバーをMagic SysRqキーで安全に再起動する方法・REISUBの手順とsysctl設定
- 前のページへ:空き容量があるのにNo space left on deviceになる原因と対処|inode枯渇の調査手順
- この記事の属するカテゴリ:Linuxトラブルシューティングへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます