第2回 PD思考法の基礎と情報収集(その2)障害発生時の金科玉条(2/3 ページ)

» 2005年12月15日 17時00分 公開
[秋田英行(日本アイ・ビー・エム),オープンソースマガジン]

dmesgコマンド

 klogdの動作を待たずとも、リングバッファから任意にカーネルメッセージを取り出すこともできる。dmesgコマンドがそのユーティリティである。

$ dmesg


 ただし、dmesgだけではコンソールへの出力しか行えず、さらにデフォルトではリングバッファから最大16Kバイト分のメッセージしか読み取らないため、オプションなしの実行ではすべてのカーネルメッセージを読み取ることはできない。起動時のデバイス情報が格納されることで知られる/var/log/dmesgファイルも、起動スクリプト中*で以下のようにdmesgを実行し、出力結果を/var/log/dmesgファイルにリダイレクトされているにすぎない。

dmesg -s 131072 > /var/log/dmesg


 リングバッファ全体のカーネルメッセージを読み取るには、「-s」オプションでサイズを指定して実行すればいい。例えば、256Kバイト分のメッセージをリングバッファから読み取るには以下のようにする。

# dmesg -s 262144 > /var/log/dmesg


 なお、dmesgコマンドでもコンソールログレベルを設定できる。

# dmesg -n <コンソールログレベル>


ログファイルとsyslogd

 syslogdは、klogdから受け取ったカーネルメッセージを実際にログに書き出す役割を負っている。書き出されるログは一般的に/var/log以下に保存され、その制御は/etc/syslog.confで行う。

 基本的なsyslog.confの書式は、次のようになっている。

<facility>.<priority> <ログの配送先>


 ここで、facilityはログの目的別分類、priorityはログを書き込む際の優先順位を制御するもので、それぞれリスト3リスト4のように、/usr/include/sys/syslog.hで定義されている。例えば、次のようにするとpriorityがLOG_INFO、facilityがLOG_MAILのメッセージが/var/log/messeageに保存される。

mail.info /var/log/messages


リスト3 リスト3 ログのfacility(/usr/include/sys/syslog.hから抜粋)
リスト4 リスト4 ログのpriority(/usr/include/sys/syslog.hから抜粋)

 また、syslogdでは、klogdからだけでなく、ユーザープロセスやシェルスクリプトから送られたメッセージについてもログファイルに書き出すことができる。ユーザープロセスからsyslogにメッセージを送るにはopenlog()、syslog()、closelog()関数を、シェルスクリプトではloggerコマンドを利用する。

/procからの情報収集

 Linuxでは、通常/procディレクトリ以下にprocファイルシステムと呼ばれる仮想ファイルシステムがマウントされており、/proc以下に存在する仮想ファイルに対して読み書きを行うことで、カーネル情報の取得やパラメータの表示/変更を行うことができる。表4、5は/procディレクトリ以下に存在する主な仮想ファイルである。例えば、マシンに搭載されているCPU情報を取得するには、以下のようにすればいい。

$ cat /proc/cpuinfo


表4 表4 /procディレクトリ中の稼働や構成に関する仮想ファイル
表5 表5 /procディレクトリ以下の稼働や構成に関する仮想ファイル
設定ファイルからの情報収集

 PDを行う上で、システムの設定ファイルを確認することも重要である。表6は、一般的なシステムや各種デーモンの設定ファイルである。

表6 表6 システムや各種デーモンの設定ファイル

 

ツールを使用した情報収集

 ハードウェアによっては、ベンダーがハードウェア構成情報を取得するツールを提供している場合がある。例えば、IBM eServer xSeriesでは、DSA(Dynamic System Analysis)と呼ばれるツールが下記サイトから入手できる。

IBM Dynamic System Analysis (DSA) Installable Edition

IBM Dynamic System Analysis (DSA) Portable Edition

 DSAでは、/procやログ、設定ファイルから必要と思われる情報を一括して取得できるほか、BIOSやハードウェア関連の情報も取得できる。また、取得対象のシステムに直接インストールして起動するインストールタイプと、リムーバブルメディアから起動できるポータブルタイプの2種類が提供されており、使用環境に応じて使い分けることが可能である。どちらのタイプでも取得できる情報は同じで、取得した情報はXMLファイルとして保存される。そのほか、使用には前提条件があるため、readmeファイルを参照いただきたい。

このページで出てきた専門用語

起動スクリプト中

Red Hat系ディストリビューションでは/etc/rcd/rcsysinit中、Debian GNU/Linuxでは/etc/rcSd/S55botmiscsh中に記述されている。


Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.

注目のテーマ