Instant Messaging は、イベント、各種ソフトウェアコンポーネントの関連ステータス、システムエラーなど、サーバー、マルチプレクサ、カレンダエージェント、ウォッチドッグ、および Instant Messenger に関する情報を記録するためのログファイルを生成します。ログファイルを調査することで、サーバーの処理状況を多角的に監視できます。この節では、ロギングに関する次の事項について説明します。
XMPP/HTTP ゲートウェイ のロギングの詳細は、「XMPP/HTTP ゲートウェイ のロギングの管理」を参照してください。また、Instant Messenger のロギングデータをオンデマンドで収集できます。詳細は、「Instant Messenger のロギングの管理」を参照してください。
Instant Messaging でログファイルを生成する方法として、log4j を使用する方法と、log4j を使用しないで iim.conf のパラメータを指定する方法の 2 つがあります。log4j スタイルのロギングは、リダイレクトサーバー、カレンダエージェント、ウォッチドッグ、XMPP/HTTP ゲートウェイ を含むすべてのサーバーインスタンスに対して使用できますが、マルチプレクサに対しては使用できません。
XMPP/HTTP ゲートウェイ のロギングの詳細は、「XMPP/HTTP ゲートウェイ のロギングの管理」を参照してください。Instant Messenger のロギングの設定については、「Instant Messenger のロギングの管理」を参照してください。
iim.conf のパラメータに基づくロギング機構は、将来のリリースで非推奨になる可能性があります。可能な場合は常に log4j を使用してください。
Instant Messaging サーバー、マルチプレクサ、カレンダエージェント、ウォッチドッグ、および XMPP/HTTP ゲートウェイ のロギングレベルを設定できます。また、log4j を使用する場合、XMPP トラフィックのみに対して個別のログファイルを生成するように Instant Messaging を設定できます。
log4j スタイルのロギングを使用しない場合、通常のシステム保守の一環として、ディスク占有領域が増えすぎないようにログファイルを定期的に確認し、削除する必要があります。そうしないと、ディスク占有量が増加してしまいます。
log4j の詳細については、Apache Logging Services Web サイト を参照してください。
ログファイルの場所は、Instant Messaging のインストール後に configure ユーティリティーを実行するときに指定します。通常、ログファイルは im-runtime-base/log に格納されます。im-runtime-base の場所については、「Instant Messaging サーバーのディレクトリ構造」を参照してください。
配備でログファイル生成に log4j を使用している場合、ロガーは、log4j ログを格納するためのベースディレクトリとして設定時に指定されるディレクトリも使用します。
エラーログの優先順位 (レベル) によって、ログの詳細レベル (冗長度) が決まります。優先レベルが高ければ、詳細レベルは低くなります。なぜなら、優先レベル (重要度) の高いイベントのみがログファイルに記録されるからです。逆に、優先レベルが低ければ、詳細レベルは高くなります。なぜなら、より多くのイベントがログファイルに記録されるからです。
log4j ロギングまたはパラメータに基づくロギングのどちらを使用しているかに関係なく、コンポーネントごとに個別にロギングレベルを設定できます。
表 13–1 は、コンポーネントのロギングレベルの説明です。これらのロギングレベルは、UNIX の syslog 機構で定義されているレベルのサブセットになっています。
表 13–1 Instant Messaging コンポーネントのロギングレベル
レベル |
説明 |
---|---|
FATAL |
この優先レベルでは、最小限のロギング詳細がログファイルに記録されます。重大な問題や緊急事態が発生するたびに、対応するログレコードがログファイルに追加されます。FATAL に該当する問題が発生すると、アプリケーションの実行が停止されることもあります。 |
ERROR |
復旧可能なソフトウェアエラーが発生するか、ネットワーク障害が検出されるたびに、対応するログレコードがログファイルに追加されます。たとえば、サーバーがクライアントや別のサーバーへの接続に失敗した場合などです。 |
WARNING |
ユーザーエラーが検出されるたびに、対応するログレコードがログファイルに追加されます。たとえば、クライアントから送信されてきた通信内容をサーバーが理解できない場合などです。 |
INFO |
主要なアクションが発生するたびに、対応するログレコードがログファイルに追加されます。たとえば、エンドユーザーがログインやログアウトに成功した場合などです。 |
DEBUG |
タスク情報がログファイルに記録されます。この情報はデバッグ時にのみ役立ちます。個々のプロセスまたはタスク内の各イベントとその関連ステップが、ログファイルに書き込まれます。これらの情報は、エンドユーザーがアプリケーションのデバッグ時に問題を特定する際に役立ちます。 |
特定のロギングレベルを選択すると、そのレベルのイベントと、それより高いレベルのイベント (つまり、冗長レベルの低いイベント) がすべてログに記録されます。
デフォルトでは、サーバーのロギングレベルは INFO です。マルチプレクサ、カレンダエージェント、およびウォッチドッグのログファイルに関しては、ERROR がデフォルトレベルです。
log4j を使用していない場合にロギングレベルとして DEBUG を指定すると、ログファイルが占有するディスク領域が増えます。ディスク占有量の増加を防ぐために、ログファイルを監視し、必要に応じてその内容を削除してください。
Instant Messaging をインストールするとき、log4j 設定ファイルのテンプレートファイル (log4j.conf.template) が im-svr-base/lib ディレクトリにインストールされます。インストール後に configure ユーティリティーを実行すると、このテンプレートを使用して、log4j 設定ファイル (log4j.conf) が im-cfg-base ディレクトリに作成されます。この設定ファイルは、log4j によって生成されるログファイルの格納場所、各種のコンポーネントに対して使用するロギングレベル、出力構文、生成するログファイルの種類を決定するために使用されます。
この節では、log4j ロガーを使用した Instant Messaging のログファイル生成について次の各項で説明します。
「Instant Messaging コンポーネントのロギングレベル」で説明したロギングレベルは、log4j ロガーによって使用されます。
log4j の詳細と、サイズ、バックアップ数などの各種ログファイルの設定手順については、Apache Logging Services Web サイト を参照してください。
log4j 設定ファイル (log4j.conf ) の場所を変更するには、iim.conf の iim.log4j.config パラメータを変更します。このパラメータの値を指定しない場合、ロガーは im-cfg-base からファイルを探します。そのディレクトリに log4j 設定ファイルが見つからない場合、ロガーは iim.conf のロギングパラメータを使用して、log4j スタイルではないログを生成します。
im-cfg-base の場所については、「Instant Messaging サーバーのディレクトリ構造」を参照してください。
configure ユーティリティーは、log4j 設定ファイルテンプレート (log4j.conf.template) の内容に基づいて、log4j 設定ファイル (log4j.conf ) を生成します。例 13–1 に log4j テンプレートを示します。テンプレートの内容は次のとおりです。
${logdir} は、ログファイルの格納場所として設定時に指定したディレクトリに対応します。「Instant Messaging ログファイルの場所」を参照してください。
各コンポーネントのログ設定セクションは、次のテキストで始まります。
log4j.logger. |
説明:
サーバーのロギング情報が出力される xmppd.log を生成します。
ウォッチドッグの情報が出力される wd.log を生成します。
XMPP トラフィックに関する情報のみが出力される xfer.log を生成します。
カレンダエージェントのロギング情報を生成します。
Jabber ストリームオブジェクトに関する情報が出力される jso.log を生成します。Jabber Stream Objects Web サイトを参照してください。
リダイレクトデータベース作成ツールに関する情報が出力される genredirect.log を生成します。
A# (例: A1) はアペンダ ID です。
log4j.logger.xmppd=INFO, A1 # DEFAULT TO RollingFileAppender log4j.appender.A1=org.apache.log4j.RollingFileAppender log4j.appender.A1.file=${logdir}/xmppd.log log4j.appender.A1.append=true log4j.appender.A1.maxBackupIndex=7 log4j.appender.A1.maxFileSize=5mb # More example appenders.. # Straight to console.. # log4j.appender.A1=org.apache.log4j.ConsoleAppender # log4j.appender.A1.ImmediateFlush=true # Rollover at midnight.. # log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender # log4j.appender.A1.DatePattern='.'yyyy-MM-dd # log4j.appender.A1.file=${logdir}/xmppd.log # log4j.appender.A1.ImmediateFlush=true # log4j.appender.A1.append=true # Send to SMTP.. # log4j.appender.A1=org.apache.log4j.SMTPAppender # PATTERN LAYOUT AND OPTIONS # DEFAULT TO PatternLayout log4j.appender.A1.layout=org.apache.log4j.PatternLayout # For full dates.. log4j.appender.A1.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n # IM traditional output format.. #log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p %c [%t] %m%n # More example layouts # XMLLayout for chainsaw consumption # log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout # TTCCLayout for NDC information # log4j.appender.A1.layout=org.apache.log4j.xml.TTCCLayout # log4j.appender.A1.layout.DateFormat=ISO8601 # log4j.appender.A1.layout.TimeZoneID=GMT-8:00 # log4j.appender.A1.layout.CategoryPrefixing=false # log4j.appender.A1.layout.ThreadPrinting=false # log4j.appender.A1.layout.ContextPrinting=false # Now we list logger/appender/layout for the other default loggers, but # only the defaults.. log4j.logger.iim_wd=ERROR, A2 log4j.appender.A2=org.apache.log4j.RollingFileAppender log4j.appender.A2.file=${logdir}/iim_wd.log log4j.appender.A2.append=true log4j.appender.A2.maxBackupIndex=7 log4j.appender.A2.maxFileSize=5mb log4j.appender.A2.layout=org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n # For separate xmpp traffic log, disabled by default. log4j.logger.xmppd.xfer=DEBUG, A3 log4j.appender.A3=org.apache.log4j.varia.NullAppender # Select next block instead of previous line to enable separate transfer log # log4j.appender.A3=org.apache.log4j.RollingFileAppender # log4j.appender.A3.file=${logdir}/xfer.log # log4j.appender.A3.append=true # log4j.appender.A3.maxBackupIndex=7 # log4j.appender.A3.maxFileSize=5mb # log4j.appender.A3.layout=org.apache.log4j.PatternLayout # # Note, simpler default output than above 3 loggers: # log4j.appender.A3.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n log4j.logger.agent-calendar=ERROR, A4 log4j.appender.A4=org.apache.log4j.RollingFileAppender log4j.appender.A4.file=${logdir}/agent-calendar.log log4j.appender.A4.append=true log4j.appender.A4.maxBackupIndex=7 log4j.appender.A4.maxFileSize=5mb log4j.appender.A4.layout=org.apache.log4j.PatternLayout log4j.appender.A4.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n log4j.logger.net.outer_planes.jso.BasicStream=OFF, A5 log4j.appender.A5=org.apache.log4j.RollingFileAppender log4j.appender.A5.file=${logdir}/jso.log log4j.appender.A5.append=true log4j.appender.A5.maxBackupIndex=7 log4j.appender.A5.maxFileSize=5mb log4j.appender.A5.layout=org.apache.log4j.PatternLayout log4j.appender.A5.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n log4j.logger.genredirect=INFO, A6 log4j.appender.A6=org.apache.log4j.RollingFileAppender log4j.appender.A6.file=${logdir}/genredirect.log log4j.appender.A6.append=true log4j.appender.A6.maxBackupIndex=7 log4j.appender.A6.maxFileSize=5mb log4j.appender.A6.layout=org.apache.log4j.PatternLayout log4j.appender.A6.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n |
log4j ロガーは、iim.conf のパラメータに基づくロギング機構に関して 「Instant Messaging コンポーネントのロギングレベル」で説明したものと同じロギングレベルを使用します。
iim.conf を開きます。
このファイルの場所については、「iim.conf ファイルの場所」を参照してください。
iim.log4j.config パラメータに、ロガーが log4j.conf を探すパスを設定します。
たとえば、Solaris 上では次のようにします。
iim.log4j.config=/etc/opt/SUNWiim/default/config/log4j.conf |
Linux 上では次のようにします。
iim.log4j.config=/etc/opt/sun/im/default/config/log4j.conf |
iim.conf を保存して閉じます。
サーバーを更新します。
imadmin refresh |
デフォルトでは、ロギング情報が生成されるすべてのコンポーネントで log4j ロギングが使用されます。
log4j ロギングを無効にするには、log4j.conf および log4j.conf.template の両方で、コンポーネントのロギングレベルを OFF に設定します。
詳細は、「Instant Messaging の log4j ログレベルを設定する」を参照してください。
log4j ロギングを有効にするには、log4j.conf および log4j.conf.template の両方で、コンポーネントのロギングレベルを OFF 以外の任意のロギングレベルに設定します。
テンプレートファイルまたはログ設定ファイルのどちらかを変更することによって、ログレベルを設定できます。ただし、設定ファイルのみを変更した場合、行なった変更は、次に configure ユーティリティーを実行したときにすべて上書きされます。これを防ぐために、設定ファイルとテンプレートの両方に変更を行うようにしてください。
log4j.conf.template を開きます。
デフォルトでは、このファイルは次の場所に格納されています。
im-svr-base/lib |
コンポーネントごとに、使用するロギングレベルを指定します。
たとえば、次のようにしてサーバーのログレベルを設定します。
log4j.logger.xmppd=log-level |
log-level は、FATAL、ERROR、WARNING、INFO、または DEBUG のいずれかです。
これらの各ロギングレベルの詳細については、表 13–1 を参照してください。
log4j.conf.template を保存して閉じます。
設定ファイル log4j.conf に対しても同じ手順を繰り返します。
テンプレートファイルまたはログ設定ファイルのどちらかを変更することによって、ログファイルサイズを設定できます。ただし、設定ファイルのみを変更する場合、行なった変更は、次に configure ユーティリティーを実行したときにすべて上書きされます。これを防ぐために、設定ファイルとテンプレートの両方に変更を行うようにしてください。
log4j.conf.template を開きます。
デフォルトでは、このファイルは次の場所に格納されています。
im-svr-base/lib |
コンポーネントごとに、コンポーネントのログファイルの最大サイズを指定します。
たとえば、サーバーログファイルのサイズを設定するには、次のようにします。
log4j.appender.A1.maxFileSize=max-logfile-size |
A1 はサーバーのデフォルトアペンダ ID、max-logfile-size は M バイト単位のサイズ (例: 5MB) です。
設定ファイル log4j.conf に対しても同じ手順を繰り返します。
ログファイルの生成に log4j を使用していない場合、Instant Messaging がロギング情報を生成する対象の各コンポーネントに固有の設定パラメータを設定する必要があります。Instant Messaging では、この方法をパラメータに基づくロギングと呼びます。リダイレクトサーバー、マルチプレクサ、カレンダエージェント、ウォッチドッグを含むすべてのサーバーインスタンスに対して、パラメータに基づくロギングを使用できます。
iim.conf のパラメータに基づくこのロギング機構は、将来のリリースで非推奨になる可能性があります。可能な場合は log4j を使用してください。
表 13–2 は、Instant Messaging の各コンポーネントのログファイル名と、ロギングレベルの設定に使用する iim.conf 内の設定パラメータの一覧です。
表 13–2 Instant Messaging コンポーネントのログファイル名とロギングレベル設定パラメータ
コンポーネント |
ログファイル名 |
ロギングレベル設定パラメータ |
---|---|---|
サーバー |
xmppd.log |
iim.log.iim_server.severity |
マルチプレクサ |
mux.log |
iim.log.iim_mux.severity |
カレンダエージェント |
agent-calendar.log |
iim.log.agent-calendar.severity |
ウォッチドッグ |
iim_wd.log |
iim.log.iim_wd.severity |
設定パラメータに設定可能な値は、次のとおりです。
fatal
error
warning
info
debug
各ロギングレベルでログに記録される情報の詳細は、「Instant Messaging コンポーネントのロギングレベル」を参照してください。
また、Sun JavaTM System Access Manager を使用する配備でのロギング設定は、com.iplanet.services.debug.level プロパティーによって決定されます。このプロパティーは、Sun Java System Access Manager ホスト上の AMConfig.properties ファイルで設定します。デフォルトでは、このファイルは次の場所にインストールされています。
AM-svr-base/lib/AMConfig.properties
AM-svr-base は、Access Manager をインストールしたディレクトリです。
このプロパティーに設定可能な値は、次のとおりです。
message
warning
error
off
デフォルトでは、Sun Java System Portal Server のデスクトップログファイル (desktop.debug) とアーカイブログファイル (IMArchiveSearch.log および IMArchiveSubmit.log) は次の場所に格納されます。
Solaris の場合: /var/opt/SUNWam/debug
Linux の場合: /var/opt/sun/am/debug
iim.conf 内のロギングパラメータを変更します。
各コンポーネントのログファイルと、設定が必要な関連パラメータの一覧は、表 13–2 を参照してください。
iim.conf の場所、およびこのファイルを変更する手順については、「iim.conf ファイルの構文」を参照してください。ウォッチドッグの詳細については、「ウォッチドッグプロセスの管理」を参照してください。カレンダエージェントの詳細については、第 16 章「カレンダのポップアップリマインダの使用」を参照してください。
デフォルトでは、Instant Messenger のデータはログに記録されません。サポートへの問い合わせ時に、クライアントデータの収集を依頼される場合があります。その場合、クライアントのログデータを参照できるようにするために、ロギングを有効にする必要があります。
Instant Messenger のログはオンデマンドで作成され、ユーザーのホームディレクトリに格納されます (usr_home/.sunmsgr/messenger.log)。
Instant Messenger のロギングを設定するには、次のことを行う必要があります。
収集するデータの種類を決定します。
im.jnlp を変更して、logconfig パラメータを含めます。
収集するデータの種類に基づいて、logconfig パラメータの型を指定します。
リソースファイルを再配備します。
im.jnlp のバックアップコピーを作成します。
Instant Messenger リソースファイルの im.jnlp をテキストエディタで開きます。
次の行を探します。
<application-desc main-class="com.iplanet.im.client.iIM"> |
セクションの末尾に次の引数を追加します。
<argument>logconfig=type</argument> |
type は、ALL、API、XMPPTRAFFIC、CLIENT のいずれかです。詳細は、「Instant Messenger ログファイルの内容オプション」を参照してください。
im.jnlp ファイルを保存して閉じます。
Sun Java System Application Server または Sun Java System Web Server を使用している場合、「リソースファイルの再配備」での説明に従ってリソースファイルを再配備します。
Instant Messenger を再起動します。
ログファイルを探します。
デフォルトでは、ログファイルは usr_home/.sunmsgr/messenger.log という名前で格納されます。
Instant Messenger のトラブルシューティングが終了したら、im.jnlp のバックアップコピーから元のファイルを復元することをお勧めします。その後、「リソースファイルの再配備」の説明に従ってリソースファイルを再配備します。
デフォルトでは、Instant Messenger のログファイルは messenger.log という名前でユーザーのホームディレクトリ下に格納されます。次に例を示します。
/usr_home/.sunmsgr/messenger.log |
im.jnlp 内の logconfig パラメータの値を指定することにより、どのアクティビティーのログを messenger.log に記録するかを決定できます。表 13–3 は、logconfig の設定パラメータの説明です。logconfig パラメータの設定および Instant Messenger ログの生成の手順については、「Instant Messenger のロギングを有効にする」を参照してください。
表 13–3 messenger.log の Instant Messaging ロギングオプション
logconfig の値 |
messenger.log への出力内容 |
ALL |
API に関する情報、クライアントとサーバーの間のすべてのトラフィック、Instant Messaging クライアントアプリケーション自体のデバッグ情報 |
API |
API 情報のみ |
XMPPTRAFFIC |
クライアントからサーバーへの通信のみ |
CLIENT |
クライアントアプリケーション (Instant Messenger) の詳細のみ |