RHELカーネルクラッシュダンプの解析

サーバー構築/シェル・バッチ

RHELカーネルクラッシュダンプの解析を行うための
環境準備と簡単なcrashツールの利用方法です。RHEL7を前提としています。

事前準備

以下の3つが必要です。
* crashユーティリティ
* カーネルクラッシュダンプ(以降クラッシュダンプ)
* カーネルのデバッグ情報(debuginfo、debuginfo-common)

crashユーティリティのインストール

yum install crash

クラッシュダンプ

デフォルトでは以下に出力されます。

/var/crash/<timestamp>/vmcore

debuginfoのインストール

debugパッケージのリポジトリを検索し有効に設定します。

subscription-manager repos --list | grep -i server-debug-rpms
subscription-manager repos --enable=rhel-7-server-debug-rpms

debuginfoとdebuginfo-commonパッケージをインストールします。
バージョンはクラッシュダンプのバージョンと完全一致させる必要があります。
以下インストールコマンドでは uname を利用しカーネルバージョン等の情報を動的に取得しています。

yum install kernel-debuginfo-$(uname -r) kernel-debuginfo-common-$(uname -m)-$(uname -r)

リポジトリが有効に出来ない場合は以下のサイトからダウンロードします。(サブスクリプションが必要です)
https://access.redhat.com/site/downloads/

crashユーティリティの実行

crash /usr/lib/debug/lib/modules/<kernel>/vmlinux /var/crash/<timestamp>/vmcore

crashユーティリティの使い方

はじめにカーネルモジュールのデバッグ情報を全て読み込んでおきます。
bash
crash> mod -S

主なコマンドです。

コマンド内容サンプル
helpコマンド一覧の表示help コマンド名 でコマンド詳細を表示
logログ確認
btバックトレースの確認bt -a
カレントプロセスのみを表示
ps実行されているプロセスの確認ps -A
アクティブプロセスのみ表示
fuserファイルを利用しているプロセスの確認fuser /mntnX
filesプロセスが参照しているファイルを表示foreach files -R /mnt/tool
指定フォルダ配下のファイルを表示する

以上

タイトルとURLをコピーしました