Red Hat Enterprise Linux 4.6 以降における sosreport の役割と取得方法

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 4.6 以降
  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise MRG

Issue

Resolution

Azure 仮想ゲストの場合

sosreport とは何ですか?

sosreport コマンドは、設定の詳細、システム情報、および診断情報を Red Hat Enterprise Linux システムから取得するツールです。 たとえば、実行しているカーネルのバージョン、ロードしたモジュール、そしてシステムおよびサービスの設定ファイルを取得します。 さらに、外部プログラムを実行してより詳細な情報を取得し、結果アーカイブにこの出力結果を保存します。

sosreport の出力は、Red Hat Enterprise Linux システムのサービス要求を解析するのに、Red Hat サポートエンジニアが通常最初に行うものです。


sosreport を実行する

sos パッケージをインストールしたら、以下のコマンドを実行して sosreport を実行します。

注意: sosreport を実行するには root 権限が必要です。

# sosreport

Red Hat Enterprise Linux 6 では、このコマンドが終了するには数分かかります。古いバージョンだともう少しかかる場合があります。ローカル設定と指定したオプションによっては、コマンドが終了するのに時間がかかる場合があります。sosreport コマンドの実行時間を気にされる場合は、Red Hat サポートチームにご連絡ください。

sosreport コマンドが完了すると、/tmp (RHEL6 以前) または /var/tmp (RHEL7 以降) の下に圧縮ファイルが生成されます。バージョンが異なると使用する圧縮スキームが異なります (gzbz2、または xz)。作成されたファイルを (通常はサポートケースに添付して) サポートチームに提供してください。

システム設定と、有効な sosreport のオプション機能によって、アーカイブのサイズは異なります。たとえば、システムログファイルをすべて取得する "all_logs" オプションを一般的なモジュールに指定すると、アーカイブのサイズが著しく増加する場合があります。

sosreport などのファイルを既存のサポートケースに追加するには、 redhat-support-tool コマンドラインオプション、Red Hat ポータル UI、または FTP を使用したさまざまな方法が利用できます。

取得した sosreport ファイルが大きすぎてケースにアップロードできない場合は、Red Hat ftp サイト (dropbox.redhat.com) にアップデートすることができます。

ユーザーおよびアカウント情報をインタラクティブに入力しないで済むように、--batch オプションを指定してバッチモードで実行することができます。この場合、ユーザー情報はシステムの RHN 設定ファイルから取得されます。

# sosreport --batch

sosreport コマンドはモジュール構造のため、コマンドラインからモジュールを有効や無効にしたり、モジュールオプションを指定したりできます。利用可能なモジュール (プラグイン) の一覧を表示するには、以下のコマンドを使用します。

# sosreport -l

モジュールを一時的にオフにするには、以下を実行します。

-n/--skip-plugins オプションに渡すコンマ区切りのモジュールリストにそのモジュールを含める必要があります。

たとえば、kvm および amd モジュールを (壊れている場合に) ともに一時的に無効にするには、以下のコマンドを実行します。

# sosreport -n kvm,amd

個々のモジュールは、-k オプションで指定できる追加オプションを提供している場合もあります。たとえば、Red Hat Enterprise Linux 4 および 5 の sos rpm モジュールは、デフォルトで "rpm -Va" 出力結果を取得します。これには時間がかかる場合があるので、以下のコマンドを実行して無効にすることもできます。

# sosreport -k rpm.rpmva=off

RHN Proxy Server で sosreport を実行する
RHN Proxy Server で詳細情報を取得するには、以下のコマンドを実行します。

# sosreport -o rhn

注意:

  1. Red Hat Enterprise Linux 4.5 以前には、診断用アーカイブファイルを作成する sysreport コマンドが同梱されています。可能な場合は、後継リリースに含まれる sos パッケージにシステムをアップデートしてください。ただし、必要に応じて sysreport も Red Hat に提出することができます。詳細については、What is a sysreport and how to run it in Red Hat Enterprise Linux? を参照してください。

  2. Red Hat Enterprise Linux 4 および 5 の sos パッケージには sysreport コマンドも同梱されています。これは、以前のバージョンへの互換性として提供されているシンボリックリンクです。

    # ls -l /usr/sbin/sysreport
    lrwxrwxrwx 1 root root 19 Nov  3  2008 /usr/sbin/sysreport -> /usr/sbin/sosreport
    

これらのインストールでオリジナル (レガシー) バージョンの sysreport スクリプトを使用するには、以下のように sysreport.legacy コマンドを実行します。

# sysreport.legacy
This utility will go through and collect some detailed information 
about the hardware and setup of your Red Hat Linux system.
This information will be used to diagnose problems with your system
and will be considered confidential information.  Red Hat will use
this information for diagnostic purposes ONLY. 

sosreport をインストールする

sosreport を実行するには、sos パッケージがインストールされている必要があります。 パッケージはデフォルトグループに含まれており、大概のシステムには自動的にインストールされます。

パッケージがインストールされていない場合は、以下の手順に従って手動で追加することができます。

Red Hat Enterprise Linux 5 以降

システムが RHN に登録済みの場合は、yum コマンドを使用することができます。

# yum install sos

システムが RHN に登録されていない場合、sos パッケージは RHN web サイトからダウンロードするか、インストール CD か DVD から取得することができます。rpm コマンドを使用して、そのパッケージを Red Hat Enterprise Linux のすべてのバージョンにインストールすることができます。

 # rpm -Uvh sos-<version>.noarch.rpm

Red Hat Enterprise Linux 4 Update 6 以降の場合

システムが Red Hat Network (RHN) に登録済みの場合は、up2date コマンドで sos パッケージをインストールすることができます。

# up2date sos

sosreport がハングしたときの対処方法

  • RHEL5 で実行している場合は、sosreport プロセスの PID で kill する前にプロセスを背景で実行します (ctrl-z)。この操作を行わないと、sosreport hangs the system when multiple SIGINTs received に記載される問題が発生する場合があります。

  • デバイスに空き領域がないため sosreport に失敗した場合

    • /tmp を含むファイルシステムに十分な領域があることを確認します。
    # df -h /tmp
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg_ren-lv_root
                           50G   49G    1M  99% /
    
    • 追加の空き領域を確保するか、以下の引数を使用して、異なるディレクトリを指定することができます。
    # sosreport --tmp-dir /path/to/another/volume
    
  • sosreport が、特定のプラグインが原因でハングアップした可能性ある場合

どのプラグインがハングアップしているかを特定するには、以下を実施します。

  1. sosreport の詳細度を増やす。sosreport -vvvv
  2. strace を実行します。

どのプラグインがハングアップしているかを特定できたら、そのプラグインを除外します。

以下のコマンドを入力してすべてのプラグインを表示します。

sosreport -l

たとえば、filesys プラグインを除外するには、以下のコマンドを実行します。

sosreport -n filesys
  • その他の場合は、sosreport の代わりに、以下のスクリプトを実行してレポートを手動で作成することができます。 これは、標準の sosreport で収集されるものの一部です。

    #!/bin/bash
    host="$(hostname)"
    
    sos_dir="/tmp/${host}_hungsos"
    mkdir $sos_dir
    cd $sos_dir
    chkconfig --list > chkconfig
    date > date
    df > df
    dmesg > dmesg
    dmidecode > dmidecode  
    fdisk -l > fdisk  
    free > free  
    hostname --fqdn > hostname  
    ifconfig > ifconfig  
    lsmod > lsmod  
    lspci > lspci  
    cat /proc/mounts > mount  
    netstat -tlpn > netstat  
    ps auxww > ps  
    rpm -qa > rpm-qa  
    rpm -Va > rpm-Va     #this command may take a while to run  
    ulimit -a > ulimit  
    uname -a > uname  
    uptime > uptime  
    cat /proc/meminfo > meminfo  
    cat /proc/cpuinfo > cpuinfo  
    mkdir etc  
    cd etc  
    cp /etc/fstab .
    cp /etc/cluster/cluster.conf .
    cp /etc/security/limits.conf .  
    cp /etc/redhat-release .  
    cp /etc/sysctl.conf .  
    cp /etc/modprobe.conf .  
    mkdir sysconfig/network-scripts -p  
    cd sysconfig  
    cp /etc/sysconfig/* .-R  
    cd $sos_dir
    mkdir var/log -p  
    cp /var/log/message* var/log -R  
    cd /tmp  
    tar -cvjf ${host}_hungsos.tar.bz2 $sos_dir
    

参照: How to gather data from a Red Hat Enterprise Linux system for troubleshooting if the sosreport process goes to hung state?

レスキューモードで sosreport を取得する

システムが起動しない場合は、トラブルシューティングのために、レスキューモードで sosreport を取得することができます。

詳細は、How to generate sosreport from the rescue environment? を参照してください。

別の場所に sosreport を生成する

/tmp のサイズに制限がある場合は、別の場所に sosreport を作成することができます。

詳細は、How do I make sosreport write to an alternative location? を参照してください。

sosreport を手動で取得する

何か問題が発生して sosreport を生成できない場合は、以下のナレッジを確認してファイルを手動で取得してください。

Sosreport fails. What data should I provide in its place?


sosreport の副次的効果

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.