12    基本システム・イベント・チャネルの管理

この章では,システム・イベントのロギング方法と,基本システム・イベント・ロギング・チャネルの構成方法について説明します。 また,ログ・ファイルの管理についても説明します。

この章では,次の事項について説明します。

12.1    基本イベント・ロギング機能

本オペレーティング・システムでは,次の 3 つの基本的なメカニズムを使用してシステム・イベントのログを取ります。

syslogd および binlogd により検出され記録されるイベントは,Event Manager,DECevent,またはエラー報告フォーマッタ uerf を使用して参照することができます。

システム・イベントの管理方法としては,Event Manager をお勧めします。 Event Manager の構成方法についての詳細は,第 13 章を参照してください。 Event Manager ビューア evmviewer には,システム・イベントの選択,フィルタ処理,表示を行うためのグラフィカル・ユーザ・インタフェースがあります。 詳細は,リファレンス・ページの EVM(5) および evmviewer(8) を参照してください。

システム・イベントは,バイナリ形式で返されることがよくあります。 このようなイベントを読み取り可能なテキスト形式で表現するには,次のような変換ツールを使う必要があります。

イベント・ロギング機能で作成されるログ・ファイルは保護されており,所有者は 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]
 

  1. 変換されたログ内のイベントの数です。 この数値はイベントの選択またはフィルタリングに基づいていることがあります。 [例に戻る]

  2. オペレーティング・システム ([OS]) とシステム・アーキテクチャを示す文字列です。 [例に戻る]

  3. イベントの発生時間を示すタイムスタンプ (日付とシステム・クロックの時刻) と発生したシステムの名前 (<host name>) です。 [例に戻る]

  4. イベントの有効性,重大度,タイプについての情報です。 この例では,システムがシャットダウンされたという,情報的なメッセージです。 [例に戻る]

  5. イベントによって実際に記録されたメッセージです。 イベントの発生時に端末またはコンソールにも表示されていることがあります。 [例に戻る]

DECevent ユーティリティの管理についての詳細は,次のドキュメントを参照してください。

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 ファイルの各エントリは次の情報を表します。

  1. メッセージを生成するシステムの一部であるファシリティ [例に戻る]

  2. 重大度

    syslogd デーモンは,指定された重大度以上のメッセージはすべて記録します。 たとえば err レベルを指定すると,レベル errcritalertemergpanic のすべてのメッセージのログが作成されます。 [例に戻る]

  3. メッセージを記録する場所

    ログ・ファイルまたは,/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

認証システムによって生成されるメッセージ (loginsugetty など)。

lpr

ライン・プリンタ・スプーリング・システムによって生成されるメッセージ (lprlpclpd など)。

local0local1local7

ローカルでの使用のために確保されている。

mark

20 分ごとに優先順位 info のメッセージを受け取る。 メッセージを受け取る間隔を変更する場合は,syslogd -m コマンドを使用する。

msgbuf

システム・クラッシュから回復したカーネル syslog メッセージ・バッファ。 savecore コマンドと syslogd デーモンは,msgbuf ファシリティを使用して,システム・イベント・メッセージをクラッシュから回復する。

*

システムのすべての部分で生成されるメッセージ。

重大度

次の重大度を指定することができます。 重大度の高い順にリストしてあります。

emerg または panic

パニック状態。 このメッセージはすべてのユーザにブロードキャストできる。

alert

システム・データベースが破壊された場合など,ただちに修復しなければならない状態。

crit

ハード・デバイス・エラーなどのクリティカルな状態。

err

エラー・メッセージ。

warning または warn

警告メッセージ。

notice

エラー状態ではないが,特殊なケースとして扱われる状態。

info

情報メッセージ。

debug

プログラムのデバッグに使用する情報を含んでいるメッセージ。

none

特定のファシリティのメッセージを使用不能にするメカニズム。

記録先

次のメッセージ記録先を指定することができます。

絶対パス名

指定されたファイルにメッセージを追加する。 個々のファシリティのメッセージの宛先として,それぞれ別々のファイルを指定する必要がある。 たとえば,kern.logmail.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

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+

  1. 各行エントリの最初の部分は,カーネルの kern のように,メッセージを生成するファシリティを指定します。 アスタリスク (*) は,ファシリティをすべて選択することを示します。 この例では,*.emerg により,優先順位が緊急のメッセージがすべて Event Manager に転送されます。

    ファシリティに対するエントリを作成するか,既存のエントリを削除することで,転送されるイベントが選択できます。 エントリは,12.2.1.1 項のファシリティの表のキーワードに基づいています。 [例に戻る]

  2. 各エントリの 2 番目の部分は,12.2.1.1 項の重大度レベルの表のキーワードに基づくメッセージ優先順位を示します。 [例に戻る]

  3. 番号記号 (#) を前に付けてコメントを付加できます。 ただし,転送エントリとコメントを同じ行に混在させることはできません。 [例に戻る]

  4. 優先順位に正符号 (+) を付けると,指定した優先順位とそれ以上の優先順位を持つメッセージが転送されます。 1 つのファシリティでの警告,クリティカル,緊急などの重大度を個別に選択したい場合は,それぞれの優先順位に対して 1 行を記述します。 [例に戻る]

イベントは,sys.unix.syslog.facility という Event Manager 名でポストされます。

詳細は, syslog_evm.conf(4) および 第 13 章を参照してください。

12.2.1.3    binlog.conf ファイルの編集

省略時の設定以外の構成ファイルを binlogd デーモンに使用させる場合は,ファイル名を指定して binlogd -fconfig_file コマンドを実行します。 binlogd デーモンは,すべてのイベントを Event Manager へ転送します。 第 13 章の説明のように,Event Manager ユーティリティを使用すると binlog イベントのフィルタ処理と選択ができます。

binlogd イベントをリモート・ホストに送ることができます。 リモート・ロギング・オプションの詳細は, binlogd(8) を参照してください。 特に,リモート・アクセス用の inet ポートの作成を制御する -R と -r には注意してください。

/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 つのフィールドがあります。

  1. イベントを生成しているシステムの部分を示すイベント・クラス・コード。 [例に戻る]

  2. イベントの重大度。 イベント・クラスとして dumpfile を指定する場合,重大度は指定できない。 [例に戻る]

  3. バイナリ・イベント・レコードの記録先。 [例に戻る]

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 メッセージを転送するように他のホストを構成する場合は,次の手順を実行してください。

  1. su コマンドを使用してスーパユーザ (root) になります。

  2. テキスト・エディタを使用して /etc/syslog.auth ファイルを作成します。

  3. ローカル・システムの /etc/syslog.auth ファイルへの syslog メッセージの転送を許可するリモート・ホストの名前を追加します。 このホスト名は,次の基準を満たさなければなりません。

  4. /etc/syslog.auth の所有者を root にします。

    # chown root /etc/syslog.auth
    

  5. /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 デーモンは,次のものからメッセージを読み取ります。

他のプログラムからのメッセージは,openlogsyslog,および 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`
 

12.2.4.2    binlogd デーモン

init プログラムが binlogd デーモンを必ず起動するように設定しなければなりません。 binlogd デーモンが起動されない場合,または binlogd デーモンを起動するコマンドにオプションを指定する場合は,/sbin/init.d/binlog ファイルを編集し,binlogd コマンド行を追加または変更しなければなりません。 このコマンドは,手動でも起動できます。 binlogd コマンドは,次のオプションをサポートしています。

/usr/sbin/syslogd [-d] [-f config_file] [ -r | -R ]

コマンド・オプションについては, binlogd(8) を参照してください。

binlogd デーモンは,次のものからバイナリ・イベント・レコードを読み取ります。

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`
 

12.2.5    カーネルのバイナリ・イベント・ロガーの設定

カーネルのバイナリ・イベント・ロガーを設定するには,省略時のキーワードを変更してカーネルを再構築します。 次の設定ができます。

/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 属性の値を変更します。

  1. コマンド行から dxkerneltuner グラフィカル・ユーザ・インタフェースを起動します。

  2. generic」サブシステムを選択して,[サブシステムの選択] を選択します。 「generic」のラベルの付いた「Subsystem Attributes」ダイアログボックスが表示されます。

  3. msgbuf_size」に,「ブート時の値」の新しい値を設定します。

  4. [了解] ボタンをクリックして変更を確定し,ダイアログボックスを閉じます。

  5. メイン・ウィンドウの [オプション] メニューから「すべてをリセット」を選択します。

  6. メイン・ウィンドウの [ファイル] メニューから「終了」を選択します。

sysconfig コマンドおよび sysconfigdb コマンドを使用してもこの変更を行うことができます (第 4 章を参照)。