監視には、次のツールを利用できます。
immonitor-access は、Messaging Server のコンポーネントやプロセスのステータスを監視します。対象となるコンポーネントやプロセスには、メール配信 (SMTP サーバー)、メッセージアクセスとストア (POP サーバーおよび IMAP サーバー)、ディレクトリサービス (LDAP サーバー)、および HTTP サーバーがあります。このユーティリティーでは、さまざまなサービスの応答時間と、メッセージの送受信にかかるラウンドトリップの総時間を測定します。ディレクトリサービスは、指定のユーザーをディレクトリ内で検索し、応答時間を測定することで監視します。メール配信はメッセージを送信することで (SMTP) 監視し、メッセージアクセスおよびストアはそのメッセージを受信することで監視します。HTTP サーバーの監視は、起動して実行中であるかどうかを調べることだけに制限されます。
詳細な手順は、『Sun Java System Messaging Server 6.3 Administration Reference』の「immonitor-access」を参照してください。
ログやトランザクションを含むデータベースの統計情報を監視するには、imcheck —s を使用します。
このユーティリティーは、さまざまなシステムカウンタから取得した統計情報を提供します。以下は、現在利用できるカウンタオブジェクトのリストです。
それぞれのエントリはカウンタオブジェクトを表し、このオブジェクトに使用できるさまざまなカウントを提供します。この節では、alarm、diskusage、serverresponse、popstat、imapstat、および httpstat カウンタオブジェクトについてのみ説明します。counterutil コマンドの使用法については、『Sun Java System Messaging Server 6.3 Administration Reference』の「counterutil」を参照してください。
counterutil にはさまざまなフラグがあります。このユーティリティーのコマンドの形式は次のとおりです。
counterutil -o CounterObject -i 5 -n 10
各表記の意味は次のとおりです。
-o CounterObject は、カウンタオブジェクト alarm、diskusage、serverresponse、popstat、imapstat、および 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 ... |
これらの警告統計は、stored が送信する警告を指します。警告カウンタは次の統計を提供します。
表 27–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)) です。 |
現在の IMAP、POP、および HTTP 接続の数、ログインに失敗した回数、開始時間か らの接続合計などの情報を得るために、コマンド counterutil -o CounterObject -i 5 -n 10 を使用できます。ここで、CounterObject は、カウンタオブジェクト popstat、imapstat、または httpstat を表します。imapstat サフィックスの意味を表 27–2 に示します。popstat および httpstat オブジェクトは、同じ情報を同じ形式と構造で提供します。
表 27–2 counterutil imapstat 統計
サフィックス |
説明 |
---|---|
currentStartTime |
現在の IMAP サーバープロセスの開始時間です。 |
lastConnectionTime |
最後に新しいクライアントが受け入れられた時間です。 |
maxConnections |
IMAP サーバーが処理した同時接続の最大数です。 |
numConnections |
現在の IMAP サーバーが処理した接続の総数です。 |
numCurrentConnections |
アクティブな接続の現在の数です。 |
numFailedConnections |
現在の IMAP サーバーが処理した失敗した接続の数です。 |
numFailedLogins |
現在の IMAP サーバーが処理した失敗したログインの数です。 |
numGoodLogins |
現在の IMAP サーバーが処理した成功したログインの数です。 |
コマンド counterutil -o diskusage は次の情報を生成します。
表 27–3 counterutil diskstat 統計
サフィックス |
説明 |
---|---|
diskusage.availSpace |
ディスクパーティションで利用できる合計容量です。 |
diskusage.lastStatTime |
最後に統計がとられた時間です。 |
diskusage.mailPartitionPath |
メールパーティションのパスです。 |
diskusage.percentAvail |
利用できるディスクパーティション容量の割合です。 |
diskusage.totalSpace |
ディスクパーティションの合計容量です。 |
コマンド counterutil -o serverresponse は次の情報を生成します。この情報は、サーバーが稼働中かどうかと、サーバーの応答速度をチェックする際に便利です。
表 27–4 counterutil serverresponse 統計
サフィックス |
説明 |
---|---|
http.laststattime |
最後に http サーバー応答がチェックされた時間です。 |
http.responsetime |
http の応答時間です。 |
imap.laststattime |
最後に imap サーバー応答がチェックされた時間です。 |
imap.responsetime |
imap の応答時間です。 |
pop.laststattime |
最後に pop サーバー応答がチェックされた時間です。 |
pop.responsetime |
pop の応答時間です。 |
Messaging Server は、SMTP、IMAP、POP、および HTTP のイベント記録をログに保存します。Messaging Server ログファイルの作成と管理用のポリシーはカスタマイズ可能です。
ログ記録はサーバーのパフォーマンスに影響を与えることがあるため、サーバーに負担がかからないよう、非常に慎重に検討する必要があります。詳細は、第 25 章「ログの管理」を参照してください。
MTA は、アクティブなチャネルのそれぞれに対して、Mail Monitoring MIB (RFC 1566) に基づいてメッセージトラフィックのカウンタを累積します。チャネルカウンタは、使用している電子メールシステムの傾向や調子を示すためのものです。チャネルカウンタは、メッセージトラフィックを正確に計算するためのものではありません。正確な計算については、第 25 章「ログの管理」に記載されている 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 件の送信になります (両方とも同じチャネル経由で届けられる場合を除く)。
通常は、Submitted と Delivered の間の接続はチャネルのタイプによって異なります。たとえば、変換チャネルでは、メッセージはほかの任意のチャネルのキューに入れられ、そのあと変換チャネルがそのメッセージを処理し、それを 3 番目のチャネルのキューに入れ、元のチャネルのキューから取り出されたものとしてメッセージをマークします。個々のメッセージのパスは以下のとおりです。
ほかの場所 -> 変換チャネル E レコード Received 変換チャネル -> ほかの場所 E レコード Submitted 変換チャネル D レコード Delivered
ただし、tcp_local のように「通過」しなくても 2 つの部分 (スレーブとマスター) があるチャネルの場合は、Submitted と Delivered の間の接続はありません。Submitted カウンタが tcp_local チャネルの SMTP サーバー部分を処理する必要があるのに対し、Delivered は tcp_local チャネルの SMTP クライアント部分を処理する必要があります。これらは 2 つのまったく別のプログラムであり、それぞれから送られるメッセージはまったく別のものになることがあります。
SMTP サーバー に送信されるメッセージ
tcp_local -> ほかの場所 E レコード Submitted
SMTP クライアント経由でほかの SMTP ホストに送信されるメッセージ
ほかの場所 -> tcp_local E レコード Received tcp_local D レコード Delivered
チャネルのキューからの取り出し (配信) により、少なくとも 1 つの新しいメッセージがキューに入れられ (送信され) ます。複数になることもあります。たとえば、メッセージが異なるチャネル経由で 2 人の受取人に届けられる場合は、2 つのメッセージがキューに入れられる必要があります。すなわち、メッセージがバウンスされる場合は、差出人にコピーが返送され、もう 1 つのコピーがポストマスターに送信されることがあります。通常は同じチャネル経由で届けられます。
パフォーマンス上の理由から、MTA はメモリー内にチャネルカウンタのキャッシュを保持します。これには、UNIX では共有メモリーセクションを使用し、NT では共有ファイルマッピングオブジェクトを使用します。ノード上のプロセスがメッセージをキューに入れたりキューから取り出すときに、このプロセスがそのメモリー内キャッシュ内のカウンタを更新します。チャネルが作動しているときにメモリー内セクションが存在しない場合、メモリー内セクションは自動的に作成されます (imta start コマンドも、存在しない場合はメモリー内キャッシュを作成)。
imta counters -clear コマンドまたは imta qm コマンドの counters clear は、カウンタをゼロにリセットするために使用することもあります。
imsimta qm counters ユーティリティーは、MTA チャネルのキューメッセージカウンタを表示します。このユーティリティーは、root または mailsrv として実行する必要があります。出力されるフィールドは、「27.8.5 imsimta counters」に記載されているものと同じです。『Sun Java System Messaging Server 6.3 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 を実行する必要があります。
Messaging Server では、SNMP (Simple Network Management Protocol) を利用したシステム監視機能がサポートされています。Sun Net Manager や HP OpenView (本製品には付属していない) などの SNMP クライアント (「ネットワークマネージャー」とも呼ばれる) を使って、Messaging Server の特定の部分を監視することができます。詳細は、付録 A 「SNMP サポート」を参照してください。
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 |
Messaging Server には、各種のシステムサービスを監視するために、watcher と msprobe という 2 つのプロセスが用意されています。watcher は、サーバーのクラッシュを監視し、必要に応じて再起動を行います。msprobe は、サーバーのハングアップ (応答なし) を監視します。特に、msprobe は次の状態を監視します。
サーバー応答時間: msprobe は有効になっているサーバーにそのプロトコルコマンドを使って接続し、応答時間を測定します。応答時間が警告のしきい値を超えると、警告メッセージがサーバーに送信されます (「27.8.9.1 警告メッセージ」を参照)。また、サーバーの応答時間が指定のタイムアウト期間を超えると、サーバーは再起動されます。サーバーの応答時間はカウンタデータベースに記録され、デフォルトのログファイルに記録されます。サーバーの応答時間の統計を表示するには、counterutil を使用します (「27.8.3 counterutil」を参照)。
msprobe によって監視されるサーバーは、imap、pop、http、cert、job_controller、smtp、lmtp、mmp、および ens です。smtp または lmtp が応答しないときは、ディスパッチャーが再起動されます。ens は自動的に再起動できません。
ディスク使用量: msprobe はメッセージストアパーティションごとのディスクの利用度と使用量をチェックします。特に、メッセージストアの mboxlist データベースディレクトリと MTA キューディレクトリをチェックします。ディスク使用量が設定したしきい値を超えると、警告メッセージが送信されます。ディスクのサイズと使用量はカウンタデータベースに記録され、デフォルトのログファイルに記録されます。管理者は、counterutil ユーティリティー (「27.8.3 counterutil」を参照) を使用してディスク使用量の統計を表示できます。
メッセージストアの mboxlist データベースログファイルの累積: ログファイルの累積は、mboxlist データベースのエラーを示しています。msprobe はアクティブなログファイルの数をカウントし、その数がしきい値よりも大きい場合は、重大エラーメッセージを default ログファイルに記録して、管理者にサーバーを再起動することを通知します。autorestart が有効になっている (local.autorestart が yes に設定されている) 場合は、ストアデーモンが再起動されます。
watcher と msprobe は、表 27–5 に示す configutil オプションによって制御されます。詳細は、「4.5 障害が発生したサービスや応答がないサービスの自動再起動」を参照してください。
表 27–5 msprobe および watcher の configutil オプション
オプション |
説明 |
---|---|
サーバーの自動再起動を有効にします。障害の発生したサービスまたはハングアップしたサービスを自動的に再起動します。デフォルト: no |
|
再試行失敗のタイムアウトです。ここに指定した時間内でサーバーに 3 回以上障害が発生すると、システムはサーバーの再起動を試行しなくなります。値 (秒単位で指定) は、msprobe の間隔 (local.schedule.msprobe) よりも長い時間に設定する必要があります。デフォルト: 600 秒 |
|
特定のサーバーが再起動されるまでのタイムアウトです。service は、imap、pop、http、cert、job_controller、smtp、lmtp、mmp、または ens のいずれかになります。 デフォルト: service.readtimeout の値を使用する |
|
警告メッセージが default ログファイルに記録されるまでの特定のサーバーの無応答時間 (秒) です。service は、imap、pop、http、cert、job_controller、smtp、lmtp、mmp、または ens のいずれかになります。 デフォルト: local.probe.warningthreshold |
|
警告メッセージが default ログファイルに記録されるまでのサーバーの無応答時間 (秒) です。 デフォルト: 5 秒 |
|
キューサイズが alarm.diskavail.msgalarmthreshold によって定義されたしきい値を超えているかどうかを確認するための MTA キューディレクトリです。 デフォルト: なし |
|
サーバーを再起動するまでのサーバーの無応答時間です。local.schedule.msprobe を参照してください。 デフォルト: 10 秒 |
|
msprobe の実行スケジュールです。この値は、crontab 形式でスケジュールを示す文字列です (表 20–10 を参照)。デフォルトで自動的に設定されることに注意してください。「4.6.2 定義済みの自動タスク」を参照してください。 無効にするには、local.schedule.msprobe.enable を NO に設定します。 |
|
サービスの障害を監視する watcher を有効にします。対象となるサービスは、IMAP、POP、HTTP、ジョブコントローラ、ディスパッチャー、メッセージストア (stored)、imsched、および MMP です。(LMTP/SMTP サーバーはディスパッチャーによって監視され、LMTP/SMTP クライアントは job_controller によって監視される。)それぞれの障害について、エラーメッセージをデフォルトのログファイルに記録します。デフォルト: オン |
msprobe は、電子メールメッセージの形式で警告をポストマスター (「27.6.1.2 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 コマンドを使用して警告パラメータを設定します。表 27–6 に、有用な警告パラメータとそのデフォルト設定を示します。『Sun Java System Messaging Server 6.3 Administration Reference』の「configutil Parameters」を参照してください。
表 27–6 有用な警告メッセージの configutil パラメータ
パラメータ |
説明 (括弧内はデフォルト) |
---|---|
(localhost) 警告メッセージの送信先のマシンです。 |
|
(25) 警告メッセージの送信時に接続する SMTP ポートです。 |
|
(Postmaster@localhost) 警告通知の送信先です。 |
|
(Postmaster@localhost) 警告の差出人のアドレスです。 |
|
(利用可能なメールパーティションのディスク容量のパーセンテージ) ディスク利用度の警告についての説明フィールドのテキストです。 |
|
(3600) ディスク利用度のチェック間隔 (秒) です。ディスク使用状況をチェックしない場合は、0 に設定します。 |
|
(10) 利用可能なディスク容量の割合です。この値を下回ると警告が送信されます。 |
|
(-1) 利用可能なディスク容量がしきい値 (-1) より低いか、しきい値 (1) より高いときに警告を発行するかどうかを指定します。 |
|
(24) ディスク利用度の警告が繰り返される間隔 (時) です。 |
|
(サーバーの応答時間を表す秒数)。サーバーの応答警告についての説明フィールドのテキストです。 |
|
(600) サーバー応答のチェックの間隔 (秒) です。サーバーの応答を確認しない場合は、0 に設定します。 |
|
(10) サーバー応答時間 (秒) がこの値を超えると、警告が発行されます。 |
|
(1) サーバー応答時間がしきい値より大きい (1) か、しきい値より小さい (-1) ときに、警告を発行するかどうかを指定します。 |
|
(24) サーバー応答警告が繰り返される間隔 (時) です。 |