IBM Lotus Sametime を使用した可用性、パフォーマンス、インフラストラクチャーなどのモニター

ご使用になっている IBM Lotus Sametime 環境の状態を正しく把握する方法を考えたことがありますか。ユーザーの観点から、機能とパフォーマンスの両面で Lotus Sametime をモニターする方法を理解しましょう。この記事では、システム管理者が Lotus Sametime のユーザー・エクスペリエンスを把握し、障害の削減、より迅速な問題対応、およびカスタマー・エクスペリエンスの改善に役立つ、簡単かつ軽量でプロアクティブなツールについて説明します。このツールはモニター機能を持つだけでなく、デバッグ・コレクションを支援し、問題の再現やデータ収集に関するユーザーの負担を軽減します。Lotus Sametime IM、ユーザーの在席確認、ユーザーのログイン、およびユーザー名検索の検証をネットワーク検証と組み合わせることにより、かつてないほど完全な形でユーザー・エクスペリエンスの状況をつかめるようになりました。

James Dewan, Premium Support Manager, IBM

Jim Dewan is a Premium Support Manager for IBM Lotus with Verizon, currently designing a series of tools and bots to help his customers monitor and debug their Lotus deployment. With ten years of Lotus Domino server development experience, Jim's previous role was as a Project Lead in the Lotus Domino administration team. Jim was also the Technical Lead for the Lotus Domino Linux on Systemz effort, specializing in application development, toolkits, and enterprise data accessibility.



2011年 8月 05日

はじめに

ご使用の環境で何が起きているのかをユーザーの観点から知りたくはありませんか。ユーザーの機能が利用できない状況を把握する必要がありませんか。機能的な特性だけでなく、ユーザーが直面するパフォーマンスについても理解する必要はありませんか。この記事では、これらのニーズを容易に対処できるよう新たに設計されたフレームワークについて説明します。

本書には、簡単に設定できる 3 つの既存プラグインの説明や、軽量でシンプルなツールを使用して独自のモニターを作成する方法などが記載されています。これらのモニターは、プロアクティブな本番用モニタリング、問題の特定、およびユーザー・パフォーマンスのモニタリングに役立つだけでなく、本番前のテスト環境ツールとしても有用です。この記事では、このツールの迅速なインストールと設定の方法を解説します。また、追加モニターの作成方法の習得やそれを実行することで得られる価値についても詳述します。コードの例もこの記事で取り上げています。

IBM Lotus Sametime のボット (BOT) として実装された Watchit ツールは、Lotus Sametime に振り向けられた既存投資を活用しています。また、簡単に拡張ができ、ユーザー・シミュレーションのニーズに合ったプラグインを追加することができます。Watchit は Lotus Sametime の機能に投資するためのプロアクティブなフレームワークを提供し、既存のソフトウェアやネットワーク・リソースのより良い管理とモニターを可能にします。Watchit は、ユーザー定義のパフォーマンスしきい値を超えたとき、ネットワーク・リソースが利用できなくなったとき、または重要なユーザー機能に障害が発生したときにアラートを通知するのに、Lotus Sametime のインスタント・メッセージング機能を使用します。

既存のプラグインを組み合わせて使用することにより、Lotus Sametime のユーザー・エクスペリエンスに関し、必要な実態を細部にわたって把握することができます。この実態を把握することにより、ヘルプ・デスク、ユーザー・サポート、技術サポートのリソースに頼るよりも、これらのシンプルなツールを使用した方が時間とコストの節約になることが理解できるはずです。

このフレームワークが、以下の実行にどのように役立つのかを理解してください。

  • 問題解決の時間短縮
  • プロアクティブな問題発見
  • 新しい設定とコード変更に関する、よりよい方法での検証

Lotus Sametime に振り向けた既存投資を最大限に活用してください。このツールが組織にどのような価値をもたらすのかを検証してください。


Lotus Sametime を最大限に活用する

オンライン・ミーティングやインスタント・メッセージングからユニファイド・コミュニケーションに至るまで、Lotus Sametime は組織をより緊密に結び付け、対話性を高めます。Lotus Sametime は、ユーザーとアプリケーションおよびユーザー同士の対話方法を変えることができます。Lotus Sametime API ツールキットを使用すると、本番環境でエラーなどの障害が発生したときに、既存のミッション・クリティカルなアプリケーションがシステム管理者や開発チームとプロアクティブに連絡を取れるようにすることができます。

Lotus Sametime のもう 1 つの活用方法は、ミッション・クリティカルなタスク (SIP またはゲートウェイ接続を介した Lotus Sametime での通信、ネットワーク可用性の確認、名前検索、製品ツールキット API で提供される機能など) を実行するシンプルなアプリケーションの作成です。Lotus Sametime ツールキットのこの機能を使用して、パフォーマンスや機能が一定の基準に達しないときにアラートを通知することができます。製品 API を使用したアプリケーションの作成は新しい概念ではありませんが、ユーザーからの苦情がヘルプ・デスクに殺到する前に、インスタント・コミュニケーションを使用して管理チームに問題への注意を促すことができれば、有用性が高まります。問題の事前把握は、停止時間を最小限に抑え、ヘルプ・デスクやテクニカル・サポートの十分とはいえないリソースにかかる負担を軽減するのに役立つ手段となりえます。Lotus Sametime インスタント・メッセージングの価値は、これらのモニターを本番環境のプロアクティブな目や耳として作成したときに明らかになります。この種のアプリケーションは 24 時間休むことなく稼働し、バグの収集と発生した問題の報告を行い、問題を繰り返し再現するのをいとわないことから、究極のユーザーになります。

なぜ、このツールなのか

Watchit ツールは、環境のより適切な管理を目的として、プロアクティブなモニター・プラグインを効率よく構築するのに必要なサービスをすべて提供します。また、すぐに使える 3 つのプラグインも用意されているので、すぐに作業を開始できます。すでに、障害発生時やパフォーマンス低下時に Lotus Sametime インスタント・メッセージングを使ってシステム管理者に通知するという既存のプラグインの価値については確認済みですので、独自プラグインの作成によってこのツールを拡張することが簡単なことは確かであり、またその価値は明白です。

Watchit ツールは、ユーザーの観点から機能とパフォーマンスのモニタリングを行うモニターに対して、シンプルなフレームワークを提供します。システム管理者がユーザー・エクスペリエンスを把握するのは困難な場合がありえるため、ユーザーは、パフォーマンスや機能の障害に関するデータを収集するのは時間がかかる作業だと思うかもしれません。このツールは、ユーザーの観点から見た問題について、システム管理者が最も多くの情報を得られるよう設計されています。システム管理者は環境のバックエンドについてはいろいろと把握していますが、このツールはシステム管理者にクライアント・エクスペリエンスに関する洞察を与えるものです。ユーザーからヘルプ・デスクに問題が報告されるのを待つのに比べると、これのアプローチはより速く、より効率的で、より簡単です。インスタント・メッセージングの機能は、ユーザーの代わりにトラブル・チケットをオープンし、問題解決に至るまでのすべての作業を実行するのに使用されます。

ツールキットを使用して、ユーザー環境を監視する機能を素早く開発する

さまざまな環境をサポートする担当者が、常にユーザー・エクスペリエンスの状態を把握しておくことは重要です。アプリケーション自体から収集された情報は、ユーザーが体験する全体的なエクスペリエンスの 1 側面に過ぎません。インスタント・メッセージングの機能に基づいて構築されたこのツールの目的は、パフォーマンスと機能の障害を監視し、適切なサポート・チームにそれを報告することです。問題を報告してきたユーザーから収集された情報は、量が少ないうえに限定的なことがしばしばあります。これらのアプリケーション (および、開発された任意のツール) から収集された情報は正確で、具体的なタイムライン、パフォーマンスと応答時間のデータ、および障害メッセージなどが含まれます。障害に関するこのデータを使うと、たいていの場合、どの程度迅速に問題を解決できるのかを判断できます。Watchit ツールを使用すれば、ユーザーに影響を与えずに、それをすべて実行できるということです。問題に遭遇し、トラブル・チケットをオープンするユーザーに代わり、システム管理者が問題に関するアラートを即座に受け、トラブル・チケットがオープンされるよりもずっと前に、適切な対策を講じることもできます。

モニター・プラグインを組み合わせて最大の利点を引き出す

特定のタスクや機能に関して情報を収集することは有益なことですが、プラグイン・データを組み合わせることにより、ユーザーでも提供できない見通しを提供することができます。たとえば、外部コミュニティー間でSIP またはゲートウェイ通信が行われているかの確認は役に立つことですが、ネットワーク自体のパフォーマンス特性を理解することも有益なことです。ネットワーク・チェッカー・プラグイン (healthcheck) と Lotus Sametime IM/在席確認プラグイン (awarecheck) については、以下で説明します。この 2 つのプラグインのデータを組み合わせることにより、問題について、ユーザーが説明しようとするよりも多くのことを明らかにできます。ネットワーク・パフォーマンスやその不安定な状態は、Lotus Sametime の問題やパフォーマンスの問題につながります。データを組み合わせることにより、このプロアクティブなツールを用いて環境を明確に把握できるだけでなく、インスタント・メッセージングを直接的な手段として活用し、現在の問題をトラブルシューティングするための情報を配布することができます。

この種の包括的なデータは、アプリケーション自体により処理されたロギングと組み合わされたときに、環境に関するクライアントおよびサーバーの双方の見通しを提供します。このデータは問題の診断に役立つだけでなく、与えられた状況を理解できる、アプリケーションの所有者やサポート・チームに送信することができます。このデータはすべて、停止時間の短縮、ユーザーへの影響の低減、および問題の早期解決につながります。


Lotus Sametime の Watchit ボット

Watchit ツールは、より優れた方法で、ソフトウェア・デプロイメントのテスト、デバッグ、モニターを行うフレームワークです。このツールには、インスタント・メッセージング・テクノロジーと、結合させたロギング・アクティビティーを組み込むための使いやすいクラスが用意されています。また、すぐに使える 3 つのプラグインを標準装備しており、このツールはソフトウェア・デプロイメントの管理およびサポートを行う上で重要な役割を果たします。(後述するように) 追加プラグインを作成することもできますが、既存の 3 つのプラグインにより、ユーザー・エクスペリエンスを把握するアプローチに一層プロアクティブに取り組めるようなインスタント機能が提供されます。

Watchit ツールには現在、既存のカスタム・モニター・プラグインが 3 つ装備されています。どのプラグインも単独でも、組み合わせても使用することができます。

  • Healthcheck は、ネットワーク・ホスト/ポート接続のテストとモニタリングを実行するコンポーネントです。
  • Awarecheck は、シミュレートされたインスタント・メッセージングと在席確認、解決の検証、およびモニタリングを処理します。
  • Siponewaycheck は、シミュレートされたインスタント・メッセージングと在席確認、解決の検証、モニタリング、および既存の ping ボットを用いた外部コミュニティーへの通信用接続を処理します。

Watchit ボットは watchit.properties ファイルを読み込んで、実行するプラグインを指定します。

Plugin_Classes=healthchecker,awarecheck,siponewaycheck

この例では、3 つのプラグインをすべて同時に実行できます。

Healthcheck プラグイン

このプラグインはネットワーク・チェッカーと呼ばれ、プロパティー・ファイルで指定されたホストまたはポートに対し、ネットワーク・ソケットのオープン・オペレーションを実行します。ネットワークの任意の場所で発生するネットワーク障害またはパフォーマンス障害をモニターするために使用されます。プラグインから返される情報により、ネットワーク・パフォーマンス (ソケット接続応答時間) に関する洞察と、ネットワーク障害の理由コードを得られます。

入力ファイルを提供するタスクを実行し、リソースのカテゴリー分類を容易にするために、プロパティー・ファイルのフォーマットは、リストに記載されたホストごとに同じポートを繰り返し指定するという要件を付けずに設計されました。入力ファイルの [Ports] セクションの下にあるポート設定は、[Domino]、[Sametime]、[MUX]、[SIP]、[Quickplace] といった特定のサーバー・カテゴリー用のポートを指定する場所です。このアプローチにより、healthcheck がそれぞれのタイプを調べ、ポート・リストを使用して必要な各ポートをチェックすることができるようになります。入力ファイルの例をリスト 1 に示します。

カテゴリーに容易に分類できない固有のポートを持つサーバー用または入力用に、汎用の [Hosts] カテゴリーを使用して個々のホストとポートを同時に指定できます。[Hosts] セクションでは、ホスト名および IP アドレスのどちらも有効です。

ネットワークのパフォーマンスを測定するには、「Socket_Timeout=x」を追加します。「x」 は、ソケット・オープン・オペレーションが成功するまでに許される時間をミリ秒で示したものです。このしきい値を超えると、アラートが通知リストに送信されます。

ボット・トランザクションの詳細な出力を表示するには、healthcheck.properties ファイルで「Debug=true」を使用します。

リスト 1. healthcheck.properties 入力ファイルの例
[Ports]
Sametime_Ports=1352,80,8081,8082,1533,999
Domino_Ports=1352,80
Quickplace_Ports=1352,80,389
Mux_Ports=1533,8082
Sip_Ports=5060,5061
[Sametime]
serverst04.company.com
serverst05.company.com
serverst06.company.com
[SIP]
serversp01.company.com
[Quickplace]
serverqp01.company.com
serverqp02.company.com
[MUX]
servermx1.company.com
servermx2.company.com
[Hosts]
host1.company.com;80,8081
host2.company.com;99,443,1024
[Options]
Check_Interval=60
Socket_Timeout=5000

必要な Lotus Sametime サーバーおよびログイン情報は、IMEasy.properties ファイルに格納されています。このファイルには、Watchit ボットがアラートを送信するための Lotus Sametime ユーザー情報が含まれています。このファイルにより、時間の経過にともなって変化する Lotus Sametime データからツールを分離できます。IMEasy.properties ファイルの例については、リスト 2 を参照してください。アラート機能を無効にする (そして、ログ出力だけを行う) には、IMEasy.properties ファイルを削除します。

リスト 2. IMEasy.properties ファイルの例
#Sametime_Notification_Users=User abbreviated name(s) separated by comma
Sametime_Notification_Users=Jim Dewan/ORG1/ORG2/Company

#Sametime_Notification_Server=Individual Sametime server or load balancer
Sametime_Notification_Server=stserver7.company.com
#Sametime_login_user=Login user that actually sends the IM
Sametime_login_user=Sametime Monitor 4/ORG1/ORG2/Company
#Sametime_login_pw=password of the login user
Sametime_login_pw=password
#Sametime_Notification_Group=single group name to notify
Sametime_Notification_Group=admin

このプラグインを実行するには、watchit.properties で Plugin_Classes の値に healthcheck を追加します。値はコンマ区切りで指定するため、複数のプラグインを同時に実行できます。

Plugin_Classes=healthchecker

Awarecheck プラグイン

awarecheck プラグインは、ログイン、名前検索、在席確認、およびインスタント・メッセージングといった Lotus Sametime の機能を検証することを目的に設計されています。このプラグインは、同じコミュニティー内または外部コミュニティーにいる 2 人のユーザーが交換ルーチンを実行し、常に監視されている中でパフォーマンスとメッセージの精度を維持する状態をシミュレーションします。このプラグインはサーバーとクライアントの双方の問題を検証するのに適しているため、このプラグインにかかわる多数のインスタンスを同時に実行して、サーバー間接続、およびクライアントとサーバー間の接続について状況を把握できます。

awarecheck ボットは 2 つのスレッドを簡単に立ち上げます。立ち上がったスレッドはそれぞれ、2 人のユーザーが各自のコミュニティーにログインしているかのようにシミュレーションします。両方のユーザーがログインに成功すると、Thread #1 が User2 を解決し、IM によるタグのやり取りが始まります。メッセージが失われないように、シーケンス番号が付与されます。インスタント・メッセージングによるやり取りに加え、User2 は User1 の在席状況も常に調べ、ローカル・コミュニティー内または外部コミュニティーのいずれかの環境で在席確認が機能していることを確かめます。

ボットはユーザー・ログインを再利用し、デフォルト (Check_Interval プロパティー設定) で 90 分 ごとに再起動します。インスタント・メッセージが配信不能、またはボットがユーザー・ステータスの変更を検出した (つまり、オフラインになった) 場合は、スレッドが作成され、Lotus Sametime 環境で障害が発生していることをインスタント・メッセージング経由でシステム管理者に通知します。ログを使用してエラー・メッセージに関する特定のタイム・スタンプを収集し、ネットワーク・トレースまたは Lotus Sametime の他のログ情報と比較できます。

staware.properties ファイル (リスト 3 参照) では、次の情報を特定します。

  • User1 のログイン情報。インスタント・メッセージを駆動するためのマスターとして使用されます。
  • User2 のログイン情報。マスターからのインスタント・メッセージへの応答者として使用されます。
  • パフォーマンスしきい値。Lotus Sametime 機能の待ち時間を検出します。
リスト 3. staware.properties ファイルのサンプル
Check_Interval=30
Logout_Timeout=5
IM_Interval=10
IM_Timeout=10000
Resolve_Wait_Time=20000
Login_Wait_Time=20000

#Sametime user 1
Sametime_User1=sim user1/ORG1/ORG2/Company
Sametime_Server1=stserver01.company.com
Sametime_Pw1=password
Sametime_Namelookup1=sim user1/ORG1/ORG2/Company

#Sametime user 2
Sametime_User2=sim user2/ORG1/ORG2/Company
Sametime_Pw2=password
Sametime_Server2=stserver02.company.com
#Use internet address for Sametime_Namelookupto indicate
external user to be tested through GW or SIP
Sametime_Namelookup2=sim user1/ORG1/ORG2/Company

ボット・トランザクションの詳細な出力を表示するには、staware.properties ファイルで「Debug=true」を使用します。Debug を true に設定しないと、障害だけが Watchit ログ・ファイルに記録されます。アラートは、IMEasy.properties ファイルのデータとともに送信されます。このアプローチは、各プラグイン共通です。

Sametime _User セクションは、インスタント・メッセージを交換して相互に在席状況を確認する 2 人のユーザーを処理するために使用されます。ここで重要なのは Sametime_Namelookup2 フィールドです。これは、相手のユーザーが在席状況を確認するために使用するフィールドです。両ユーザーが、外部コミュニティーへの SIP 接続上またはゲートウェイ接続上でテスト中の場合は、インターネット・アドレスを使用しなければなりません。両ユーザーがローカル・コミュニティー内にいる場合は、ローカル名を使用しなければなりません。ボットは User2 のこのフィールドを確認して、User1 が相手を外部ユーザーとして扱い、連絡先を見つけるために resolve() メソッドを呼び出さないようにするかどうかを判断します。

また、環境内でパフォーマンスしきい値に達しない場合、このプラグインはアラートを送信します。

機能障害のログ出力とアラート送信に加え、パフォーマンスの遅延をモニターし、同様の方法でアラートを送信することもできます。

パフォーマンスしきい値は 表 1 のように定義します。

表 1. Awarecheck プラグイン用のパフォーマンスしきい値
FunctionThreshold
Check_Interval=xNumber of minutes that the users trade instant messages
Logout_Timeout=xNumber of minutes that a user waits before logging back in
IM_Interval=xNumber of seconds to wait to send the next instant message
IM_Timeout=xNumber of milliseconds that is the maximum threshold for instant message delivery
Resolve_Wait_Time=xNumber of milliseconds that is the maximum threshold for user lookup
Login_Wait_Time=x Number of milliseconds that is the maximum threshold for login

必要な Lotus Sametime サーバーおよびログイン情報は、IMEasy.properties ファイルに格納されています。Watchit ツールは、アラートを送信するユーザーのために、サーバー、ユーザー、およびパスワードの情報をこのファイルに格納します。また、IMEasy.properties ファイルでは、アラートを受け取るユーザーのリストも定義されています。このファイルにより、時間の経過に伴って変化する Lotus Sametime データからツールを分離できます。IMEasy.properties ファイルの例を 図 1 に示します。アラート機能を無効にするには IMEasy.properties ファイルを削除します。

このプラグインを実行するには、watchit.properties の Plugin_Classes 値に awarecheck を追加します。値はコンマ区切りで指定するため、同時に複数のプラグインを実行できます。

Plugin_Classes=healthchecker,awarecheck

siponewaycheck プラグイン

siponewaycheck プラグイン・ボットは、外部コミュニティー間の接続を機能とパフォーマンスの両面から簡単に測定できるように設計されています。機能的には前述の awarecheck プラグインと同じですが、Lotus Sametime コミュニティー以外のコミュニティー、またはボット単独ではネットワーク・アクセスできない外部コミュニティーと通信することが可能です。このプラグインは、ローカル・コミュニティーにログインするスレッドをシミュレートします。解決の対象となる外部ユーザーは、エコー・ボットとして外部アプリケーションにログインする必要があります。エコー・ボットという用語は、オリジナルのメッセージを使用してインスタント・メッセージに応答する単純なボットを指します。両方のユーザーがログインに成功すると、Thread #1 が User2 を解決し、メッセージ・タグのやり取りが始まります。メッセージが失われないように、シーケンス番号が付与されます。

ボットはユーザー・ログインを再利用し、デフォルトで 90 分ごとに再起動します。メッセージが配信不能、またはユーザーが相手のユーザー・ステータスの変更を検出した (たとえば、オフラインになった) 場合は、スレッドが作成され、Lotus Sametime 環境で障害が発生していることをインスタント・メッセージング経由でシステム管理者に通知します。ログを使用してエラー・メッセージに関する特定のタイム・スタンプを収集し、ネットワーク・トレースまたは Lotus Sametime の他のログ情報と比較できます。

sipcheck.properties ファイル (リスト 4 参照) では、次の情報を特定します。

  • User1 のログイン情報。メッセージを駆動するためのマスターとして使用されます。
  • User2 の情報。リモート・コミュニティーで ping ボットして実装されたリモート・ユーザーを解決するために使用されます。
  • パフォーマンスしきい値。Lotus Sametime 機能の待ち時間を検出します。
リスト 4. sipcheck.properties ファイルのサンプル
Check_Interval=30
Logout_Timeout=5
IM_Interval=10
Login_Timeout=60
Debug=true
Check_Interval=60

#Sametime user 1
Sametime_User1=stsipbot
Sametime_Server1=stserver.company.com
Sametime_Pw1=password
Sametime_Namelookup1=stsipbot@company.com

Sametime_Namelookup2=stsipecho@company_external.com

ボット・トランザクションの詳細な出力を表示するには、staware.properties ファイルで「Debug=true」を使用します。

Sametime _User セクションは、メッセージを交換して在席状況を相互に確認する 2 人のユーザーを処理するために使用されます。ここで重要なのは Sametime_Namelookup2 フィールドです。両ユーザーは外部コミュニティーへの SIP 接続上またはゲートウェイ接続上でテスト中のため、インターネット・アドレスを使用しなければなりません。

パフォーマンスしきい値は 表 2 のように定義します。

表 2. siponewaycheck プラグイン用のパフォーマンスしきい値
FunctionThreshold
Check_Interval=x Number of minutes that users trade messages
Logout_Timeout=xNumber of minutes that users wait before logging back in
IM_Interval=x Number of seconds to wait to send the next message
IM_Timeout=xNumber of milliseconds that is the maximum threshold for message delivery (round trip)
Login_Wait_Time=xNumber of milliseconds that is the maximum threshold for login

User 2 エントリーは、プラグインのリモート・クライアントとして自分自身の状態を設定する ping ボットとして実装しなければなりません。このボットは、任意のリモート・コミュニティーで開発できます。

Watchit パッケージには、リモートの Lotus Sametime エコー・ボットとして使用できる Lotus Sametime ping ボットのサンプルが含まれています。Lotus Sametime エコー・ボットは、他のプラットフォーム・バージョンの作成例として、あるいはこのプラグインとともに使用してください。

必要な Lotus Sametime サーバーおよびログイン情報は、IMEasy.properties ファイルに格納されています。このアプローチにより、時間の経過に伴って変化することがある Lotus Sametime データからツールを分離できます。アラート機能を無効にするには IMEasy.properties ファイルを削除します。

このプラグインを実行するには、watchit.properties の Plugin_Classes 値に siponewaycheck を追加します。値はコンマ区切りで指定するため、複数のプラグインを同時に実行できます。

Plugin_Classes=healthchecker,awarecheck,siponewaycheck

インスタント・メッセージを介して通知する

各プラグインは、Watchit ツールによって提供される watchit.sendchats() API を使用して、さらなる変更 (パスワードのリセット、ターゲットのグループまたはユーザー、サーバー名の変更) を要求することなく、インスタント・メッセージを迅速かつ容易に送信します。この API の使い方については、付録 A 「IM アラートを送信する Watchit API」で解説されています。図 1 に IMEasy.properties ファイルの例を示します。プラグインまたは Watchit ツール全体のソースに変更を加えずに値を変更する方法を取り上げています。各プラグインは同じユーザー、同じパスワード、および同じサーバー情報を使用し、IMEasy.properties ファイル全体を通じて、任意のアラートを提供されたリストに送信します。

図 1 の例は、任意のネットワーク・リソースのネットワーク可用性をモニターする healthcheck プラグインからの通知を示しています。通知には特定の障害に関する有益な情報が含まれ、ディレクトリーを用いて指定されたすべてのユーザーまたはグループに送信されます。Lotus Sametime のヒストリー・ログを使用して、過去の障害を確認することもできます。

図 1. healthcheck プラグインからの Lotus Sametime 通知
healthcheck プラグインからの Lotus Sametime 通知

通知リストへの healthcheck の出力には、次の情報が含まれています。

  • 障害の時刻
  • サーバーまたはホストの名前
  • ポート番号
  • 例外のタイプ (ソケット・オープン・コールによってスローされる 3 つのいずれか)
  • 例外オブジェクトのテキスト・フィールドに返された理由

図 2 は、本番環境で送信の問題を検出した awarecheck プラグインの結果を示しています。具体的な障害メッセージ、障害の時刻、および関連ユーザーが、各システム管理者に送信されます。システム管理者はこれを受けて、対策を講じたり、問題のリソースのサーバー状態を調査したりすることができます。

図 2. awarecheck プラグインからの Lotus Sametime 通知
awarecheck プラグインからの Lotus Sametime 通知

Lotus Sametime Eclipse ベースのクライアントを使用している場合は、自動チャット・ログを用いて、障害の記録を取り続けることができます。通知ウィンドウからグループ・チャットを立ち上げ、障害の原因や問題の解決方法を知っているかもしれない他のシステム管理者に参加してもらうことができます。

ツールの前提条件

Watchit の要件の 1 つとして、できるだけ軽量でポータブルにすることが挙げられます。この要件は、次の 3 つを意味します。

  1. 小さなデスクトップから大きなサーバーまで、任意のマシン上でこのアプリケーションを実行できること。

    • リモートのホストまたはサーバーに対しソケットをオープンまたはクローズする機能はネットワーク・オペレーションであり、アプリケーションを実行しているイメージ上で大量の処理は必要ありません。
    • Lotus Sametime のシミュレーションを実行するには、Lotus Sametime Java SDK の JAR ファイルが 1 つだけ必要で、そのファイルはこのパッケージに標準装備されています。
  2. クライアントに最小限のソフトウェアがインストールされていること。

    • Watchit に関するソフトウェアの唯一の前提条件は、JRE 1.4.2 以降がインストールされており、パス内で見つけられることです。
  3. 任意のオペレーティング・システムで実行できること。

    • Java で書かれている Watchit は オペレーティング・システムに依存せず、ほとんどのオペレーティング・システムで実行できます。Java JRE 1.4.2 は、Microsoft Windows、UNIX、Linux、およびホスト・ベース・システムを含む多数のオペレーティング・システムをネイティブにサポートしているため、オペレーティング・システム固有のソフトウェア・コンポーネントはモニタリング・ホスト上には不要です。

Watchit は柔軟性の高いツールで、ネットワークの任意の場所に配置し、多数のネットワーク対応アプリケーションとリソースを 1 つの場所からモニターできます。また、特定の障害に関してより良いデータ・コレクションを得るために、問題を報告したユーザーのワークステーションにこのツールを置くことも考慮してください。

ボットの構造とサービス

Watchit ボットは、プラグインとしてのモニターを簡単に作成できます。このプラグインは、どのようなユーザー環境にも合う、そしてどのようなユーザー環境でもサポートできるように、ツールの機能を拡張します。このボットには前述の 3 つのプラグインが装備されていますが、カスタム・プラグインを使用して機能を拡張する方法を理解することも同じように重要です。

Watchit ボットは、ユーザーが作成した watchit.properties ファイルを読み込み、ツールが使用されたときにどのプラグインを立ち上げるかを特定します。各プラグインはスレッド群を実装するクラス・ファイルのセットです。これらのスレッドは、提供されたインスタント・メッセージング・フレームワークの使用、トラブル発生時のアラート送信、およびロギング・サービスを活用したプラグイン出力の統合ログの作成といった特定のタスクを実行します。

watchit.properties の例を示します。

# Invoke the healthchecker and awarecheck plugin classes
Plugin_Classes=healthchecker,awarecheck

ボットが使用されるとこのプロパティーが読み込まれ、メインの Watchit ボットのスレッドとして各カスタム・クラスが実行されます。カスタム・クラスのプラグインは任意の Java API ツールキットまたは基本 API クラスを使用できるため、これらのプラグインの内容には無限の可能性があります。

Watchit ボットは、モニター・クラスを提供されたフレームワークへ迅速に統合する際にプラグイン開発者が活用できるサービスを提供します。このサービスによって開発者は、アラート用のシンプルな IMEasy クラスへのアクセスや、すべてのボット出力をアクティビティーの統合ログへと適切に結合するためのロギング API を得られます。IMEasy フレームワークについては付録 A をご参照ください。ログ・サービスについては、付録 B に記載されています。watchit.sendchats() API を通じて呼び出される IMEasy パッケージを使用すると、パッケージ自体によって提供される必要なすべてのボット・インターフェースに加え、数行のコードを記述するだけで、アラートを送信できます。

プラグインの作成はシンプルで、提供された API によってアプリケーション独自のアラートを作成することも簡単です。プラグインの作成には、以下の手順と要件が必要です。

カスタム・クラスを作成する場合は、カスタム・クラスをこのボットのプラグインにするために、以下のみを実行または指定します。

  • パブリックのデフォルトのコンストラクター。例を示します。

    public awarecheck()

    このクラス名は、watchit.properties 内の Plugin_Classes 設定のエントリーです。

  • 「javac -classpath IMEasy.jar;watchit.jar;.;STComm.jar」を使用したコンパイル。
  • ボットのスレッドとして実行するためのスレッドの拡張。例を示します。

    public class awarecheck extends Thread

    メモ: ボットは、起動時のみスレッドを呼び出します (各プラグインがスレッドであることを忘れないでください)。スレッドの終了後は、再び呼び出されるまでボットは再起動されません。

  • モニターからのアラート用フレームワークの使用

    watchit.sendchats() メソッドが 1 つの API コールとして提供され、各プラグインに対してすべてのアラートを送信します。これによって、メッセージを作成するタスクも簡素化されます。

  • Watchit クラスから提供されたログ・ファイルの使用 (付録 B をご参照ください)

    Watchit には、ログ・エントリーを Watchit_YYMMDD_HH_MM_SS.log に追加する静的メソッド printall(String) があります。すべてのロギングで日付と時刻のタイム・スタンプがログに追加されますが、複数のプラグインが結合ファイルへの書き込みを行うため、このログで対象プラグインを特定するのはそのプラグイン自身の役割となります。このアプローチにより、必要に応じて特定のプラグイン情報だけをログから取り出すことがより簡単になります。この記事で使用した規則では、watchit.properties ファイルで定義されたボット名をメッセージのプレフィックスとして使用します。

モニター (プラグイン) による Watchit ツールの拡張は、必要な製品ツールキットを使用して、組織の重要なタスクに対応するために行います。シンプルなコード要件と IMEasy IM パッケージの使用により、必要なものをすべて迅速かつ容易に作成できます。

ツールを実行する

このツールをデーモンまたは Microsoft Windows サービス・タスクとして実行せずに、必要に応じて、またはバックグラウンド・ジョブとして、実行する方が適している場合があります。この記事の「ダウンロード」セクションから、Watchit ツールを呼び出すための、UNIX および DOS のシェル・スクリプトを含んだファイルをダウンロードできます。また、各インスタンスの実行を制御できるように、これらのクラスを Microsoft Windows サービスにする、または UNIX デーモン・タスクにラップすることも可能です。

Watchit ボットを Microsoft Windows のフォアグラウンドで実行するには、次のコードを使用します。

watchit.bat

Watchit ボットを UNIX または Linux のオペレーティング・システムのフォアグラウンドで実行するには、次のコードを使用します。

watchit.sh

後処理プログラムを使用して情報のトレンドを表示する

このツールには、UNIX シェルと awk 機能を必要とする後処理スクリプトが含まれています。後処理ツールの実行には、任意の UNIX オペレーティング・システムまたは Microsoft Windows オペレーティング・システム (UNIX シェル・シミュレーターを使用) を使用できます。特定のインスタンスに関する要約情報を表示するには、データとしてのログとともにそのスクリプトを使用します。トレンドを表示するには、ログ・ファイルを連結し、結合した出力上で処理スクリプトを実行します。

後処理プログラムの実行には、次のコードを使用します。

(From any unix shell) process_bot_output.sh <logname>

結果は標準出力と <logname>.out ファイルに出力されます。

process_bot_output 後処理スクリプトのサンプル出力を 図 3 に示します。

図 3. process_bot_output 後処理スクリプトの出力
process_bot_output 後処理スクリプトの出力

後処理スクリプトからの出力により、応答時間の平均、エラー総数、パフォーマンスしきい値を超えた回数が得られます。それぞれの実行、または結合された実行の要約データを収集し、グラフ化できます。この機能により、Lotus Sametime とネットワークのパースペクティブを組み合わせたテストでの障害回数とパフォーマンス統計を得られます。


Watchit をいつ、どこで使用するのか

Watchit ツールおよびフレームワークは、継続的でプロアクティブなモニター・ツールとしても、またデータ収集と問題再現が可能なサービス支援としても、多目的に使用できます。シンプルな IM API を使用するというこのツールの性質により、1 台のワークステーションからデプロイメント全体を監視し、組織内の任意のユーザーまたはグループに即座にアラートを送信することが可能になります (IM API については、付録 A をご参照ください。また、「ダウンロードセクション」に watchit.zip ファイルとして提供されています)。正確なタイムラインとユーザーの受信メッセージを記録したログにより、データの収集や問題の根本原因を識別する効率的なツールとなります。このツールは、特定のミッション・クリティカルな機能をターゲットとする柔軟なモニター・ツールとして使うことも、また機能やパフォーマンスの問題をより効率的に扱うデバッグ支援として使うこともできますが、いずれの場合もその目的は、シミュレーションとモニター用のツールを環境内の障害発生時点または弱点とみなされる場所に容易に移動できるようにすることです。

その少ないシステム要件を前提として、Watchit はほとんどのワークステーションで実行できます。このことは、システム管理者がこの機能を展開する場合には、柔軟性にとって極めて重要なことです。Java 1.4.2 以降をサポートする任意のプラットフォームは、このアプリケーションの多数のインスタンスをサポートできるため、このツールを展開する場所の制限は事実上ありません。ただし、問題の性質に応じて、特定のユーザー・システムでインスタンスを直接実行することが必要な場合もあります。軽量設計により、このタスクを簡単に実行できます。

Watchit のインスタンスのインストール場所を考慮する際は、このツールを、問題が発生したときに管理チームが最初に事情聴取をしたいユーザーとみなしてください。お使いの環境で、ユーザーの接続がミッション・クリティカルとなるポイントに配置することが最も適しています。ツールは用意されているプラグインまたは作成したプラグインを使用してユーザー・アクティビティーをシミュレーションし、パフォーマンスまたは機能の問題が発生したときに管理チームにアラートを送信します。問題が報告され、デバッグが必要になった場合は、特定の能力、接続、または機能をテストする追加のインスタンスを簡単に作成できます。

次に考慮すべきは、このツールをいつ使用するかの判断です。環境全体で、一定レベルのモニターを 1 日 24 時間、週 7 日実行することがベストといえるでしょう。この方法は、費用もかからず、Lotus Sametime に振り向けた既存投資を活用するという利点も加わります。問題が発生したときは、このツールを障害発生時点に配置することが、データ収集を支援する上で最も適しています。ログは、問題に関するどのようなユーザー・レポートよりも信頼性があり、詳細なものです。パフォーマンス低下の問題や、ユーザーがサーバーまたはリソースに接続できない問題であっても、タスクごとに具体的なエラーが記録され、パフォーマンス結果が収集されます。

通常のモニター・インスタンスによって問題が報告された場合は、追加のインスタンスを迅速に配置して、問題をさらに分離し、順列をテストすることができます。インスタンスを配置した後は、ログを使用してエラーを正確に特定したり、後処理スクリプトを使用して、複数のインスタンス実行についてパフォーマンスまたは障害のトレンドを把握したりすることが可能です。


まとめ

Watchit ツールを実践的に使用することで、本番環境のサポートと現在の Lotus Sametime 資産の活用について、よりプロアクティブになれることを説明しました。アプリケーション・フレームワークを使用して新しいプラグインを作成すると、製品ツールキットを用いたユーザー・アクティビティーのモデル化によって付加価値を得られます。メッセージング・テクノロジー固有の使い方により、ミッション・クリティカルな機能のシミュレーションと必要なチームへの迅速なアラート送信が強化され、アプリケーションが価値のあるリソースとなります。

このソリューションでは既存のツール、フレームワーク、プラグインを使用することで、ユーザー・エクスペリエンスに対する優れた洞察が得られ、データの収集と問題の再現がより簡単になります。この結果は、停止時間の短縮や、対処中の問題を解決する時間の短縮に寄与します。全体として、ユーザー・コミュニティーへのサービスに対する満足度を高めるには、問題やユーザーからの報告に先んじることが重要です。

トラブル・チケットをオープンするというヘルプ・デスクとのプロセスをユーザーが時間をかけて再現するまで待つ理由は何ですか。エラーが発生すると同時に対処するという能力を高めつつ、よりプロアクティブにアプリケーション環境を理解するためのアプローチを対処してください。


付録 A: アラート送信用 Watchit API

Watchit ツールには、IM アラートを容易に送信するために、どのプラグインからも呼び出せる静的ルーチンがあります。

要件: JRE 1.4.2 以降

各プラグインは、アラートを送信するよう定義されたユーザーに関して、同じ情報 (ログインするサーバー、パスワード、および受信者のリスト) を共有します。この共有は、ツールが次のルーチンを呼び出すときに読み込む IMEasy.properties ファイルを介して行われます。

IMEasy.properties ファイルで定義されている管理者のリストにアラートを送信するには、Watchit ツールが実行している任意のプラグインから sendchats メソッドを呼び出します。

void sendchats(String error_to_im[], int error_index, boolean debug)

このコードは、watchit クラスの静的メソッドとして定義されています。

任意のプラグインから watchit.sendchats() メソッドが呼び出されたあと、インスタント・メッセージが送信されます。

static synchronized void sendchats(String error_to_im[], int error_index, boolean debug)
error_to_im  -  String array containing IM content
index  -  # of entries in String array that need to be sent
default is to print all entries (even if empty entries are at the end of the array
in_debug  -  turns on verbose logging to stdout
debug issues if IMs are not delivered

ツールを実行するには、クラスパスの値に STComm.jar、IMEasy.jar、および IMEasy.properties が存在している必要があります。これらのファイルは、watchit.bat スクリプトおよび watchit.sh スクリプトによって、アプリケーションの実行に自動的に追加されます。

例として、この API の呼び出し方をリスト 5 に示します。この例では、各プラグインによって、watchit.sendchats() API へのラッパーである sendchats API が提供されます。

リスト 5. API の呼び出し
void sendchats()
{
  if (!(Disable_IM))
  {
    watchit.sendchats(Errors, error_index,debug);
    
    if (service_log_failures)
      Printnow("Date/time of Check: " + loop_time); 
      
    if (debug)
      Printnow("chat thread is now completed");
      
    notification_complete=false;
    
    if (debug)
      Printnow("Alert delivered to user");
  }
}

付録 B: Watchit ボットによって提供される Log API

どの Watchit プラグインも、watchit クラスの printall メソッドを使用することでログ・ファイルに書き込むことができます。

ログを watchit ログ・ファイルに出力するには、(watchit クラスから) 以下を使用します。

static void printall(String printme)

メモ: "MONITOR NAME: message text" という規則を試してください。メソッドによって日付と時刻が追加されます。メッセージ・テキストを指定します。

例:

watchit.printall("Network Check: Network Scan Begin");
上記のように指定すると、次のように出力されます。

07/01/09 12:59:14 Network Check: Network Scan Begin

ログ・ファイルは watchit_YYMMDD_HH_MM_SS.log という名前で書き込まれます。


ダウンロード

内容ファイル名サイズ
watchit3.zip14,022 KB

参考文献

学ぶために

製品や技術を入手するために

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Lotus
ArticleID=741755
ArticleTitle=IBM Lotus Sametime を使用した可用性、パフォーマンス、インフラストラクチャーなどのモニター
publish-date=08052011