Sun Java System Instant Messaging 7.2 管理ガイド

第 13 章 Instant Messaging のロギングの管理

Instant Messaging は、イベント、各種ソフトウェアコンポーネントの関連ステータス、システムエラーなど、サーバー、マルチプレクサ、カレンダエージェント、ウォッチドッグ、および Instant Messenger に関する情報を記録するためのログファイルを生成します。ログファイルを調査することで、サーバーの処理状況を多角的に監視できます。この節では、ロギングに関する次の事項について説明します。

XMPP/HTTP ゲートウェイ のロギングの詳細は、「XMPP/HTTP ゲートウェイ のロギングの管理」を参照してください。また、Instant Messenger のロギングデータをオンデマンドで収集できます。詳細は、「Instant Messenger のロギングの管理」を参照してください。

Instant Messaging ロギングの概要

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 ログファイルの場所

ログファイルの場所は、Instant Messaging のインストール後に configure ユーティリティーを実行するときに指定します。通常、ログファイルは im-runtime-base/log に格納されます。im-runtime-base の場所については、「Instant Messaging サーバーのディレクトリ構造」を参照してください。

配備でログファイル生成に log4j を使用している場合、ロガーは、log4j ログを格納するためのベースディレクトリとして設定時に指定されるディレクトリも使用します。

Instant Messaging コンポーネントのロギングレベル

エラーログの優先順位 (レベル) によって、ログの詳細レベル (冗長度) が決まります。優先レベルが高ければ、詳細レベルは低くなります。なぜなら、優先レベル (重要度) の高いイベントのみがログファイルに記録されるからです。逆に、優先レベルが低ければ、詳細レベルは高くなります。なぜなら、より多くのイベントがログファイルに記録されるからです。

log4j ロギングまたはパラメータに基づくロギングのどちらを使用しているかに関係なく、コンポーネントごとに個別にロギングレベルを設定できます。

表 13–1 は、コンポーネントのロギングレベルの説明です。これらのロギングレベルは、UNIX の syslog 機構で定義されているレベルのサブセットになっています。

表 13–1 Instant Messaging コンポーネントのロギングレベル

レベル 

説明 

FATAL

この優先レベルでは、最小限のロギング詳細がログファイルに記録されます。重大な問題や緊急事態が発生するたびに、対応するログレコードがログファイルに追加されます。FATAL に該当する問題が発生すると、アプリケーションの実行が停止されることもあります。 

ERROR

復旧可能なソフトウェアエラーが発生するか、ネットワーク障害が検出されるたびに、対応するログレコードがログファイルに追加されます。たとえば、サーバーがクライアントや別のサーバーへの接続に失敗した場合などです。 

WARNING

ユーザーエラーが検出されるたびに、対応するログレコードがログファイルに追加されます。たとえば、クライアントから送信されてきた通信内容をサーバーが理解できない場合などです。 

INFO

主要なアクションが発生するたびに、対応するログレコードがログファイルに追加されます。たとえば、エンドユーザーがログインやログアウトに成功した場合などです。 

DEBUG

タスク情報がログファイルに記録されます。この情報はデバッグ時にのみ役立ちます。個々のプロセスまたはタスク内の各イベントとその関連ステップが、ログファイルに書き込まれます。これらの情報は、エンドユーザーがアプリケーションのデバッグ時に問題を特定する際に役立ちます。 

特定のロギングレベルを選択すると、そのレベルのイベントと、それより高いレベルのイベント (つまり、冗長レベルの低いイベント) がすべてログに記録されます。

デフォルトでは、サーバーのロギングレベルは INFO です。マルチプレクサ、カレンダエージェント、およびウォッチドッグのログファイルに関しては、ERROR がデフォルトレベルです。


注 –

log4j を使用していない場合にロギングレベルとして DEBUG を指定すると、ログファイルが占有するディスク領域が増えます。ディスク占有量の増加を防ぐために、ログファイルを監視し、必要に応じてその内容を削除してください。


log4j による Instant Messaging ロギングの管理

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 サイト を参照してください。

Instant Messaging log4j 設定ファイル (log4j.conf) の場所

log4j 設定ファイル (log4j.conf ) の場所を変更するには、iim.confiim.log4j.config パラメータを変更します。このパラメータの値を指定しない場合、ロガーは im-cfg-base からファイルを探します。そのディレクトリに log4j 設定ファイルが見つからない場合、ロガーは iim.conf のロギングパラメータを使用して、log4j スタイルではないログを生成します。

im-cfg-base の場所については、「Instant Messaging サーバーのディレクトリ構造」を参照してください。

Instant Messaging log4j ログファイルの構文

configure ユーティリティーは、log4j 設定ファイルテンプレート (log4j.conf.template) の内容に基づいて、log4j 設定ファイル (log4j.conf ) を生成します。例 13–1 に log4j テンプレートを示します。テンプレートの内容は次のとおりです。


例 13–1 log4j テンプレートファイル


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

Instant Messaging コンポーネントの log4j ログレベル

log4j ロガーは、iim.conf のパラメータに基づくロギング機構に関して 「Instant Messaging コンポーネントのロギングレベル」で説明したものと同じロギングレベルを使用します。

Procedurelog4j 設定ファイル (Log4j.conf) の場所を指定する

  1. iim.conf を開きます。

    このファイルの場所については、iim.conf ファイルの場所」を参照してください。

  2. 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
    
  3. iim.conf を保存して閉じます。

  4. サーバーを更新します。


    imadmin refresh
    

ProcedureInstant Messaging コンポーネントの log4j ロギングを有効または無効にする

デフォルトでは、ロギング情報が生成されるすべてのコンポーネントで log4j ロギングが使用されます。

  1. log4j ロギングを無効にするには、log4j.conf および log4j.conf.template の両方で、コンポーネントのロギングレベルを OFF に設定します。

    詳細は、「Instant Messaging の log4j ログレベルを設定する」を参照してください。

  2. log4j ロギングを有効にするには、log4j.conf および log4j.conf.template の両方で、コンポーネントのロギングレベルを OFF 以外の任意のロギングレベルに設定します。

ProcedureInstant Messaging の log4j ログレベルを設定する

テンプレートファイルまたはログ設定ファイルのどちらかを変更することによって、ログレベルを設定できます。ただし、設定ファイルのみを変更した場合、行なった変更は、次に configure ユーティリティーを実行したときにすべて上書きされます。これを防ぐために、設定ファイルとテンプレートの両方に変更を行うようにしてください。

  1. log4j.conf.template を開きます。

    デフォルトでは、このファイルは次の場所に格納されています。


    im-svr-base/lib
  2. コンポーネントごとに、使用するロギングレベルを指定します。

    たとえば、次のようにしてサーバーのログレベルを設定します。


    log4j.logger.xmppd=log-level
    

    log-level は、FATALERRORWARNINGINFO、または DEBUG のいずれかです。

    これらの各ロギングレベルの詳細については、表 13–1 を参照してください。

  3. log4j.conf.template を保存して閉じます。

  4. 設定ファイル log4j.conf に対しても同じ手順を繰り返します。

ProcedureInstant Messaging コンポーネントの最大 log4j ログファイルサイズを指定する

テンプレートファイルまたはログ設定ファイルのどちらかを変更することによって、ログファイルサイズを設定できます。ただし、設定ファイルのみを変更する場合、行なった変更は、次に configure ユーティリティーを実行したときにすべて上書きされます。これを防ぐために、設定ファイルとテンプレートの両方に変更を行うようにしてください。

  1. log4j.conf.template を開きます。

    デフォルトでは、このファイルは次の場所に格納されています。


    im-svr-base/lib
  2. コンポーネントごとに、コンポーネントのログファイルの最大サイズを指定します。

    たとえば、サーバーログファイルのサイズを設定するには、次のようにします。


    log4j.appender.A1.maxFileSize=max-logfile-size
    

    A1 はサーバーのデフォルトアペンダ ID、max-logfile-size は M バイト単位のサイズ (例: 5MB) です。

  3. 設定ファイル log4j.conf に対しても同じ手順を繰り返します。

iim.conf のパラメータによる Instant Messaging コンポーネントのロギング設定

ログファイルの生成に 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

設定パラメータに設定可能な値は、次のとおりです。

各ロギングレベルでログに記録される情報の詳細は、「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 をインストールしたディレクトリです。

このプロパティーに設定可能な値は、次のとおりです。

デフォルトでは、Sun Java System Portal Server のデスクトップログファイル (desktop.debug) とアーカイブログファイル (IMArchiveSearch.log および IMArchiveSubmit.log) は次の場所に格納されます。

Procedureiim.conf のパラメータを使用して Instant Messaging コンポーネントのログレベルを設定する

  1. iim.conf 内のロギングパラメータを変更します。

    各コンポーネントのログファイルと、設定が必要な関連パラメータの一覧は、表 13–2 を参照してください。

    iim.conf の場所、およびこのファイルを変更する手順については、iim.conf ファイルの構文」を参照してください。ウォッチドッグの詳細については、「ウォッチドッグプロセスの管理」を参照してください。カレンダエージェントの詳細については、第 16 章「カレンダのポップアップリマインダの使用」を参照してください。

Instant Messenger のロギングの管理

デフォルトでは、Instant Messenger のデータはログに記録されません。サポートへの問い合わせ時に、クライアントデータの収集を依頼される場合があります。その場合、クライアントのログデータを参照できるようにするために、ロギングを有効にする必要があります。

Instant Messenger のログはオンデマンドで作成され、ユーザーのホームディレクトリに格納されます (usr_home/.sunmsgr/messenger.log)。

Instant Messenger のロギングの設定

Instant Messenger のロギングを設定するには、次のことを行う必要があります。

  1. 収集するデータの種類を決定します。

  2. im.jnlp を変更して、logconfig パラメータを含めます。

  3. 収集するデータの種類に基づいて、logconfig パラメータの型を指定します。

  4. リソースファイルを再配備します。

ProcedureInstant Messenger のロギングを有効にする

  1. im.jnlp のバックアップコピーを作成します。

  2. Instant Messenger リソースファイルの im.jnlp をテキストエディタで開きます。

  3. 次の行を探します。


    <application-desc main-class="com.iplanet.im.client.iIM">
  4. セクションの末尾に次の引数を追加します。


    <argument>logconfig=type</argument>
    

    type は、ALLAPIXMPPTRAFFICCLIENT のいずれかです。詳細は、「Instant Messenger ログファイルの内容オプション」を参照してください。

  5. im.jnlp ファイルを保存して閉じます。

  6. Sun Java System Application Server または Sun Java System Web Server を使用している場合、「リソースファイルの再配備」での説明に従ってリソースファイルを再配備します。

  7. Instant Messenger を再起動します。

  8. ログファイルを探します。

    デフォルトでは、ログファイルは usr_home/.sunmsgr/messenger.log という名前で格納されます。

次の手順

Instant Messenger のトラブルシューティングが終了したら、im.jnlp のバックアップコピーから元のファイルを復元することをお勧めします。その後、「リソースファイルの再配備」の説明に従ってリソースファイルを再配備します。

Instant Messenger ログファイル (messenger.log) の場所

デフォルトでは、Instant Messenger のログファイルは messenger.log という名前でユーザーのホームディレクトリ下に格納されます。次に例を示します。


/usr_home/.sunmsgr/messenger.log

Instant Messenger ログファイルの内容オプション

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) の詳細のみ