この章では,システム・イベントのロギング方法と,基本システム・イベント・ロギング・チャネルの構成方法について説明します。 また,ログ・ファイルの管理についても説明します。
この章では,次の事項について説明します。
システム・イベントをモニタリングするためのオプション (12.1 節)
イベントのモニタリングの設定 (12.2 節)
システム・クラッシュ後にイベント・ログを回復し参照する方法 (12.3 節)
ログ・ファイルを管理するためのオプション (12.4 節)
本オペレーティング・システムでは,次の 3 つの基本的なメカニズムを使用してシステム・イベントのログを取ります。
システム・イベント・ロギング機能 (syslogd
)。
初期化オプションの詳細は,
syslogd
(8)syslog.conf
(4)syslog.auth
(4)
バイナリ・イベント・ロギング機能 (binlogd
)。
初期化オプションの詳細は,
binlogd
(8)binlog.conf
ファイルについては
binlog.conf
(4)binlog.auth
(4)
Event Manager。
システムのイベントとエラーを管理するための統合的な手段を提供します。
Event Manager
の導入については,
EVM
(5)
syslogd
および
binlogd
により検出され記録されるイベントは,Event Manager,DECevent,またはエラー報告フォーマッタ
uerf
を使用して参照することができます。
システム・イベントの管理方法としては,Event Manager をお勧めします。
Event Manager の構成方法についての詳細は,第 13 章を参照してください。
Event Manager ビューア
evmviewer
には,システム・イベントの選択,フィルタ処理,表示を行うためのグラフィカル・ユーザ・インタフェースがあります。
詳細は,リファレンス・ページの
EVM
(5)evmviewer
(8)
システム・イベントは,バイナリ形式で返されることがよくあります。 このようなイベントを読み取り可能なテキスト形式で表現するには,次のような変換ツールを使う必要があります。
サービス契約で提供されるサービス・ツールには,Compaq Analyze のようなイベント分析ツールがあります。
詳細は,http://www.support.compaq.com/svctools/webes/index.html
を参照してください。
最新のプロセッサ・モデルでは,以前のプラットフォームで生成された形式と異なるヘッダ形式を使って
binlogd
イベントが生成されます。
新しい形式のイベントは,CEH (Common Event Header) イベントと呼ばれます。
CEH イベントを生成しないシステムでは,Compaq Analyze で変換を行うことはできません。
このため,DECevent フォーマッタ・ユーティリティ
/usr/sbin/dia
をインストールしなければなりません。
DECevent の制限付き使用ライセンスは,『インストレーション・ガイド』の説明のように,ディストリビューション・キットで提供しています。
詳細は,『DECevent Translation and Reporting Utility』と
dia
(8)
uerf
コマンド・ユーティリティ。
uerf
(8)
注意
uerf
コマンド・ユーティリティは,CEH イベントをサポートしておらず,将来のリリースでは廃止される予定です。 できるだけ早く,イベント管理プロシージャを Event Manager に移行してください。
イベント・ロギング機能で作成されるログ・ファイルは保護されており,所有者は
root
,グループは
adm
です。
これらのログ・ファイルをチェックするには,適切な特権が必要です。
以降の各項で,イベント・ロギング機能について説明します。
12.1.1 システム・イベント・ロギング
ASCII フォーマットでシステム全体のイベントのログを取るための主要なイベント・ロギング機能として,syslog
関数があります。
syslog
関数は,カーネル,コマンド,ユーティリティ,アプリケーションなどのさまざまなプログラムによって記録されるロギング・メッセージを,syslogd
デーモンを使用して収集します。
syslogd
デーモンは,メッセージを
/etc/syslog.conf
ファイルに指定されているローカル・ファイル,あるいはリモート・システムに送ります。
オペレーティング・システムをインストールすると,/etc/syslog.conf
ファイルが作成され,省略時のイベント・ロギング設定が指定されます。
/etc/syslog.conf
ファイルは,ASCII 形式のイベント・メッセージの宛先となるファイル名を指定します。
/etc/syslog.conf
ファイルについては,12.2.1.1 項で説明しています。
詳細は,
syslog.conf
(4)
/etc/syslog.auth
ファイルは,ローカル・ホストへの
syslog
メッセージの転送を許可するリモート・ホストを定義します。
システムのセキュリティ上の理由から,このファイルにリストされたリモート・ホストからのメッセージのみが,syslogd
デーモンに記録されます。
/etc/syslog.auth
ファイルが存在しない場合は,すべてのリモート・ホストからのイベント転送が可能になります。
/etc/syslog_evm.conf
ファイルは,Event Manager イベントの形式で
syslogd
デーモンから Event Manager に転送される
syslogd
メッセージを定義します。
syslogd
転送機能が
-e
オプションでオンになっていれば,これらの
syslogd
メッセージは,syslogd
によって Event Manager デーモン
evmd
にポストされます。
イベント転送は常に,省略時はオンです。
-E
オプションを使い,必要に応じてオフにします。
イベントは,sys.unix.syslog.
facility
という Event Manager 名でポストされます。
詳細は,
syslog.auth
(4)syslog_evm.conf
(4)12.1.2 バイナリ・イベント・ロギング
バイナリ・イベント・ロギング機能は,カーネル内のハードウェア・イベントおよびソフトウェア・イベントを検出し,詳細情報をバイナリ形式のレコードで記録します。
このようなイベントの一部は,syslog
関数を使用してもログを取ることができます。
syslog
関数による情報はバイナリ・イベント・ロギング機能によるログほど詳しくはありません。
バイナリ・イベント・ロギング機能は,binlogd
デーモンを使用して,さまざまなイベント・ログ・レコードを収集します。
binlogd
デーモンはこれらのイベント・ログ・レコードを,システムのインストール時に作成される省略時の構成ファイル
/etc/binlog.conf
に指定したローカル・ファイル,またはリモート・システムに送ります。
12.2.1.3 項では,/etc/binlog.conf
ファイルについて説明しています。
DECevent (Compaq Analyze) は,バイナリ・イベントをシステムのバイナリ・イベント・ログ・ファイルから ASCII 形式のレポートに変換するために使います。
DECevent は,コマンド行で
dia
コマンドを入力すると起動されます。
オプションを付けずにコマンドを入力すると,DECevent は直ちにイベント・ログ・ファイルにアクセスして,内容を変換し,例 12-1
に示すようにイベントを表示します。
イベントは,すべてのイベントが表示されるか,[Ctrl/c]
キーが押されるまで,上にスクロールし続けます。
例 12-1: 変換されたイベントの例
**** V3.3 ****************** ENTRY 4 ************************ [1] Logging OS 2[OS] [2] System Architecture 2. Alpha Event sequence number 440. Timestamp of occurrence 22-AUG-2002 18:24:31 [3] Host name Host Name System type register x0000001B AlphaServer 800 or 1000A Number of CPUs (mpnum) x00000001 CPU logging event (mperr) x00000000 Event validity [4] 1. O/S claims event is valid Event severity 5. Low Priority Entry type 301. Shutdown ASCII Message Type -1. - (minor class) SWI Minor class 9. ASCII Message SWI Minor sub class 2. Shutdown ASCII Message System halted by root: System going down @ 6:24PM on 22 Aug Please log off in good time [5]
変換されたログ内のイベントの数です。 この数値はイベントの選択またはフィルタリングに基づいていることがあります。 [例に戻る]
オペレーティング・システム ([OS]) とシステム・アーキテクチャを示す文字列です。 [例に戻る]
イベントの発生時間を示すタイムスタンプ (日付とシステム・クロックの時刻) と発生したシステムの名前 (<host name>) です。 [例に戻る]
イベントの有効性,重大度,タイプについての情報です。 この例では,システムがシャットダウンされたという,情報的なメッセージです。 [例に戻る]
イベントによって実際に記録されたメッセージです。 イベントの発生時に端末またはコンソールにも表示されていることがあります。 [例に戻る]
DECevent ユーティリティの管理についての詳細は,次のドキュメントを参照してください。
『DECevent Translation and Reporting Guide』
dia
(8)
Compaq Analyze は,ルール・ベースのハードウェア障害管理の診断アプリケーションであり,エラー・イベント解析と変換を行います。
Compaq Analyze の多重イベント相関解析機能により,バイナリ・システム・イベント・ログまたはその他の特定のバイナリ・ログ・ファイルに格納されたイベントを解析する機能を提供しています。
Compaq Analyze がインストールされると,SysMan Station から直接 GUI インタフェースを起動することができます。
起動するには,「Host Icon」を選択し,[Tool] メニューから [Compaq Analyze] を選択します。
12.2 イベント・ロギングの構成
この節の説明に従って構成ファイルを変更すると,省略時の構成を変更できます。 たとえば,重要な,システムにとってクリティカルなイベントのみを記録し,情報通知イベントは無視するように構成を変更できます。 メール・サービスやプリント・サービスなどの一部のサブシステムに限定して,イベント・メッセージが記録される方法や位置を制御することもできます。 システム・イベント監視の最適な方式は,第 13 章で示すように Event Manager を使用することです。 Event Manager は,イベントの統合とフィルタ処理を可能にしています。
システムおよびバイナリのイベント・ロギングを使用可能にするには,特殊ファイルが存在し,イベント・ロギング・デーモンが実行されていなければなりません。 詳細については,12.2.3 項および12.2.4 項を参照してください。
ファイル
/var/adm/syslog.dated
と,/var/adm
ディレクトリにあるその他のファイルは,コンテキスト依存のシンボリック・リンク (CDSL) であり,1 つのシステムと複数のクラスタを結合する機能があります。
syslog
ディレクトリの CDSL は
/var/cluster/members/member0/adm/syslog.dated
です。
これらのファイルを操作する際は,シンボリック・リンクを切断しないように注意してください。
CDSL についての詳細は,第 6 章を参照してください。
12.2.1 構成ファイルの編集
省略時のシステム・イベント・ロギングの設定またはバイナリ・イベント・ロギングの設定を使用したくない場合は,構成ファイル
/etc/syslog.conf
または
/etc/binlog.conf
を編集して,システムでのイベント・ロギングの方法を指定することができます。
これらのファイルには,次のデータを指定します。
ファシリティ (メッセージのソース,またはメッセージを生成するシステムの構成要素)
優先順位 (メッセージの重大度)
メッセージの記録先
以降の各項では,構成ファイルの編集方法を説明します。
12.2.1.1 syslog.conf ファイルの編集
syslogd
デーモンが省略時の設定以外の構成ファイルを使用するように設定するには,次のように,syslogd
コマンドでファイル名を指定します。
# syslogd -f config_file
次に,省略時の
/etc/syslog.conf
ファイルの例を挙げます。
# # syslogd config file # # facilities: kern user mail daemon auth syslog lpr binary # priorities: emerg alert crit err warning notice info debug # #[1] [2] [3] kern.debug /var/adm/syslog.dated/kern.log user.debug /var/adm/syslog.dated/user.log daemon.debug /var/adm/syslog.dated/daemon.log auth.crit;syslog.debug /var/adm/syslog.dated/syslog.log mail,lpr.debug /var/adm/syslog.dated/misc.log msgbuf.err /var/adm/crash.dated/msgbuf.savecore kern.debug /var/adm/messages kern.debug /dev/console *.emerg *
/etc/syslog.conf
ファイルの各エントリは次の情報を表します。
メッセージを生成するシステムの一部であるファシリティ [例に戻る]
重大度
syslogd
デーモンは,指定された重大度以上のメッセージはすべて記録します。
たとえば
err
レベルを指定すると,レベル
err
,crit
,alert
,emerg
,panic
のすべてのメッセージのログが作成されます。
[例に戻る]
メッセージを記録する場所
ログ・ファイルまたは,/dev/console
のようなデバイスです。
[例に戻る]
syslogd
デーモンは,空白行と
#
(番号記号) で始まる行を無視します。
このため,行の最初に
#
を指定して
/etc/syslog.conf
ファイルにコメントを記述したり,エントリを無視させたりすることができます。
ファシリティおよび重大度は,1 つ以上のタブ文字または空白によって記録先と区切ります。
セミコロンで区切れば,2 つ以上のファシリティおよびその重大度を指定することができます。
上記の例では,重大度
crit
およびそれ以上の
auth
ファシリティからのメッセージと,重大度
debug
およびそれ以上の
syslog
ファシリティからのメッセージは,/var/adm/syslog.dated/syslog.log
ファイルにログが取られます。
コンマで区切ることによって,2 つ以上のファシリティを指定することができます。
上記の例では,mail
からのメッセージと,重大度が
debug
以上のレベルの
lpr
ファシリティは,/var/adm/syslog.dated/misc.log
ファイルに記録されます。
ファシリティ
次のファシリティを指定することができます。
kern
カーネルによって生成されるメッセージ。 これらのメッセージはユーザ・プロセスでは生成できない。
user
ユーザ・プロセスによって生成されるメッセージ。 省略時の設定。
mail
メール・システムによって生成されるメッセージ。
daemon
システム・デーモンによって生成されるメッセージ。
auth
認証システムによって生成されるメッセージ (login
,su
,getty
など)。
lpr
ライン・プリンタ・スプーリング・システムによって生成されるメッセージ (lpr
,lpc
,lpd
など)。
local0
,local1
〜
local7
ローカルでの使用のために確保されている。
mark
20 分ごとに優先順位
info
のメッセージを受け取る。
メッセージを受け取る間隔を変更する場合は,syslogd
-m
コマンドを使用する。
msgbuf
システム・クラッシュから回復したカーネル syslog メッセージ・バッファ。
savecore
コマンドと
syslogd
デーモンは,msgbuf
ファシリティを使用して,システム・イベント・メッセージをクラッシュから回復する。
*
システムのすべての部分で生成されるメッセージ。
重大度
次の重大度を指定することができます。 重大度の高い順にリストしてあります。
emerg
または
panic
パニック状態。 このメッセージはすべてのユーザにブロードキャストできる。
alert
システム・データベースが破壊された場合など,ただちに修復しなければならない状態。
crit
ハード・デバイス・エラーなどのクリティカルな状態。
err
エラー・メッセージ。
warning
または
warn
警告メッセージ。
notice
エラー状態ではないが,特殊なケースとして扱われる状態。
info
情報メッセージ。
debug
プログラムのデバッグに使用する情報を含んでいるメッセージ。
none
特定のファシリティのメッセージを使用不能にするメカニズム。
記録先
次のメッセージ記録先を指定することができます。
指定されたファイルにメッセージを追加する。
個々のファシリティのメッセージの宛先として,それぞれ別々のファイルを指定する必要がある。
たとえば,kern.log
,mail.log
,または
lpr.log
などを指定する。
指定されたホスト上の
syslogd
デーモンに,メッセージを転送する。
syslogd
デーモンの起動時に
-R
オプションを指定した場合,メッセージは転送されない。
詳細は,12.2.2 項
を参照。
指定したユーザがログインしている場合に,それらのユーザにメッセージを送る。
*
ログインしているすべてのユーザにメッセージを送る。
日次ログ・ファイル
syslogd
デーモンが日次ログ・ファイルを作成するように指定することができます。
日次ログ・ファイルを作成するには,次の構文を使用して,メッセージの記録先のパス名を指定してください。
/var/adm/syslog.dated/
{file}
file
変数には,ログ・ファイルの名前を指定します。
たとえば,mail.log
または
kern.log
などを指定します。
記録先のパス名
/var/adm/syslog.dated/file
を指定すると,syslogd
デーモンは,次の構文で
/var/adm/syslog.dated
ディレクトリの下にサブディレクトリを毎日作成して,そのサブディレクトリにログ・ファイルを作成します。
/var/adm/syslog.dated/
date/
file
date 変数には,ログ・ファイルが作成された日,月,および時刻を指定します。
file
変数には,/etc/syslog.conf
ファイルに指定したログ・ファイルの名前を指定します。
syslogd
デーモンは,24 時間ごと,システムのブート時,または
syslogd
デーモンの再起動時または再構成後に,新しい
date
ディレクトリを自動的に作成します。
最新のログは
/var/adm/syslog.dated/current
ディレクトリにあります。
current
ディレクトリは,最新の
date
ディレクトリへのシンボリック・リンクです。
たとえば,info
以上のレベルのすべてのメール・メッセージの日次ログ・ファイルを作成するには,/etc/syslog.conf
ファイルを編集して,次のような行を追加します。
mail.info /var/adm/syslog.dated/mail.log
/etc/syslog.conf
に上記の行を指定すると,syslogd
デーモンは,次のような日次ディレクトリおよびファイルを作成します。
/var/adm/syslog.dated/11-Jan-12:10/mail.log
12.2.1.2 Event Manager を使用するための syslog の構成
省略時の設定では,syslogd
は
-e
オプションを使用してイベントを Event Manager に転送するように構成されます (12.2.4 項を参照)。
syslog_evm.conf
ファイルを変更すると,どの
syslog
イベントが Event Manager に転送されるかを指定できます。
このファイルが存在しないか,存在しても登録エントリがない場合は,syslog
メッセージは Event Manager にポストされません。
省略時の
syslog_evm.conf
ファイルには,例 12-2
に示すようなエントリが含まれています (情報用のファイル・ヘッダは除く)。
例 12-2: syslog_evm.conf ファイルのエントリの例
[1][2] *.emerg # above forwards all emergency events to EVM [3] kern.info+ [4] user.notice+ mail.notice+ daemon.notice+ auth.notice+ syslog.notice+
各行エントリの最初の部分は,カーネルの
kern
のように,メッセージを生成するファシリティを指定します。
アスタリスク (*
) は,ファシリティをすべて選択することを示します。
この例では,*.emerg
により,優先順位が緊急のメッセージがすべて Event Manager に転送されます。
ファシリティに対するエントリを作成するか,既存のエントリを削除することで,転送されるイベントが選択できます。 エントリは,12.2.1.1 項のファシリティの表のキーワードに基づいています。 [例に戻る]
各エントリの 2 番目の部分は,12.2.1.1 項の重大度レベルの表のキーワードに基づくメッセージ優先順位を示します。 [例に戻る]
番号記号 (#
) を前に付けてコメントを付加できます。
ただし,転送エントリとコメントを同じ行に混在させることはできません。
[例に戻る]
優先順位に正符号 (+
) を付けると,指定した優先順位とそれ以上の優先順位を持つメッセージが転送されます。
1 つのファシリティでの警告,クリティカル,緊急などの重大度を個別に選択したい場合は,それぞれの優先順位に対して 1 行を記述します。
[例に戻る]
sys.unix.syslog.
facility
という Event Manager 名でポストされます。
詳細は,
syslog_evm.conf
(4)12.2.1.3 binlog.conf ファイルの編集
省略時の設定以外の構成ファイルを
binlogd
デーモンに使用させる場合は,ファイル名を指定して
binlogd
-fconfig_file
コマンドを実行します。
binlogd
デーモンは,すべてのイベントを Event Manager へ転送します。
第 13 章の説明のように,Event Manager ユーティリティを使用すると
binlog
イベントのフィルタ処理と選択ができます。
binlogd
イベントをリモート・ホストに送ることができます。
リモート・ロギング・オプションの詳細は,
binlogd
(8)
/etc/binlog.conf
ファイルの例は次のとおりです。
# # binlogd configuration file # # format of a line: event_code.priority destination # # where: # event_code - see codes in binlog.h and man page, * = all events # priority - severe, high, low, * = all priorities # destination - local file pathname or remote system hostname # # *.* /usr/adm/binary.errlog dumpfile /usr/adm/crash/binlogdumpfile 102.high /usr/adm/disk.errlog [1][2] [3]
/etc/binlog.conf
ファイルの各エントリには,dumpfile
イベント・クラスのエントリを除き,次の 3 つのフィールドがあります。
イベントを生成しているシステムの部分を示すイベント・クラス・コード。 [例に戻る]
イベントの重大度。
イベント・クラスとして
dumpfile
を指定する場合,重大度は指定できない。
[例に戻る]
バイナリ・イベント・レコードの記録先。 [例に戻る]
binlogd
デーモンは,空白行と
#
(番号記号) で始まる行を無視します。
このため,行の最初に
#
を指定してファイルにコメントを記述したり,エントリを無視させたりすることができます。
イベント・クラスと重大度は,1 つ以上のタブ文字または空白によって記録先と区切ります。
クラス・コード | 説明 |
汎用 | |
* | すべてのイベント・クラスを指定する。 |
dumpfile |
クラッシュ・ダンプからのカーネル・バイナリ・イベント・ログ・バッファの復元を指定する。 重大度は指定できない。 |
ハードウェア検出イベント | |
100 | CPU マシン・チェックと例外または,一般例外フォールト |
101 | メモリ |
102 | ディスク |
103 | テープ |
104 | 制御装置 |
105 | アダプタ |
106 | バス |
107 | ストレイ割り込み |
108 | コンソール・イベント |
109 | スタック・ダンプ |
110 | 一般マシン状態 |
113 | ダブル・エラー停止 |
115 | 修正可能 (不可) 環境 |
120 | 修正報告の使用不可 |
195 | SWCC (StorageWorks Command Console) |
196 | I2O ブロック・ストレージ |
198 | SWXCR RAID 制御装置 |
199 | SCSI CAM |
ソフトウェア検出イベント | |
201 | CI ポート・ツー・ポート・ドライバ |
202 | システム通信サービス |
203 | LSM 注意 |
204 | LSM 警告 |
205 | LSM 継続 |
206 | AdvFS ドメイン・パニック |
ASCII 形式の情報メッセージ | |
250 | 汎用 ASCII 形式情報メッセージ |
動作上のイベント | |
300 | スタートアップ ASCII メッセージ |
301 | シャットダウン ASCII メッセージ |
302 | パニック ASCII メッセージ |
310 | タイム・スタンプ |
350 | 診断状況 ASCII メッセージ |
351 | 修復および保守 ASCII メッセージ |
400 | フィルタ・ログ・イベント (filterlog でのみ使用) |
重大度
*
すべての重大度
severe
システム動作に致命的な影響を及ぼすような回復不能なイベント
high
回復可能なイベント,またはシステム動作に致命的な影響を及ぼさない回復不能なイベント
low
情報イベント
記録先
次の記録先を指定することができます。
binlogd
デーモンがバイナリ・イベント・レコードを追加するファイルの名前を指定する。
@hostname
binlogd
デーモンがバイナリ・イベント・レコードを送るホストの名前を指定する。
先頭にアットマーク (@
) を付ける。
イベント・クラスとして
dumpfile
を指定した場合,ホストへレコードを送ることはできない。
操作上のタイム・スタンプ (310) イベントは,自動的には転送されません。
12.2.2 リモート・メッセージと syslog のセキュリティ
リモート・ホストのドメイン・ホスト名がローカルの
/etc/syslog.auth
ファイルに登録されていなければ,ローカル・システムはこのリモート・ホストからの
syslog
メッセージは何も記録しません。
システム上で
syslogd
の保護を行うようにし,そのシステムへ
syslog
メッセージを転送するように他のホストを構成する場合は,次の手順を実行してください。
su
コマンドを使用してスーパユーザ (root) になります。
テキスト・エディタを使用して
/etc/syslog.auth
ファイルを作成します。
ローカル・システムの
/etc/syslog.auth
ファイルへの
syslog
メッセージの転送を許可するリモート・ホストの名前を追加します。
このホスト名は,次の基準を満たさなければなりません。
各リモート・ホスト名は,/etc/syslog.auth
ファイル内で別々の行に記述すること。
#
文字で始まる行はコメントなので,無視されます。
ホスト名は完全なドメイン名でなければならない (trout.fin.huk.com
など)。
ドメイン・ホスト名を指定する場合,そのホスト名がローカルの
/etc/hosts
ファイルに記述されているか,ローカル・システムがネーム・サーバ (BIND など) によってそのホスト名を解釈できなければならない。
ホスト名には,/sys/include/sys/param.h
ファイルの
MAXHOSTNAMELEN
定数で定義されている文字数まで使用できる。
ただし,/etc/syslog.auth
ファイルの各行に使用できる文字は 512 文字までである。
正符号 (+
) だけを記述すると,すべてのホストからのイベント転送を許可します。
また,負符号 (-
) をホスト名の前に付けて,そのホストからのイベント転送を明示的に禁止することもできます。
/etc/syslog.auth
ファイルがシステム上に存在しない場合,すべてのホストからの転送が許可されます。
/etc/syslog.auth
の所有者を root にします。
# chown root /etc/syslog.auth
/etc/syslog.auth
のパーミッションを 0600 にします。
# chmod 0600 /etc/syslog.auth
リモート・ホストが送信するイベントをリッスンする inet ポートを
syslogd
デーモンが作成しないようにするには,デーモン開始時に
-R
オプションを指定します。
この動作を省略時の操作モードにするには,/sbin/init.d/syslog
ファイル内のスタートアップ・コマンド行を編集します。
-R
オプションを使うと,syslogd
デーモンが,別のシステムにイベントを転送できなくなります。
詳細は,
syslog.auth
(4)syslogd
(8)12.2.3 特殊ファイルの作成
文字型特殊ファイル
/dev/klog
が存在しないと,syslogd
デーモンはカーネル・メッセージのログを取ることができません。
/dev/klog
ファイルが存在しない場合は,次のコマンドで作成してください。
# /dev/MAKEDEV /dev/klog
同様に,文字型特殊ファイル
/dev/kbinlog
が存在しないと,binlogd
デーモンは,ローカル・システム・イベントのログを取ることができません。
/dev/kbinlog
がない場合は,次のコマンドで作成してください。
# /dev/MAKEDEV /dev/kbinlog
詳細は
MAKEDEV
(8)12.2.4 イベント・ロギング・デーモンの起動と停止
syslogd
および
binlogd
デーモンは,システム・スタートアップ時に
init
プログラムによって自動的に起動されます。
この 2 つのデーモンは必ず起動されるようにしなければなりません。
デーモンを起動するコマンドにオプションを指定することもできます。
12.2.4.1 syslogd デーモン
init
プログラムによって
syslogd
デーモンが必ず起動されるように設定しなければなりません。
syslogd
デーモンが起動されない場合,または
syslogd
デーモンを起動するコマンドにオプションを指定する場合には,/sbin/init.d/syslog
ファイルを編集する必要があります。
ファイルを編集するとき,syslogd
コマンド行を追加または変更します。
このコマンドは,手動でも起動できます。
syslogd
デーモンを起動するコマンドの構文は,次のとおりです。
/usr/sbin/syslogd
[-b rcvbufsz
]
[-d
]
[
-e
| -E
]
[-f config_file
]
[-m mark_interval
]
[-p path
]
[
-r
| -R
]
[-s
]
省略時の設定では,デーモンの初期化で使用されるのは
-e
オプションだけです。
-e
オプションは,デーモンが自動的にイベントを Event Manager に転送するように構成します。
次のように
ps
コマンドを使用すると,現在の
syslogd
の構成が確認できます。
# /sbin/ps agx | grep syslogd 261 ?? S 0:00:10 usr/sbin/syslogd -e
コマンド・オプションについての詳細は,
syslogd
(8)
注意
/var/adm
ディレクトリがマウントされていることを確認してください。 マウントされていない場合,syslogd
デーモンは正しく動作しません。
syslogd
デーモンは,次のものからメッセージを読み取ります。
ドメイン・ソケット
/dev/log
ファイル
syslogd
デーモンによって自動的に作成されます。
インターネット・ドメイン (UDP) ソケット
/etc/services
ファイルに指定されています。
セキュリティ上の理由から,-R
オプションを使ってこのソケットを使用不可にするか,許可するホストを
/etc/syslog.conf
ファイル内に指定することもできます。
デバイス特殊ファイル
/dev/klog
カーネル・メッセージのみを記録します。
他のプログラムからのメッセージは,openlog
,syslog
,および
closelog
呼び出しを使用します。
syslogd
デーモンが起動されると
/var/run/syslog.pid
ファイルを作成し,そのプロセス ID 番号をこのファイルに格納します。
システムをシャット・ダウンする場合は,その前に,syslogd
プロセス ID 番号を使用してデーモンを停止させてください。
正常なシステム動作中に,物理メモリに置かれているカーネルの syslog メッセージ・バッファにデータがいれられると,syslogd
デーモンが実行されます。
syslogd
デーモンは,/dev/klog
ファイルを読み取って,カーネル syslog メッセージ・バッファのコピーを取得します。
syslogd
デーモンは,バッファの先頭から検索を開始して,検出した各メッセージをシーケンシャルに処理します。
個々のメッセージの前には,/etc/syslog.conf
ファイルに指定されているのと同じファシリティ・コードと優先順位コードが付けられます。
次に,syslogd
デーモンは,/etc/syslog.conf
ファイルに指定されている記録先にメッセージを送信します。
イベント・ロギング・デーモン
syslogd
を停止するには,次のコマンドを使用します。
# kill `cat /var/run/syslog.pid`
次のコマンドを使用すれば,デーモンを再起動せずに,構成ファイル
/etc/syslog.conf
に対する変更を有効にすることができます。
# kill -HUP `cat /var/run/syslog.pid`
init
プログラムが
binlogd
デーモンを必ず起動するように設定しなければなりません。
binlogd
デーモンが起動されない場合,または
binlogd
デーモンを起動するコマンドにオプションを指定する場合は,/sbin/init.d/binlog
ファイルを編集し,binlogd
コマンド行を追加または変更しなければなりません。
このコマンドは,手動でも起動できます。
binlogd
コマンドは,次のオプションをサポートしています。
/usr/sbin/syslogd
[-d
]
[-f config_file
]
[
-r
| -R
]
コマンド・オプションについては,
binlogd
(8)
binlogd
デーモンは,次のものからバイナリ・イベント・レコードを読み取ります。
インターネット・ドメイン・ソケット (binlogd
,706/udp
)
/etc/services
ファイルに指定されています。
セキュリティ上の理由から,-R
オプションを使ってこのソケットを使用不可にすることもできます。
また,許可するホストを
/etc/binlog.conf
ファイル内に指定することもできます。
特殊ファイル
/dev/kbinlog
binlogd
デーモンが起動されると
/var/run/binlogd.pid
ファイルを作成して,そのプロセス ID 番号をこのファイルに格納します。
binlogd
デーモンを停止または再設定する場合はこのプロセス ID 番号を使用します。
正常なシステム動作中に,データがカーネルのバイナリ・イベント・ログ・バッファにいれられるか,またはインターネット・ドメイン・ソケット上で受け取られると,binlogd
デーモンが実行されます。
次に,binlogd
デーモンは,特殊ファイル
/dev/kbinlog
またはソケットからデータを読み取ります。
個々のレコードには,イベント・クラス・コードと重大度コードが含まれています。
binlogd
デーモンは,各バイナリ・イベント・レコードを処理して,それを
/etc/binlog.conf
ファイルに指定されている記録先にログを取ります。
binlogd
デーモンを停止するには,次のコマンドを使用します。
# kill `cat /var/run/binlogd.pid`
次のコマンドを使用すれば,デーモンを再起動せずに,構成ファイル
/etc/binlog.conf
に対する変更を有効にすることができます。
# kill -HUP `cat /var/run/binlogd.pid`
カーネルのバイナリ・イベント・ロガーを設定するには,省略時のキーワードを変更してカーネルを再構築します。 次の設定ができます。
カーネルのバイナリ・イベント・ログ・バッファを,システムに必要な大きさに調節することができます。
バイナリ・イベント・ロガー,およびバイナリ・イベント・ログへのカーネル ASCII メッセージのロギング機能を,使用可能に設定したり,使用不能に設定することができます。
/sys/data/binlog_data.c
ファイルは,バイナリ・イベント・ロガーの設定を定義します。
省略時の設定では,バッファ・サイズは 24 K バイト,バイナリ・イベント・ロギングは使用可能,カーネル ASCII メッセージのロギングは使用不能に設定されます。
設定を変更するには,ファイル内のキーワード
binlog_bufsize
および
binlog_status
の設定を変更します。
binlog_bufsize
キーワードは,バイナリ・イベント・ロガーによって使用されるカーネル・バッファのサイズを指定します。
バッファのサイズは,8 K (8,192) 〜 1 M (1,048,576) バイトが設定可能です。
ワークステーションなどの小規模なシステム構成では,バッファ・サイズが小さくても構いません。
多数のディスクを使用する大規模なサーバ・システムでは,大きいバッファが必要になる場合があります。
binlog_status
キーワードは,バイナリ・イベント・ロガーの動作を指定します。
binlog_status
キーワードには,次の値を指定することができます。
0
(ゼロ)バイナリ・イベント・ロガーを使用不能に設定します。
BINLOG_ON
バイナリ・イベント・ロガーを使用可能に設定します。
BINLOG_ASCIION
バイナリ・イベント・ロガーが使用可能になっている場合に,バイナリ・イベント・ログへのカーネル ASCII メッセージのロギングを可能にします。
この設定は,次のように
BINLOG_ON
とともに指定しなければなりません。
int binlog_status = BINLOG_ON | BINLOG_ASCII;
/sys/data/binlog_data.c
ファイルを変更した後,新しいカーネルを再構築してブートしなければなりません。
12.3 システム・クラッシュ後のイベント・ログの回復
システム・クラッシュ時の未処理のメッセージおよびバイナリ・イベント・ログ・レコードは,システムをリブートすることによって回復することができます。
/etc/syslog.conf
ファイルの
msgbuf.err
エントリで,ダンプ・ファイルから回復されるカーネル syslog メッセージ・バッファ
msgbuf
の記録先を指定します。
カーネル syslog メッセージ・バッファ・ファイルに関する,/etc/syslog.conf
の省略時のファイル・エントリは,次のとおりです。
msgbuf.err /var/adm/crash/msgbuf.savecore
/etc/binlog.conf
ファイルの
dumpfile
エントリで,ダンプ・ファイルから回復されるカーネル・バイナリ・イベント・ログ・バッファの記録先となるファイル名を指定します。
カーネル・バイナリ・イベント・ログ・バッファ・ファイルに関する,/etc/binlog.conf
の省略時のファイル・エントリは,次のとおりです。
dumpfile /usr/adm/crash/binlogdumpfile
クラッシュが発生すると,syslogd
および
binlogd
デーモンは,/dev/klog
および
/dev/kbinlog
特殊ファイルを読み取ることができず,メッセージおよびバイナリ・イベント・レコードの処理ができません。
システムをリブートすると
savecore
コマンドが実行され,ダンプ・ファイルが存在すれば,savecore
コマンドはダンプ・ファイルからカーネル
syslog
メッセージおよびバイナリ・イベント・ログ・バッファを回復します。
savecore
の実行後に,syslogd
および
binlogd
デーモンが起動されます。
syslogd
デーモンは,syslog
メッセージ・バッファ・ファイルを読み取り,そのデータが有効であるかどうかを検査します。
その後,/etc/syslog.conf
ファイル内の情報を使用して
/dev/klog
ファイルからのデータを処理するのと同じ方法で,データを処理します。
binlogd
デーモンは,バイナリ・イベント・ログ・バッファ・ファイルを読み取り,そのデータが有効であるかどうかを検査します。
その後,/etc/binlog.conf
ファイル内の情報を使用して特殊ファイル
/dev/kbinlog
からのデータを処理するのと同じ方法で,データを処理します。
syslogd
および
binlogd
デーモンがバッファ・ファイルの使用を終了すると,このバッファ・ファイルは削除されます。
12.4 ログ・ファイルの管理
管理の行き届いたシステムでは,次の対処が行われているため,ログ・ファイルのサイズが問題になることはありません。
記録するイベントを注意深く選択している。
多数のポストを行うエラー状態のログをモニタリングしている。
重要なイベント・ログを定期的にアーカイブしバックアップしている。
/var/spool/cron/crontabs/root
ファイルには,次のように,ログ・ファイルを管理するためのモデル・エントリが含まれています。
0 2 * * 0 /usr/lbin/logclean /var/adm/wtmp > /dev/null
また,cron
デーモンを使用して,他のログ・ファイルを削除するように指定することもできます。
ただし,ローカル・サイトの要件に応じて,重要なログ・ファイルは保存するかアーカイブしてください。
次の例は,/var/adm/syslog.dated
ディレクトリ内の古いログをクリーンアップする
crontab
ファイル・エントリです。
40 4 * * * find /var/adm/syslog.dated/* -depth -type d -ctime +7 -exec rm -rf {}\;
このエントリにより,/var/adm/syslog.dated
ディレクトリ下のすべてのディレクトリのうち 8 日以上前に作成されたものが,毎日 4 時 40 分にその内容とともに削除されます。
詳細は,第 3 章,および
crontab
(1)12.5 /var/adm/messages 内の起動ログ・メッセージ
格納されるメッセージの数は,ブート・ログ・メッセージを格納するためのメッセージ・バッファの,msgbuf_size
カーネル属性によって制御されるサイズに依存します。
この属性の省略時の最小値は,物理メモリが 128 MB までのシステムでは 8KB です。
物理メモリが 128 MB よりも大きいシステムでは,
msgbuf_size
の値は,1 MB のメモリごとに 64 バイトとして計算され,自動的に設定されます。
たとえば,512 MB のシステムでは,この値は 512 × 64 = 32,768 (32 KB) です。
アダプタやデバイスが多数ある大規模なシステムでは省略時の値では不十分で,/var/adm/messages
ファイルのメッセージが失われることがあります。
デバイスの数が少ない,メモリ容量の大きいシステムでは,この値では大きすぎることがあります。
この場合は,バッファ・スペースを小さくしてメモリを解放できます。
システムのブート・ログ・レコードが不完全な場合や,割り当て値を小さくしてバッファ・スペースを解放したい場合は,次の手順で
msgbuf_size
属性の値を変更します。
コマンド行から
dxkerneltuner
グラフィカル・ユーザ・インタフェースを起動します。
「
generic
」サブシステムを選択して,[サブシステムの選択
] を選択します。
「generic」のラベルの付いた「Subsystem Attributes」ダイアログボックスが表示されます。
「
msgbuf_size
」に,「ブート時の値
」の新しい値を設定します。
[了解
] ボタンをクリックして変更を確定し,ダイアログボックスを閉じます。
メイン・ウィンドウの [オプション
] メニューから「すべてをリセット
」を選択します。
メイン・ウィンドウの [ファイル
] メニューから「終了
」を選択します。
sysconfig
コマンドおよび
sysconfigdb
コマンドを使用してもこの変更を行うことができます (第 4 章を参照)。