Sun Java System Messaging Server 6 2005Q4 管理ガイド

監視用のユーティリティーとツール

監視には、次のツールを利用できます。

immonitor-access

immonitor-access は、Messaging Server のコンポーネントやプロセスのステータスを監視します。対象となるコンポーネントやプロセスには、メール配信 (SMTP サーバー)、メッセージアクセスとストア (POP サーバーおよび IMAP サーバー)、ディレクトリサービス (LDAP サーバー)、および HTTP サーバーがあります。このユーティリティーでは、さまざまなサービスの応答時間と、メッセージの送受信にかかるラウンドトリップの総時間を測定します。ディレクトリサービスは、指定のユーザーをディレクトリ内で検索し、応答時間を測定することで監視します。メール配信はメッセージを送信することで (SMTP) 監視し、メッセージアクセスおよびストアはそのメッセージを受信することで監視します。HTTP サーバーの監視は、起動して実行中であるかどうかを調べることだけに制限されます。

詳細な手順は、『Sun Java System Messaging Server 6 2005Q4 Administration Reference』「immonitor-access」を参照してください。

stored

stored ユーティリティーはサーバー上で保守タスクを実行し、監視も実行できます。ただし、監視タスクは msprobe で行うことをお勧めします。「msprobe および watcher 関数を使用した監視」を参照してください。

counterutil

このユーティリティーは、さまざまなシステムカウンタから取得した統計情報を提供します。以下は、現在利用できるカウンタオブジェクトのリストです。


# /opt/SUNWmsgsr/sbin/counterutil -l
Listing registry (/opt/SUNWmsgsr/data/counter/counter)
numobjects = 11
refcount = 1
created = 25/Sep/2003:02:04:55 -0700
modified = 02/Oct/2003:22:48:55 -0700
     entry = alarm 
     entry = diskusage
     entry = serverresponse
     entry = db_lock 
     entry = db_log
     entry = db_mpool
     entry = db_txn
     entry = imapstat
     entry = httpstat
     entry = popstat
     entry = cgimsg

それぞれのエントリはカウンタオブジェクトを表し、このオブジェクトに使用できるさまざまなカウントを提供します。この節では、alarmdiskusageserverresponsedb_lockpopstatimapstat、および httpstat カウンタオブジェクトについてのみ説明します。counterutil コマンドの使用法については、『Sun Java System Messaging Server 6 2005Q4 Administration Reference』「counterutil」を参照してください。

counterutil の出力

counterutil にはさまざまなフラグがあります。このユーティリティーのコマンドの形式は次のとおりです。

counterutil -o CounterObject -i 5 -n 10

ここで、

-o CounterObject は、カウンタオブジェクト alarmdiskusageserverresponsedb_lockpopstatimapstat、および httpstat を表します。

-i 5 は、5 秒の間隔を指定します。

-n 10 は、反復回数 (デフォルト: 無限) を表します。

counterutil の使用例を以下に示します。


# counterutil -o imapstat -i 5 -n 10 
Monitor counteroobject (imapstat) 
registry /gotmail/iplanet/server5/msg-gotmail/counter/counter opened 
counterobject imapstat opened 

count = 1 at 972082466 rh = 0xc0990 oh = 0xc0968 

global.currentStartTime [4 bytes]: 17/Oct/2000:12:44:23 -0700 
global.lastConnectionTime [4 bytes]: 20/Oct/2000:15:53:37 -0700 
global.maxConnections [4 bytes]: 69 
global.numConnections [4 bytes]: 12480 
global.numCurrentConnections [4 bytes]: 48 
global.numFailedConnections [4 bytes]: 0 
global.numFailedLogins [4 bytes]: 15 
global.numGoodLogins [4 bytes]: 10446 
...

counterutil を使用した警告統計

これらの警告統計は、stored が送信する警告を指します。警告カウンタは次の統計を提供します。

表 23–1 counterutil alarm 統計

サフィックス 

説明 

alarm.countoverthreshold

しきい値を超えた回数です。 

alarm.countwarningsent

送信された警告の数です。 

alarm.current

現在の監視値です。 

alarm.high

これまでに記録された最高値です。 

alarm.low

これまでに記録された最低値です。 

alarm.timelastset

最後に現在の値が設定された時間です。 

alarm.timelastwarning

最後に警告が送信された時間です。 

alarm.timereset

最後にリセットが行われた時間です。 

alarm.timestatechanged

最後に警告状態が変わった時間です。 

alarm.warningstate

警告状態 (yes(1) または no(0)) です。 

counterutil を使用した IMAP、POP、および HTTP 接続の統計

現在の IMAP、POP、および HTTP 接続の数、ログインに失敗した回数、開始時間か らの接続合計などの情報を得るために、コマンド counterutil -o CounterObject -i 5 -n 10 を使用できます。ここで、CounterObject は、カウンタオブジェクト popstatimapstat、または httpstat を表します。imapstat サフィックスの意味を表 23–2 に示します。popstat および httpstat オブジェクトは、同じ情報を同じ形式と構造で提供します。

表 23–2 counterutil imapstat 統計

サフィックス 

説明 

currentStartTime

現在の IMAP サーバープロセスの開始時間です。 

lastConnectionTime

最後に新しいクライアントが受け入れられた時間です。 

maxConnections

IMAP サーバーが処理した同時接続の最大数です。 

numConnections

現在の IMAP サーバーが処理した接続の総数です。 

numCurrentConnections

アクティブな接続の現在の数です。 

numFailedConnections

現在の IMAP サーバーが処理した失敗した接続の数です。 

numFailedLogins

現在の IMAP サーバーが処理した失敗したログインの数です。 

numGoodLogins

現在の IMAP サーバーが処理した成功したログインの数です。 

counterutil を使用したディスク使用状況の統計

コマンドcounterutil -o diskusage は次の情報を生成します。

表 23–3 counterutil diskstat 統計

サフィックス 

説明 

diskusage.availSpace

ディスクパーティションで利用できる合計容量です。 

diskusage.lastStatTime

最後に統計がとられた時間です。 

diskusage.mailPartitionPath

メールパーティションのパスです。 

diskusage.percentAvail

利用できるディスクパーティション容量の割合です。 

diskusage.totalSpace

ディスクパーティションの合計容量です。 

サーバー応答の統計

コマンドcounterutil -o serverresponse は次の情報を生成します。この情報は、サーバーが稼働中かどうかと、サーバーの応答速度をチェックする際に便利です。

表 23–4 counterutil serverresponse 統計

サフィックス 

説明 

http.laststattime

最後に http サーバー応答がチェックされた時間です。 

http.responsetime

http の応答時間です。 

imap.laststattime

最後に imap サーバー応答がチェックされた時間です。 

imap.responsetime

imap の応答時間です。 

pop.laststattime

最後に pop サーバー応答がチェックされた時間です。 

pop.responsetime

pop の応答時間です。 

ldap_host1_389.laststattime

最後に ldap_host1_389 サーバー応答がチェックされた時間です。 

ldap_host1_389.responsetime

ldap_host1_389 の応答時間です。 

ugldap_host2_389.laststattime

最後に ugldap_host2_389 サーバー応答がチェックされた時間です。 

ugldap_host2_389.responsetime

ugldap_host2_389 の応答時間です。 

ログファイル

Messaging Server は、SMTP、IMAP、POP、および HTTP のイベント記録をログに保存します。Messaging Server ログファイルの作成と管理用のポリシーはカスタマイズ可能です。

ログ記録はサーバーのパフォーマンスに影響を与えることがあるため、サーバーに負担がかからないよう、非常に慎重に検討する必要があります。詳細は、第 21 章「ログの管理」を参照してください。

imsimta counters

MTA は、アクティブなチャネルのそれぞれに対して、Mail Monitoring MIB (RFC 1566) に基づいてメッセージトラフィックのカウンタを累積します。チャネルカウンタは、使用している電子メールシステムの傾向や調子を示すためのものです。チャネルカウンタは、メッセージトラフィックを正確に計算するためのものではありません。正確な計算については、第 21 章「ログの管理」に記載されている MTA ログを参照してください。

MTA チャネルカウンタは、利用可能な最軽量メカニズムを使用して実装されるため、実際の操作での影響はわずかです。チャネルカウンタはさらに処理を行おうとはしません。つまり、セクションのマッピングの試行が失敗した場合やセクション内のロックの 1 つをほぼ即座に取得できない場合は、情報が記録されず、システムが停止している場合は、メモリ内セクションに含まれている情報は永久に失われます。

imsimta counters -show コマンドによって MTA チャネルメッセージの統計が得られます (以下を参照 )。最小値が何も示されないときは、これらのカウンタを調べる必要があります。チャネルによっては、実際の最小値は負の値です。負の値は、カウンタがゼロになった (たとえば、カウンタのクラスタレベルのデータベースが作成された) 時点でチャネルのキューに入れられたメッセージがあることを示します。これらのメッセージがキューから取り出されるとき、関連するチャネルのカウンタは減少し、それによって最小値が負になります。このようなカウンタの場合、正確な「絶対」値は、初期化以降にカウンタが保持していた最小値を差し引いた現在の値です。


Channel          Messages    Recipients    Blocks 
-------          --------    ----------    ------- 
tcp_local
   Received       29379       79714      982252                (1)
   Stored            61         113       -2004                (2)
   Delivered      29369       79723      983903 (29369 first time)  (3)
   Submitted      13698       13699       18261                (4)
   Attempted          0           0           0                (5)
   Rejected           1          10           0                (6)
   Failed           104         104        4681                (7)

   Queue time/count        16425/29440 = 0.56                  (8)
   Queue first time/count  16425/29440 = 0.56                  (9)

   Total In Assocs           297637
   Total Out Assocs           28306

1) Received は、tcp_local という名前のチャネルのキューに入れられたメッセージの数です。つまり、ほかのチャネルによって tcp_local チャネルのキューに入れられたメッセージ (mail.log* ファイル内の E レコード) です。

2) Stored は、チャネルキューに保存された配信されるメッセージの数です。

3) Delivered は、チャネル tcp_local によって処理された (キューから取り出された ) メッセージの数です ( つまり、mail.log* ファイル内の D レコード)。キューからの取り出しとは、正常な配信 (別のチャネルのキューに入れること) か、またはメッセージが差出人に戻ってきたためにキューから取り出すことのいずれかを指します。通常これは、Received の数から Stored の数を引いた数に相当します。

MTA は、最初の試行でキューから取り出されたメッセージ数も記録します。

4) Submitted は、チャネル tcp_local によって別のチャネルのキューに入れられたメッセージ (mail.log ファイル内の E レコード) の数です。

5) Attempted は、キューから取り出す際に一時的な問題が発生したメッセージ (mail.log* ファイル内の Q または Z レコード) の数です。

6) Rejected は、拒否されたキューからの取り出し試行 (mail.log* ファイル内の J レコード) の数です。

7) Failed は、失敗したキューからの取り出し試行 (mail.log* ファイル内の R レコード) の数です。

8) Queue time/count は、配信されるメッセージがキューに入っていた時間の平均時間です。これは、最初の試行で配信されたメッセージ ((9) を参照) と、追加の配信試行が必要になった (通常はそのためにキューの中で長い間待機している) メッセージの両方が対象になっています。

9) Queue first time/count は、最初の試行で配信されたメッセージがキューに入っていた時間の平均時間です。

送信されたメッセージの数が配信されたメッセージの数より大きくなっていることに注意してください。この原因のほとんどは、メッセージがチャネルのキューから取り出される (配信される) たびに少なくとも 1 つ (場合によっては複数) の新しいメッセージがキューに入れられる (送信される) ためです。たとえば、メッセージが異なるチャネル経由で 2 人の受取人に届けられる場合は、2 つのメッセージがキューに入れられる必要があります。すなわち、メッセージがバウンスされる場合は、差出人にコピーが返送され、もう 1 つのコピーがポストマスターに送信されることがあります。通常は 2 件の送信になります (両方とも同じチャネル経由で届けられる場合を除く)。

通常は、SubmittedDelivered の間の接続はチャネルのタイプによって異なります。たとえば、変換チャネルでは、メッセージはほかの任意のチャネルのキューに入れられ、そのあと変換チャネルがそのメッセージを処理し、それを 3 番目のチャネルのキューに入れ、元のチャネルのキューから取り出されたものとしてメッセージをマークします。個々のメッセージのパスは以下のとおりです。

ほかの場所 -> 変換チャネル E レコード Received
変換チャネル -> ほかの場所 E レコード Submitted
変換チャネル              D レコード Delivered

ただし、tcp_local のように「通過」しなくても 2 つの部分 (スレーブとマスター) があるチャネルの場合は、SubmittedDelivered の間の接続はありません。Submitted カウンタが tcp_local チャネルの SMTP サーバー部分を処理する必要があるのに対し、Deliveredtcp_local チャネルの SMTP クライアント部分を処理する必要があります。これらは 2 つのまったく別のプログラムであり、それぞれから送られるメッセージはまったく別のものになることがあります。

SMTP サーバー に送信されるメッセージ

tcp_local -> ほかの場所 E レコード Submitted

SMTP クライアント経由でほかの SMTP ホストに送信されるメッセージ

ほかの場所 -> tcp_local E レコード Received
tcp_local              D レコード Delivered

チャネルのキューからの取り出し (配信) により、少なくとも 1 つの新しいメッセージがキューに入れられ (送信され) ます。複数になることもあります。たとえば、メッセージが異なるチャネル経由で 2 人の受取人に届けられる場合は、2 つのメッセージがキューに入れられる必要があります。すなわち、メッセージがバウンスされる場合は、差出人にコピーが返送され、もう 1 つのコピーがポストマスターに送信されることがあります。通常は同じチャネル経由で届けられます。

UNIX および NT での実装

パフォーマンス上の理由から、MTA はメモリ内にチャネルカウンタのキャッシュを保持します。これには、UNIX では共有メモリセクションを使用し、NT では共有ファイルマッピングオブジェクトを使用します。ノード上のプロセスがメッセージをキューに入れたりキューから取り出すときに、このプロセスがそのメモリ内キャッシュ内のカウンタを更新します。チャネルが作動しているときにメモリ内セクションが存在しない場合、メモリ内セクションは自動的に作成されます (imta start コマンドも、存在しない場合はメモリ内キャッシュを作成)。

imta counters -clear コマンドまたは imta qm コマンドの counters clear は、カウンタをゼロにリセットするために使用することもあります。

imsimta qm counters

imsimta qm counters ユーティリティーは、MTA チャネルのキューメッセージカウンタを表示します。このユーティリティーは、root または inetuser として実行する必要があります。出力されるフィールドは、「imsimta counters」に記載されているものと同じです。『Sun Java System Messaging Server 6 2005Q4 Administration Reference』「imsimta counters」も参照してください。

次に例を示します。


# imsimta counters -create
# imsimta qm counters show
Channel                Messages   Recipients Blocks
---------------------- ---------- ---------- ----------
tcp_intranet
   Received              13077      13859     264616 
   Stored                   92         91       -362 
   Delivered             12985      13768     264978 
   Submitted              2594       2594       3641
...

MTA を再起動するたびに、# imsimta counters -create を実行する必要があります。

SNMP を使用した MTA の監視

Messaging Server では、SNMP (Simple Network Management Protocol) を利用したシステム監視機能がサポートされています。Sun Net Manager や (本製品には付属していない) HP OpenView などの SNMP クライアント (「ネットワークマネージャー」とも呼ばれる) を使って、Messaging Server の特定の部分を監視することができます。詳細は、付録 A 「SNMP サポート」を参照してください。

メールボックスの制限容量チェックのための imquotacheck

imquotacheck ユーティリティーを使用して、メールボックスの制限容量の使用状況と制限を監視することができます。imquotacheck ユーティリティーは、定義された制限容量を一覧表示し、制限容量の使用状況に関する情報を提供するレポートを生成します。

たとえば次のコマンドでは、全ユーザーの制限容量に関する情報を一覧表示します。


% imquotacheck 
-------------------------------------------------------------------------
Domain red.siroe.com (diskquota = not set msgquota = not set) quota usage
-------------------------------------------------------------------------
diskquota         size(K)    %use    msgquota      msgs    %use    user
# of domains = 1
# of users = 705

no quota          50418             no quota      4392             ajonk
no quota              5             no quota      2                andrt
no quota         355518             no quota      2500             ansri
 ...

次の例では、ユーザー sorook の制限容量の使用状況を示します。


% imquotacheck -u sorook
-------------------------------------------------------------------------
quota usage for user sorook
-------------------------------------------------------------------------
diskquota      size(K)    %use    msgquota      msgs     %use    user

no quota       1487               no quota      305              sorook

msprobe および watcher 関数を使用した監視

Messaging Server には、各種のシステムサービスを監視するために、watchermsprobe という 2 つのプロセスが用意されています。watcher は、サーバーのクラッシュを監視し、必要に応じて再起動を行います。msprobe は、サーバーのハングアップ (応答なし) を監視します。特に、msprobe は次の状態を監視します。

watchermsprobe は、表 23–5 に示す configutil オプションによって制御されます。詳細は、「障害が発生したサービスや応答がないサービスの自動再起動」を参照してください。

表 23–5 msprobe および watcher の configutil オプション

オプション 

説明 

local.autorestart

サーバーの自動再起動を有効にします。障害の発生したサービスまたはハングアップしたサービスを自動的に再起動します。デフォルト: いいえ 

local.autorestart.timeout

再試行失敗のタイムアウトです。ここに指定した時間内でサーバーに 3 回以上障害が発生すると、システムはサーバーの再起動を試行しなくなります。値 (秒単位で指定) は、msprobe の間隔 (local.schedule.msprobe) よりも長い時間に設定する必要があります。デフォルト: 600 秒

local.probe.service.timeout

特定のサーバーが再起動されるまでのタイムアウトです。service は、imap、pop、http、cert、job_controller、smtp、lmtp、mmp、または ens のいずれかになります。

デフォルト: service.readtimeout の値を使用する

local.probe.service.warningthreshold

警告メッセージが default ログファイルに記録されるまでの特定のサーバーの無応答時間 (秒) です。service は、imap、pop、http、cert、job_controller、smtp、lmtp、mmp、または ens のいずれかになります。

デフォルト: local.probe.warningthreshold 

local.probe.warningthreshold

警告メッセージが default ログファイルに記録されるまでのサーバーの無応答時間 (秒) です。

デフォルト: 5 秒 

local.queuedir

キューサイズが alarm.diskavail.msgalarmthreshold によって定義されたしきい値を超えているかどうかを確認するための MTA キューディレクトリです。 

デフォルト: なし 

service.readtimeout

サーバーを再起動するまでのサーバーの無応答時間です。local.schedule.msprobe を参照してください。 

デフォルト: 10 秒 

local.schedule.msprobe

msprobe の実行スケジュールです。この値は、crontab 形式でスケジュールを示す文字列です (表 18–10 を参照)。

local.watcher.enable

サービスの障害を監視する watcher を有効にします。対象となるサービスは、IMAP、POP、HTTP、ジョブコントローラ、ディスパッチャー、メッセージストア (stored)、imsched、および MMP です。(LMTP/SMTP サーバーはディスパッチャーによって監視され、LMTP/SMTP クライアントは job_controller によって監視される。)それぞれの障害について、エラーメッセージをデフォルトのログファイルに記録します。デフォルト: on

警告メッセージ

msprobe は、電子メールメッセージの形式で警告をポストマスター (「imapd、popd、および httpd を監視するには」を参照) に送信して、指定された状態を警告します。一定のしきい値を超えたときに送信される電子メール警告のサンプルを以下に示します。


Subject:    ALARM: server response time in seconds of “ldap_siroe.com_389” is 10
Date:    Tue, 17 Jul 2001 16:37:08 -0700 (PDT) 
From:    postmaster@siroe.com 
To:     postmaster@siroe.com 

Server instance: /opt/SUNWmsgsr
Alarmid: serverresponse 
Instance: ldap_siroe_europa.com_389 
Description: server response time in seconds 
Current measured value (17/Jul/2001:16:37:08 -0700): 10 
Lowest recorded value: 0 
Highest recorded value: 10 
Monitoring interval: 600 seconds 
Alarm condition is when over threshold of 10 
Number of times over threshold: 1

            

msprobe でディスクおよびサーバーのパフォーマンスを監視する頻度と、どのような状況下で警告を送るかを指定することができます。このためには、configutil コマンドを使用して警告パラメータを設定します。表 23–6 に、有用な警告パラメータとそのデフォルト設定を示します。『Sun Java System Messaging Server 6 2005Q4 Administration Reference』「configutil Parameters」を参照してください。

表 23–6 有用な警告メッセージの configutil パラメータ

パラメータ 

説明 (括弧内はデフォルト) 

alarm.msgalarmnoticehost

(localhost) 警告メッセージの送信先のマシンです。 

alarm.msgalarmnoticeport

(25) 警告メッセージの送信時に接続する SMTP ポートです。 

alarm.msgalarmnoticercpt

(Postmaster@localhost) 警告通知の送信先です。 

alarm.msgalarmnoticesender

(Postmaster@localhost) 警告の差出人のアドレスです。 

alarm.diskavail.msgalarmdescription

(利用可能なメールパーティションのディスク容量のパーセンテージ) ディスク利用度の警告についての説明フィールドのテキストです。 

alarm.diskavail.msgalarmstatinterval

(3600) ディスク利用度のチェック間隔 (秒) です。ディスク使用状況をチェックしない場合は、0 に設定します。 

alarm.diskavail.msgalarmthreshold

(10) 利用可能なディスク容量の割合です。この値を下回ると警告が送信されます。 

alarm.diskavail.msgalarmthresholddirection

(-1) 利用可能なディスク容量がしきい値 (-1) より低いか、しきい値 (1) より高いときに警告を発行するかどうかを指定します。 

alarm.diskavail.msgalarmwarninginterval

(24) ディスク利用度の警告が繰り返される間隔 (時) です。 

alarm.serverresponse.msgalarmdescription

(サーバーの応答時間を表す秒数)。サーバーの応答警告についての説明フィールドのテキストです。 

alarm.serverresponse.msgalarmstatinterval

(600) サーバー応答のチェックの間隔 (秒) です。サーバーの応答を確認しない場合は、0 に設定します。 

alarm.serverresponse.msgalarmthreshold

(10) サーバー応答時間 (秒) がこの値を超えると、警告が発行されます。 

alarm.serverresponse.msgalarmthresholddirection

(1) サーバー応答時間がしきい値より大きい (1) か、しきい値より小さい (-1) ときに、警告を発行するかどうかを指定します。 

alarm.serverresponse.msgalarmwarninginterval

(24) サーバー応答警告が繰り返される間隔 (時) です。