クラウド・コンピューティングの概念が私たちを興奮させる理由は、誰もが知っています。私たちは、クラウドの機能を利用して、リソースを最大限に活用したいと思っています。あらゆるリソースを最大限に活用し、その価値を最大限引き出すには、クラウド・サービスを監視できるということが重要な鍵となります。
IBM Cloud (IBM Smart Business Development and Test on the IBM Cloud) は、Development and Test クラウドでホストされている IaaS (Infrastructure as a Service) パブリック・クラウドです。IBM は企業に適したパブリック・クラウドを提供しているという点で他には類を見ません。IBM を差別化している特徴には、広範なサービスと製品、コラボレーションを可能にする委任管理モデル、企業向けビジネス・サポート・サービス、そして製品チームによって事前に構成された、オンデマンドですぐに実行できる多種多様なサポート・オープンソースならびに市販のソフトウェアのイメージが挙げられます。システム監視は、企業が卓越したサービス・レベルによる信頼性の高いサービスを実現するための重要な要件です。
クラウド・サービスを監視しなければならないビジネス・シナリオは多々あります。その中でも、この記事では Development and Test パブリック・クラウドのユーザーが直面する可能性のあるシナリオに焦点を当てます。最初のシナリオで説明するのは、仮想マシン・インスタンスのライフサイクルで発生する重要なイベントを監視する方法です。クラウド環境は、従来の物理コンピューティング環境よりも、監視およびその結果に対するアクションの自動化には適しています。IBM Smart Business Development and Test クラウドには、IBM Tivoli Monitoring 製品チームによってセットアップされた構成をそのまま利用できるという利点があります。2 番目のシナリオでは、仮想 LAN (VLAN) 機能を利用します。VLAN 機能を使用することで、クラウド上のリソースをパブリック・インターネットから分離し、完全に暗号化された VPN によって組織のプライベート・ネットワークにそれらのリソースを接続し、最も必要とする場所にリソースを割り当てることができます。
監視には、可用性の監視とパフォーマンスの監視の両方が含まれます。通常、外部プログラムが可用性をチェックするには、仮想マシンまたは仮想マシンで動作するアプリケーションのハートビートを監視するという方法をとります。つまり、外部プログラムがシステムに ping を送信し、システムが ping に応答しなければアラームが起動されます。パフォーマンスを監視する場合には、システム・パフォーマンスの重要な数値指標が追跡されます。一般に、オペレーティング・システムで追跡対象となる数値指標は、CPU、メモリー、ハード・ディスク、ネットワークなどの使用量です。通常、アプリケーションのパフォーマンスを監視する場合には、トランザクション、検索、ページ生成やその他の操作の応答時間と、これらの操作に関してアプリケーションが受ける負荷の測定値が追跡されます。
監視の重要な役割は、問題を予測し、その問題が発生する前に対処することです。例えば、監視システムに、ディスク使用量がある一定のレベルに達すると何らかのアクションをトリガーするように設定したり、ディスク使用量が 80 パーセントに達するとシステム管理者にアラートが送信されるようにしたりするなどです。従来のコンピューティング環境では、システム管理者がアラートを受け取ると、新しいディスクをマウントしてディスク・スペースの不足から発生する可用性の問題を回避することができます。
クラウド・コンピューティングでも、監視に関する従来の要件が適用されますが、クラウド環境の場合には以下の点が異なります。
- クラウドは、従来の環境よりも簡単にアクションを自動化できる環境です。例えば、IBM Cloud にはクラウドのリソースを管理するための REST API が用意されています。この REST API は、監視内容の通知に応答するために使用されます。
- クラウド・リソースの使用料は、使用した量に基づきます。したがって、できるだけ経済的にリソースを使用するにも監視が役立ちます。
- クラウドのリソースは従来のコンピューティング・リソースより動的に作成されるため、リソースの急増という結果に至ることがあります。このように無秩序に散らばった仮想リソースは、効果的に監視および管理されていなければ、すぐに制御が効かなくなります。
この記事では、クラウド・サービスを監視するプロセスを、以下の 2 つのシナリオで詳しく説明します。
- 仮想マシン・インスタンスのライフサイクルにおける重要なイベントを監視する場合のシナリオ
- クラウド上のリソースを暗号化された VPN を介して企業のネットワークに追加し、管理する場合のシナリオ
シナリオについて検討する前に、IBM Cloud での基本的な監視の方法を見直しておきます。これから、それぞれの方法について詳しく説明するので、皆さんが実際のデータを持っている場合には、その情報を参考にして、どの方法が IBM Cloud で最大のメリットをもたらすかを判断してください。
- IBM Cloud は、Linux® およびWindows™ オペレーティング・システムと多数のソフトウェア製品をサポートしています。オペレーティング・システム自体にも、すぐに使用できる監視の方法がいくつか用意されていて、例えば、Linux には top が、そして Windows にはタスク マネージャが組み込まれています。この 2 つのツールは、プロセスまたはタスクごとの CPU およびメモリー使用量などの情報に加え、ネットワーク測定情報を示すことができます。他のネイティブ・ツールでは、もっと高度な測定情報を提供できますが、ネイティブ・ツールでできないこととしては、イベントをトリガーしたり、通知を送信したりすること、あるいは多数のシステムからの大量のデータをダッシュボードで一元管理したり、プログラムによって簡単に情報にアクセスすることなどが挙げられます。したがって、ネイティブ監視ツールは、一時的な監視や、監視システムからトリガーされたパフォーマンス・イベントを詳しく調べたりする場合に使用するのが最適な用途となります。
- 2 つ目の方法は、ライフサイクルの重要なイベントの可用性を監視するスクリプトを独自に作成することです。例えば、SSH ライブラリーを使用して仮想マシンに ping を送信する Java™ プログラムを作成し、システムが起動または停止したときのイベントを作成することができます。これは、SSH をクラウド内の仮想マシンへの最優先のアクセス手段として使用する、一般的なストラテジーになっています。これと同じストラテジーは、データベースや Web サーバー、そして LDAP サーバーなどのネットワーク・サービスを介して使用できるサービスにも適用することが可能で、オープンソースの Ganymed SSH ライブラリーや、HTTP サービス用の Apache HttpClient ライブラリーを使用した Java プログラムを作成することもできます。さらに高度なプログラムは、オペレーティング・システムのシグナルと SNMP (Simple Network Management Protocol) を利用して可用性の管理を行う場合もあります。これらの原則に基づく市販の製品が、IBM Systems Director です。この製品には、可用性の監視機能、通知機能、一元管理機能がいくつも備わっています。
- 3 つ目の方法は、ネイティブ監視ソースから情報を収集して分析する、独自のプログラムを作成することです。例えば、Linux の top ツールによる出力を構文解析する Perl プログラムを作成するなどです。けれども、信頼性の高い監視および通知を行うプログラムを作成するのは、そう簡単なことではありません。例えば、特定のプロセスの CPU 使用量が突然 100% まで急上昇した後、同じく突然、元の状態に戻ったとします。このような場合、意味のある監視内容を通知するのは困難になります。
- 4 つ目の監視方法は、IBM Tivoli Monitoring などの監視専用に構築されたシステムを使用することです。このような製品は、例えば平均値やその他の統計測定値を操作するなどといった、自分でプログラムするのが困難なシナリオを処理し、IBM Tivoli Enterprise Portal をはじめとする通知および一元管理の強力な方法を提供するように設計されています。IBM の新しいクラウド・オファリング、Tivoli Live では、IBM によってホストされた IBM Tivoli Enterprise Portal インストール済み環境を含め、完全な IBM Tivoli Monitoring Server を使用することができます。つまり、このオファリングでは、IBM Tivoli Enterprise Portal の監視用のコンソールをインストールする必要も、管理する必要もなく、企業内を監視することが可能になります。
この記事では、強力ながらも軽量のソリューションとなるオートノマス・エージェント機能を含め、IBM Tivoli Monitoring エージェントを使用するという方法に焦点を絞ります。オートノマス・エージェント機能については、スクリーン・キャプチャーを使ってその使用方法を説明します。また、IBM Tivoli Monitoring では Agent Builder を使って各アプリケーションに応じたカスタム・エージェントを作成できるだけでなく、軽量な監視ソリューションを実現できるオートノマス・モードもあります。軽量な監視ソリューションという点について、もう少し詳しく説明しておきます。
さまざまなプロジェクトでシステムが作成され、プロジェクトが完了するとそのシステムがそのまま残されることもあれば、別の場所に移されることもあるなか、エンタープライズ IT システムの 1 つの特徴となるのは、システムを長期にわたって管理しなければならないことです。そのため、多種多様なシステム全体で監視方法を標準化し、1 ヶ所で集中して監視することが特に重要となってきます。本番環境での監視は、ほとんどの場合、このタスクだけを専門とする担当者によって行われます。その担当者には、多数のシステムを効率的に監視するためのツールを提供することが重要です。開発およびテスト環境においては、監視は開発者の作業を複雑にする原因の 1 つになり得ます。けれども、クラウドのよいところは、他の人々が作成したアセットを、従来の環境よりも手軽に使用できることです。つまり、監視ソリューションにしても、開発およびテスト・チームが利用できるものになっています。さらに、開発およびテストの人件費という観点からも、開発者とテスターの生産性を維持できるように、彼らの作業に欠かせないシステムを常に稼働状態にすることが重要になります。
監視方法ごとの利点と欠点
| 監視方法 | 利点 | 欠点 |
|---|---|---|
| ネイティブ・ツール |
|
|
| ハートビートに基づく独自のプログラム |
| |
| ネイティブ監視に基づく独自のプログラム |
| |
| IBM Tivoli® Monitoring |
|
シナリオ 1: 仮想マシン・インスタンスのライフサイクルにおける重要なイベントを監視する
このセクションでは、仮想マシン・インスタンスのライフサイクルでの重要なイベントを監視する方法を説明します。イベントの例には、オペレーティング・システムの起動や CPU、メモリー、およびハード・ディスクの高い使用率および使用量などがあります。これらのイベントを把握することで、管理ソフトウェアは追加インスタンスを起動して負荷を共有したり、追加ストレージをマウントしたり、あるいはシステム管理者に警告メッセージを送信したりすることが可能になります。このセクションでは、IBM Tivoli Monitoring を使用して単純なサンプル・アプリケーションを作成するプロセスを手順に沿って説明します。
- Development and Test クラウドにログインし、「Control panel (コントロール・パネル)」の「Instances
(インスタンス)」領域に進みます (図 1 を参照)。この領域には、既にお持ちの仮想マシン・インスタンスがすべて表示されます。
図 1. 仮想マシン・インスタンスの表示
- 「Add instance (インスタンスの追加)」をクリックします。すると、選択可能なソフトウェア・イメージが表示されます。
図 2. インスタンスの追加とソフトウェアの選択肢の表示
- 「IBM Tivoli Monitoring 6.2.2.1」を選択して「Next (次へ)」をクリックします。
- 「Configure Image (イメージの構成)」パネルで、サーバー・サイズには「Bronze 32 bit (Bronze 32 ビット)」を選択し、システムが生成した IP アドレスを選択します。鍵をまだ作成していない場合は、この時点で鍵を作成して保存することができます。この作業によって「Add instance (インスタンスを追加)」ウィザードのプロセスが中断されることはありません。生成された秘密鍵は、必ず保存してください。保存し忘れると、SSH クライアントで仮想マシンに接続できなくなります。公開鍵は後で「Profile (プロフィール)」の「Account (アカウント)」タブからダウンロードできますが、秘密鍵は Development and Test クラウドには保存されません。「Next (次へ)」をクリックします。
- 「Additional configuration parameters (追加構成パラメーター)」パネルには、IBM Tivoli Monitoring
に固有のパラメーターが表示されます。CTIRA ホスト名のパラメーターには「
TivoliMonitoring」と入力してください。これが、IBM Tivoli Enterprise Portal に表示されるホスト名となります。パスワードには「sysadmin」と入力し、「Next (次へ)」をクリックします。 - 「Verify configuration (構成の確認)」パネルにパラメーターの要約が表示されたら、「Next (次へ)」をクリックします。
- 「Service agreement (サービスへの同意)」パネルでは、ラジオ・ボタンをクリックして使用条件に同意し、「Submit (送信)」をクリックします。これで、仮想マシン・インスタンスの作成要求が送信されます。
Development and Test クラウドの「Control panel (コントロール・パネル)」に、要求のステータスが表示されます。仮想マシンが使用可能な状態になると、ステータスが「Active (アクティブ)」に変わります。このパネルに表示される構成パラメーターには、インスタンスに接続するための IP アドレスも含まれます。Linux オペレーティング・システム・イメージでは、通常は SSH を介して仮想マシンに接続します。また、この場合にイメージは、Web ブラウザーから 1920ポートを使用して IBM Tivoli Enterprise Portal に接続するように構成されます。
ユーザー ID には「sysadmin」を、パスワードにはステップ 5 で入力したパスワードを使用して、IBM Tivoli Enterprise Portal にログインします。IBM Tivoli Enterprise Portal に、エージェントレス・モニターおよびオペレーティング・システム・エージェントが表示されます。また、エージェントレス・システムに関して受信した SNMP データには、ディスク、CPU、メモリー、ネットワークの使用量も表示されるはずです。
図 3. メモリー使用量
最も簡単なリソース監視方法の 1 つとなるのは、IBM Tivoli Monitoring のエージェントレス・モニター機能を使用することです。エージェントレスの方法では、リモート・プロトコルを使用したデータの収集がベースとなります。一般に、エージェントレスとエージェント・ベースの方法のどちらかを選択できる場合には、ソフトウェアをインストールしたり、保守したりする必要がないことから、エージェントレスのほうが好ましい方法です。ただし、必要なモニター情報を収集するためのメソッドがリモートからは使用できない場合には、エージェントが必要となります。さらに、オートノマス・エージェント機能もエージェントによって提供されます。
エージェントレス・サーバーを監視するには、まず始めにサーバーを仮想マシン・インスタンスとして作成してください (この記事では、このサーバーを「監視対象サーバー」と呼びます)。そして SNMP を構成し、ファイアウォールを更新して、IBM Tivoli Enterprise Portal からの SNMP 要求が監視対象サーバーに到達できるようにします。
- サーバーを作成し、
iduserを使用して、そのサーバー上でsshセッションを開始します。サーバーを作成するには 2 つの方法があります。1 つは Development and Test クラウドのコンソール・インターフェースを使用する方法、もう 1 つはコマンド行を使用する方法です。 - コマンド・プロンプトから「
sudo bash」と入力してルート・アクセス権限を取得します。SNMP は SUSE Linux Enterprise Server 11 のデフォルト・ソフトウェア・パッケージではないため、
net-snmpがインストールされていない場合は、インストールしてから以降のステップに従って構成してください。それには、コマンド行でyastを開き、「Software Manager (ソフトウェア・マネージャー)」を選択します。そして snmp を検索して、net-snmp をインストールします。 /etc/snmp/snmp.confファイルを編集して、行rocommunity public 127.0.0.1の IP アドレスを、お使いの IBM Tivoli Enterprise Portal の IP アドレスに置き換えます (図 4 の例を参照)。
図 4. IP アドレスの置換
- コマンド
service snmpd restartを使用して SNMP デーモンを再起動します。 - IBM Tivoli Enterprise Portal サーバーから監視対象サーバーへの UDP (User Datagram Protocol)
アクセスを許可するようにファイアウォールを設定します。それには
yast2を起動し、「Security and Users (セキュリティーおよびユーザー)」を選択します。
図 5. UDP アクセスを許可するようにファイアウォールを設定する
- 「Firewall (ファイアウォール)」を選択し、「Custom Rules (カスタム・ルール)」を選択します。
図 6. ファイアウォールの構成
- 「Add (追加)」を選択し、「Source (ソース)」には IBM Tivoli Enterprise Portal の IP アドレスを入力し、「Protocol (プロトコル)」には「UDP」を、「Destination Port (宛先ポート)」には「161」を入力します。
図 7. IBM Tivoli Enterprise Portal の IP アドレス、プロトコル (UDP)、宛先ポートの追加
- 「Next (次へ)」、「Finish (完了)」、「Quit (終了)」の順にクリックします。
SNMP 接続をテストするには、IBM Tivoli Monitoring サーバーにルートとしてログイン (sudo bash) します。
snmpwalk -v 1 -c public <Monitored Server IP Address> |
次は、以下の手順に従って、このサーバーを IBM Tivoli Enterprise Portal に追加します (図 8 を参照)。
- ブラウザーで
http://<TEP IP address>:1920///cnp/kdh/lib/cnp.htmlにアクセスします (3 つ連続した「/」はタイプミスではありません)。
図 8. IBM Tivoli Enteprise Portal へのログイン
- 「Linux Systems (Linux
システム)」、「TivoliMonitoring」の順に展開し、「Agentless Linux OS
(エージェントレス Linux OS)」を右クリックします。
図 9. Linux システムの表示
- 「Take Action (アクションの実行)」 > 「Select (選択)」の順にクリックします。
図 10. アクションの実行
- アクションの名前としては「LinuxSnmpMonitorStart」を指定します。
図 11. LinuxSnmpMonitorStart の選択
監視するサーバーの名前と IP アドレスを指定し、「Community (コミュニティー)」フィールドに「public」と入力します。「OK」をクリックし、もう一度「OK」をクリックします。
図 12. アクションのステータス
- もう一度「OK」をクリックします。
- 「Navigator (ナビゲーター)」を最新の表示にします (タスクバーの赤丸アイコンの隣にある、互いに反対方向を向いた 2 つの矢印のアイコン)。ナビゲーション・ツリーで監視対象サーバーを選択します。これで、各種の図表をナビゲートできるようになります。
図 13. 図表のナビゲート
オペレーティング・システム・エージェントは、SSH を使用してデプロイすることができます。Linux
オペレーティング・システム・エージェントをデプロイするには、コマンド行を使用してログインしてください。Windows クライアントでは、Putty を使用します。Linux
クライアントでは、前に仮想マシンに接続するために使用した SSH クライアントと、提供された IP アドレスを使用してコントロール・パネルからログインします。ログインの際には、ユーザー ID として idcuser と前のステップで保存した秘密鍵を使用する必要があります。
- 「
/opt/IBM/ITM/bin/tacmd login -s localhost」と入力して、tacmdにログインします。 - ユーザー名およびパスワードとして
sysadminと入力します。 - ログインに成功したら、以下のコマンドを実行します。
/opt/IBM/ITM/bin/tacmd createNode -h <destination IP address> -d /opt/IBM/ITM -p PROTOCOL=IP.PIPE PORT=1918 SERVER=<your instance IP address>
- 宛先マシンのユーザー名とパスワードを入力します。
- 要求がデプロイメント用のキューに入れられます。デプロイメントのステータスを確認するには、「
/opt/IBM/ITM/bin/tacmd getdeploystatus」と入力します。 - デプロイメントが完了した後、「
/opt/IBM/ITM/bin/tacmd logout」と入力してtacmdからログアウトします。
Development and Test クラウドのカタログには、イメージがどのようにセットアップされているかが記されています。IBM Tivoli Monitoring イメージおよび 32 ビット版 SUSE Linux Enterprise Server 11 イメージを稼働するベースについては、導入手順書を読むことをお勧めします。また、各イメージを紹介する短い動画をオンラインで見ることもできます。IBM Tivoli Monitoring イメージには、以下の製品が組み込まれています。
- IBM Tivoli Enterprise Monitoring Server V06.22.01.00
- IBM Tivoli Enterprise Portal Server V06.22.01.00
- IBM Tivoli Enterprise Portal Desktop Client V06.22.01.00
- IBM Tivoli Monitoring Linux Operating Systems Agent V06.22.01.00
- IBM Tivoli Agentless Monitoring for Linux Operating Systems V06.22.01.00
このイメージには、この記事では説明していない機能も多数あります。例えば、IBM Tivoli Enterprise Portal を使用して、シチュエーションや生成通知、イベント・データウェアハウス、モニター・データの詳細レポートを作成することができます。また、オペレーティング・システム以外のシステムを監視することも、さらに Agent Builder を使用してカスタム・エージェントを作成することも可能です。記事の残りでは、IBM Tivoli Monitor Linux Operating Systems Agent を使用して IBM Tivoli Monitoring に Development and Test クラウドの API を統合する手順に焦点を絞ります。オペレーティング・システムの監視は、あらゆる監視ソリューションにとって重要な基礎となります。
オペレーティング・システムの監視を実行できることでもたらされるメリットには、以下の内容が含まれます。
- IBM Tivoli Enterprise Portal でエージェントレスの手法とエージェント・ベースの手法を使ってクラウドのリソースを監視する方法を学べます。
- IBM Tivoli Monitoring のエキスパートがセットアップしたシステムを利用することができます。
- IBM Tivoli Monitoring を使った実動システムをセットアップした後、イメージを独自にカスタマイズして保存することができます。保存したイメージの仮想マシン・インスタンスは、必要に応じて随時、起動することができます。さらにそのイメージを、Development and Test クラウドの新しいエンタープライズ・コミュニティー機能によって組織の他の人々と共有することもできます。
- Development and Test クラウドの外部ストレージに監視および構成データを保存して、他の IBM Tivoli Enterprise Portal システムからデータを再利用することができます。
シナリオ 2: クラウドとの暗号化された VPN 接続を使用してリソースを管理する
例えば、パブリック・インターネット上のコンピューティング・リソースの一部が十分に活用されておらず、組織の内部ネットワーク上のリソースが過負荷状態になっていることが判明した場合を考えてみてください。IBM Development and Test クラウドでは、それぞれの企業が独自の仮想ローカル・エリア・ネットワーク (VLAN) を使用して、インスタンスをパブリック・インターネットから隔離し、VPN 接続によってそのインスタンスを企業のプライベート・ネットワークに接続できるようになっています。このセクションでは、Development and Test クラウドのコマンド行ツールを使用して、パブリック・インターネットからクラウド上のリソースを管理し、完全に暗号化された VPN 接続を介して組織のプライベート・ネットワークにそれらのリソースを追加する方法を説明します。
VLAN は、従来の LAN (Local Area Network) の概念を抽象化したものです。VLAN では、コンピューティング・リソースをグループ化し、それぞれのグループに固有のネットワークに隔離することができるため、従来の IT ネットワークでのように Ethernet ケーブルや物理ネットワーク機器が不足することはありません。パブリック・クラウドでは、リソースはパブリック・インターネットに置かれるので、このようにリソースを隔離できることは便利です。VLAN との接続には、暗号化された仮想プライベート・ネットワーク (VPN) 接続を使用してください。
前のセクションで説明したシナリオは、クラウドのリソース管理に関連しています。VLAN/VPN 技術の意義は、監視およびリソースの平衡化を含め、クラウド・ソリューションを企業独自の IT インフラストラクチャーに接続できるところにあります。以前は、さまざまなコンピューターとネットワーク機器を Ethernet ケーブルでつないでネットワークを作っていましたが、今では複数の異なるネットワーク・ゾーンで多数の IP アドレスを要求し、これらのアドレスをそれぞれの仮想マシンに割り当てるだけでネットワークを構築することができます。
Development and Test クラウドのウィザードを使用すれば、企業の VLAN に接続された仮想マシンを簡単に作成することができます。
- カタログで、SUSE Linux Enterprise Server 11 for x86 を選択します。
図 14. SUSE Linux Enterprise Server 11 for x86 の選択
- インスタンスの名前を入力し、サーバー・サイズには Bronze 32 bit を、VLAN にはPrivate VLAN を選択します。
図 15. インスタンス構成時の選択項目
- コントロール・パネルの「My Instances (マイ・インスタンス)」で、要求のプロビジョニング・ステータスを監視します。
図 16. 要求のプロビジョニング・ステータスの監視
インスタンスがアクティブになると、インスタンス詳細パネルに IP アドレスが表示されます。
図 17. インスタンス詳細パネル
この類のインスタンスに接続するには、VLAN 接続をセットアップする必要があります。
VLAN 上の仮想マシンは、その VLAN 上にある他のリソースにしか可視になりませんが、これらの仮想マシンはパブリック・インターネット上のリソースを見ることができます。これは、IBM Tivoli Enterprise Portal コンソールとの接続において重要な点です。IBM Tivoli Enterprise Portal コンソールが VLAN に接続されていなければ、コンソールは VLAN上のリソースを表示することができません。
ここまでのところで、以下のタスクを完了しました。
- パブリック・クラウド・コンピューティングでの VLAN の使用を理解する
- 企業独自の VLAN でのみアクセスできる仮想マシンをプロビジョニングする方法を学ぶ
IBM Cloud では、セルフサービス・ユーザー・インターフェースの機能に似た、リソース管理のアクションを自動化する REST、Java API、およびコマンド行ツールを用意しています。これらのアクションには、仮想マシン・インスタンス、ストレージ・ボリューム、IP アドレスの作成および管理などがあります。このセクションでは、コマンド行スクリプトを使用してリソース管理を自動化する方法を説明します。
IBM Development and Test クラウドのクライアントをダウンロードするには、クラウド・ポータルの「Support (サポート)」タブをクリックします。使用可能なコマンドについての詳細は、「Command Line Tool Reference」を参照してください。
まず始めに、コマンド行スクリプトのディレクトリーを作成します。以下の手順では、Windows クライアントを使用していることを前提としますが、Linux の場合でも手順は同様です。
- IBM version 1.6 JDK がまだインストールされていない場合は、インストールします。
JAVA_HOMEを定義します。- コマンド行ツールの zip ファイルを、CC_HOMEを使用してシステム上のディレクトリー (パスにスペースが含まれていないディレクトリー) に解凍します。
- コマンドをスクリプト・ファイルに保管したい場合には、
MY_HOMEを使用してスクリプト用のディレクトリーを作成します。
スクリプト用のディレクトリーを作成したら、クライアントをパスワード・ファイルで初期化します。このステップは、実際の Development and Test クラウドのパスワードを保護するために不可欠です。ただし、パスワードをスクリプトやクリア・テキストに保管する必要はありません。
- 上記のタスクを行うには、以下のコマンドを入力します。
> set JAVA_HOME=D:\Program Files\IBM\SDP\jdk > set PATH=%JAVA_HOME%\bin;%PATH% > set CC_HOME=D:\dev_test_cloud\cmd > set MY_HOME=D:\myhome\script > cd %CC_HOME% > ic-create-password -u u@abc.com -p secret -w unlock -g %MY_HOME%/mykey.ext
- Windows または Linux のどちらを使用するかによって、コマンドの拡張子を
.cmd、または.shにします。上記のコマンドは、Java ホーム、システム・パス、スクリプトのホームを設定した後、カレント・ディレクトリーをスクリプトのディレクトリーに変更し、ic-create-passwordコマンドを実行してパスワード・ファイルを作成します。 - パスワード・ファイルをアンロックするためのパスフレーズは
unlockです。 - ユーザー ID (
u@abc.com)、パスワード (secret)、およびパスフレーズ (unlock) は、それぞれ皆さん独自のものに置き換えてください。
クラウド上のリソースをパブリック・インターネットから分離するという目標を達成する 1 つの方法は、パブリック・インターネット上のインスタンスを削除して、企業の VLAN に別のインスタンスを作成することです。VPN 接続を使用して VLAN に接続する方法については、付属のパッケージに説明されています。
- 所有するインスタンスのリストを取得するには、以下のコマンドを使用します。
> ic-describe-instances -u u@abc.com -w unlock -g %MY_HOME%/mykey.ext
このコマンドによって、削除するインスタンスの ID とその他の詳細が示されます。
- 以下のコマンドを入力します。
INSTANCE_IDには、削除するインスタンスの ID を使用します。> ic-delete-instance -u u@abc.com -w unlock -g %MY_HOME%/mykey.ext -l INSTANCE_ID
上記で使用している
u@abc.comは、架空のユーザー名です。
以下の手順に従って、VLAN 上に新規インスタンスを作成します。
- 仮想マシンを作成するイメージを選択します。イメージのリストを取得するには、以下のコマンドを使用します。
> ic-describe-images -u u@abc.com -w unlock -g %MY_HOME%/mykey.ext > images.txt
- イメージのリストはかなり長いので、
images.txtに保存してください。イメージ ID は、次の手順で必要になります。 - ファイルに保存された上記のコマンドの出力は、以下のような内容になっています。
... ID : 20003206 Name : IBM Lotus Web Content Management 6.1.5 - BYOL Visibility : PUBLIC State : AVAILABLE Owner : SYSTEM Platform : SUSE Linux Enterprise Server/11 Location : 41 ~~~~~ InstanceType ID : BRZ32.1/2048/175 Label : Bronze 32 bit ...
続いて、SUSE Linux Enterprise Server 11 for x86 という名前の ID 20001150 のイメージのインスタンスをプロビジョニングします。
- Bronze 32 ビットのシステムに、インスタンス・タイプ ID BRZ32.1/2048/175 のイメージをプロビジョニングします。
- この仮想マシンをプロビジョニングするのは企業のネットワーク上なので、VLAN がどのように識別されているかを調べる必要があります。それには、以下のコマンドを入力します。
> ic-describe-vlans -u u@abc.com -w unlock -g %MY_HOME%/mykey.ext
- コマンドの出力は以下のようになります。
Executing action: DescribeVLANs ... ---------------------------------- ID : 1 Name : Private VLAN Raleigh Location : 41 ...
仮想マシンに接続するために使用する SSH の鍵は、Development and Test クラウドのユーザー・インターフェース、またはコマンド行を使って生成することができます。
- MyKey という名前の鍵を生成するには、以下のコマンドを入力します。
> ic-generate-keypair -u u@abc.com -w unlock -g %MY_HOME%/mykey.ext -c MyKey ?
- 上記のコマンドによって返されたテキストを、SSH クライアントで使用できるようにテキスト・ファイルにカット・アンド・ペーストします。
これで、仮想マシンのプロビジョニングに必要なすべての情報が揃いました。
- 上記の
ic-create-instanceコマンドによって返された VLAN ID とその他の情報を使用して、仮想マシンを作成します。 - 返される情報には、VLAN と関連付けられたデータ・センターの ID も含まれます。仮想マシンは、VLAN と同じデータ・センター内にプロビジョニングする必要があります。インスタンスを作成するには、以下のコマンドを入力します。
> ic-create-instance -u u@abc.com -w unlock -g %MY_HOME%/mykey.ext -t BRZ32.1/2048/175 -n MySUSE -k 20001150 -c MyKey -d MyDescription -L DATA_CENTER_ID -x VLAN_ID
- 上記のコマンドの
DATA_CENTER_ID変数は値41に、VLAN_ID変数は値1に置き換えてください。 - 仮想マシンの IP アドレスが、システムによって指定の VLAN 上に生成されます。この IP アドレスを調べるには、もう一度
describe instancesコマンドを入力します。 - このコマンドは、インスタンスがいつ起動されたかがわかるように、インスタンスのステータスも示します。コマンドの応答は、以下のような表示になります。
Executing action: CreateInstance ... The request has been submitted successfully. 1 instances! ---------------------------------- ID : 36519 Name : MySUSE Hostname : InstanceType : BRZ32.1/2048/175 IP : KeyName : MyKey Owner : u@abc.com RequestID : 36819 RequestName : MySUSE Status : NEW Volume IDs : ---------------------------------- Executing CreateInstance finished
- 要求のステータスは、Development and Test クラウドのコントロール・パネルで監視することができます。あるいは、上記の
ic-describe-instancesコマンドを使って、インスタンスが使用可能な状態になっていることを確認することも可能です。その場合には、以下のような内容が出力されます。Executing action: DescribeInstances ... 1 instances! ---------------------------------- ID : 36519 Name : MySUSE Hostname : 10.216.1.129 InstanceType : BRZ32.1/2048/175 IP : 10.216.1.129 KeyName : MyKey Owner : u@abc.com RequestID : 36819 RequestName : MySUSE Status : ACTIVE Location : 41 Vlan ID : 1 Vlan Name : Private VLAN Raleigh Vlan Location : 41 Volume IDs : Disk Size : 175 Root Only : null
- ステータスが
ACTIVEとなっていることに注意し、インスタンスに接続するための IP アドレスを覚えておいてください。
以上のタスクを完了したので、コマンド行スクリプトによってクラウドのコンピューティング・リソース管理を自動化する方法がわかったはずです。
オートノマス・エージェント機能を使用することで、IBM Tivoli Enterprise Monitoring Agent を Tivoli Enterprise Portal とは独立して使用することができます。Tivoli システム・モニタリング・エージェントとは、IBM Tivoli Enterprise Portal への依存関係を持たないようにインストールおよび構成されるオペレーティング・システム・エージェントのことです。エージェントはデフォルトで、オートノマス機能を持つように構成されます。オートノマス・モードでは、エージェントが単独で動作してデータを収集し、シチュエーションを実行し、イベントを生成します。また、単純なスタンドアロンの HTML/XML インターフェース、REST API、およびセキュア認証を提供するとともに、SNMP イベントを出力します。
オートノマス・エージェントは、開発スキルは揃っているのに、開発およびテスト環境では完全な監視ソリューションのコストが正当なコストとして認められない場合に適したソリューションとなります。また、再利用可能なクラウド・アプリケーションに統合する軽量の監視コンポーネントとしても適しています。例えば、かつてはソフトウェア・インストール・イメージが製品として提供されていましたが、今ではそのような製品が、オペレーティング・システムと構成済みソフトウェアが組み込まれた仮想アプライアンスとして提供されることも珍しくなくなっています。このような仮想アプライアンスのオファリングに組み込むには、軽量の監視ソリューションが妥当です。ただし、銀行業務や保険、e-コマース、出荷、輸送などのミッション・クリティカルなアプリケーションには、完全な監視ソリューションが適切な選択肢となります。
プライベート・イベントとは、監視サーバーによって処理されるエンタープライズ・イベントとは対照的に、ローカルで処理されるイベントのことです。イベントは、SNMP イベントとして出力することも、EIF (Event Integration Facility) イベントとして出力することもできます。プライベート・イベントのシチュエーションは、エンタープライズ・イベントと同じように、XML ファイルを使って構成することができます。これらのイベントを作成するには、IBM Tivoli Enterprise Portal シチュエーション・エディターを使用します。
イベントは、データが欠落しているというシチュエーションや、特定の値に達したというシチュエーションによって定義することができます。以下に、シチュエーションの一例を記載します。
<?xml version="1.0" encoding="UTF-8"?>
<PRIVATECONFIGURATION>
<PRIVATESIT>
<SITUATION NAME='High_CPU'/>
<CRITERIA> <![CDATA[ *VALUE Linux_CPU.Idle_CPU *LT 10 *AND
*VALUE Linux_CPU.CPU_ID *EQ Aggregate ]]> </CRITERIA>
<CMD><![CDATA[High CPU' > ~/cpulog.txt]]></CMD>
<AUTOSOPT When='Y' Frequency='Y' />
<INTERVAL>000100</INTERVAL>
</PRIVATESIT>
</PRIVATECONFIGURATION>
|
- この XML フラグメントにあるのは、1 つのプライベート・シチュエーションです。このコードは、仮想マシンの CPU 使用率を平均することによって、CPU 使用率の上昇を検出します。間隔は 1 分 (000100) に設定されています。
- この式では
*VALUE、*LT、*AND、および*EQ基準関数を使用して、CPU アイドル時間が短すぎるという条件のテストをします。 - この条件に当てはまる場合、
<CMD>要素に含まれるコマンドが実行されます。このコマンドは、cpulog.txtファイルに行を記録する場合の例です。実際の実装では、このコマンドを上記で紹介した Development and Test クラウドのコマンド行スクリプトに置き換える必要があります。 <AUTOSPOPT>要素は、<CMD>要素がコマンドの実行頻度を指定している場合に必要です。When属性の値Yは、真に評価された項目のそれぞれに対してコマンドが実行されることを意味します。Frequency属性の値Yは、基準が真に評価されるたびにコマンドが実行されることを意味します。- このコードが適切に機能することをテストするには、CPU 値を 10 から 100 に変更して、シチュエーションがサンプリングされるたびにコードがトリガーされるようにします。
- 使用可能な属性は、以下に示すファイルに記載されています。
/opt/IBM/ITM/tables/TEMS/ATTRLIB/klz.atr
Linux エージェントがレポートするモニター属性は、ログイン・パラメーター、ディスク使用量、ネットワーク使用量、CPU、プロセス、システム統計 (スワッピングなど)、ディスク I/O、NFS をはじめ、何百もあります。以下に、使用できる属性のうち、手始めとして役立つ属性を記載します。
- ログイン変数:
KLZ_User_Login.System_Name、KLZ_User_Login.Timestamp、KLZ_User_Login.User_Name、KLZ_User_Login.Login_PID、KLZ_User_Login.Line、KLZ_User_Login.Login_Time、KLZ_User_Login.Idle_Time、KLZ_User_Login.From_Hostname - ディスク使用量:
KLZ_Disk.System_Name、KLZ_Disk.Timestamp、KLZ_Disk.Disk_Name、KLZ_Disk.Mount_Point、KLZ_Disk.FS_Type、KLZ_Disk.Size、KLZ_Disk.Disk_Used、KLZ_Disk.Disk_Free、Linux_Disk.Space_Available_Percent - ネットワーク使用量:
KLZ_Network.System_Name、KLZ_Network.Timestamp、KLZ_Network.Network_Interface_Name、KLZ_Network.Interface_IP_Address、KLZ_Network.Interface_Status、KLZ_Network.Transmission_Unit_Maximum、KLZ_Network.KBytes_Received_Count、KLZ_Network.Bytes_Received_per_sec、KLZ_Network.KBytes_Transmitted_Count、KLZ_Network.Bytes_Transmitted_per_sec - CPU:
KLZ_CPU.System_Name、KLZ_CPU.Timestamp、KLZ_CPU.CPU_ID、KLZ_CPU.User_CPU、KLZ_CPU.User_Nice_CPU、KLZ_CPU.System_CPU、KLZ_CPU.Idle_CPU、KLZ_CPU.Busy_CPU、KLZ_CPU.Wait_IO_CPU、KLZ_CPU.User_Sys_Pct、KLZ_CPU_Averages.System_Name、KLZ_CPU_Averages.Timestamp、KLZ_CPU_Averages.Days_to_CPU_Upgrade、KLZ_CPU_Averages.CPU_Usage_Current_Average、KLZ_CPU_Averages.CPU_Usage_Moving_Average、Linux_CPU.Idle_CPU、Linux_CPU.CPU_ID、Linux_Process.Busy_CPU - プロセス:
KLZ_Process.System_Name、KLZ_Process.Timestamp、KLZ_Process.Process_ID、KLZ_Process.Parent_Process_ID、KLZ_Process.Process_Command_Name、KLZ_Process.Proc_CMD_Line、KLZ_Process.State、KLZ_Process.Proc_System_CPU、KLZ_Process.Total_Size_Memory、KLZ_Process.Threads - システム統計:
KLZ_System_Statistics.System_Name、KLZ_System_Statistics.Timestamp、KLZ_System_Statistics.Ctxt_Switches_per_sec、KLZ_System_Statistics.Pct_Change_Ctxt_Switches、KLZ_System_Statistics.System_Load_1min、KLZ_System_Statistics.System_Load_5min、KLZ_System_Statistics.System_Load_15min、KLZ_System_Statistics.Pages_paged_in、KLZ_System_Statistics.Pages_Swapped_in、KLZ_Swap_Rate.System_Name、Linux_System_Statistics.Pages_Swap_in_per_sec、Linux_System_Statistics.Pages_Swap_out_per_sec - ディスク入出力:
KLZ_Disk_IO.System_Name、KLZ_Disk_IO.Transfers_per_sec、KLZ_Disk_IO.Blk_Rds_per_sec、KLZ_Disk_IO.Blk_wrtn_per_sec - NFS:
KLZ_NFS_Statistics.System_Name、KLZ_NFS_Statistics.NFS_lookups、KLZ_NFS_Statistics.NFS_Read_Calls、KLZ_NFS_Statistics.NFS_Writes
エージェント構成ファイルは /opt/IBM/ITM/config/lz.ini です。このファイルに、IRA_AUTONOMOUS_MODE=Y となっている行があることを確認してください。
以下の手順で、このプライベート・シチュエーションを試してみます。
- 上記の XML を
lz_situations.xmlという名前のファイルにカット・アンド・ペーストします。 - このファイルを
/opt/IBM/ITM/localconfig/lzディレクトリーに配置します。 - カット・アンド・ペーストのプロセスで有効な XML ではない文字が 1 つも入り込んでいないことを確実にします。それには、ファイルを Web ブラウザーにロードして確認します。
- 以下のコマンドを使ってエージェントを再起動します。
sudo /etc/init.d/ITMAgents1 stop sudo /etc/init.d/ITMAgents1 start
ヒストリー・モニタリング・データをローカルに収集するためのパラメーターを定義することもできます。エージェント・オートノミーについての詳細は、IBM Tivoli Monitoring 6.2.2 インフォメーション・センターの「エージェント・オートノミー」セクションを参照してください。インフォメーション・センターには、プライベート・シチュエーションのサンプル構成ファイルも記載されています。
エージェント情報、プライベート・シチュエーション、ヒストリーなどのレポートをはじめとする情報をエージェントから受信するには、エージェント・サービス・インターフェースを使用します。エージェント・サービスには、HTTP サーバーとして動作する IBM Tivoli Monitoring Service Index 機能からアクセスします。
- エージェント・サービス・インターフェースを起動するには、URL
http://<host name>:1920またはhttps://<host name>:3661/をブラウザーに入力します。 - 図 18 のような画面が表示されます。
図 18. IBM Tivoli Monitoring Service Index
- 「IBM Tivoli LZ Agent Service Interface (IBM Tivoli LZ エージェント・サービス・インターフェース)」リンクにアクセスして、エージェント情報、シチュエーション、ヒストリー、照会、エージェント・サービス要求を表示します。この時点で問題が発生した場合は、Yast (SUSE 上) を使用してファイアウォールの設定を確認および調整します。
- エージェント・サービス・インターフェース用のポートを開く必要があります。このポートは、エージェントが起動するたびにランダムに設定されます。ポートを開くには、コマンド行で「
yast」と入力し、「Security and Users (セキュリティーおよびユーザー)」 > 「Firewall (ファイアウォール)」へと進みます。 - 「Allowed Service (許可されるサービス)」から「Advanced (拡張)」を選択します。
- 「LZ Agent Service Interface (LZ エージェント・サービス・インターフェース)」にマウスを重ねると表示される TCP ポートを入力します。これらのページは、Microsoft Internet Explorer ブラウザーを使用したほうが適切に機能するようです。
- 問題が発生した場合は、
/opt/IBM/ITM/logsのエージェント・ログを調べてください。エラーの有無をチェックするには、> grep 'private situation' /opt/IBM/ITM/logs/*.*, のようなコマンドを使ってログを grep 検索します。 - Linux エージェント・サービス・インターフェース画面が表示されます。
図 19. Linux エージェント・サービス・インターフェース
- 「Queries (照会)」リンクにアクセスすると、プロセス・リストなどのモニター情報を確認することができます。
図 20. プロセス・リスト
- 「Situations (シチュエーション)」リンクからは、XML ファイルに定義されたシチュエーションを表示することができます。図 21 に示す
Linux_High_CPU_Overload シチュエーションは、前に記載したサンプル XML ファイルに定義されたシチュエーションです。
図 21. Linux_High_CPU_Overload シチュエーション
- このイベントの実行をテストするには、root ユーザーのホーム・ディレクトリーにある
cpulog.txtファイルで、Web インターフェースのTRUESAMPLES値がゼロ以外の値になっているところを探します。
この時点で、軽量の監視ソリューションに必要なすべてのコンポーネントが揃いましたが、このソリューションには、監視対象システムのそれぞれに Development and Test クラウドのコマンド行バンドルをデプロイしなければならないという欠点があります。この欠点に対処するには、以下に説明するオートノマス・エージェントの REST インターフェースを使用します。
- エージェント・サービス・インターフェースに示される「Service Request Interface (サービス要求インターフェース)」リンクは、エージェントによって収集されたデータを XML 形式で取得できる REST インターフェースです。
- REST API についての詳細は、IBM Tivoli Monitoring インフォメーション・センターを参照してください。
- IBM Tivoli Monitoring Agent Service Interface Client (図 22 を参照) は、REST サービス・インターフェースのテストに使用できる便利なツールです。
- プライベート・シチュエーションの制御では、
<PVTCONTROL>要求によってモニタリング・エージェントでプライベート・シチュエーションを開始、停止、または再利用することができます。
図 22. IBM Tivoli Monitoring Agent Service Interface Client
- トラブルシューティングを行う際には、前述したように Yast を使用してファイアウォールの設定を確認することを忘れないでください。
- リモート・アクセスを行うには、各エージェントがアウトバウンド・ポート 1918 を開く必要があります。管理側サーバーには、1918 および 1920 が必要です。
この記事では、以下の操作を行う方法について、その手順を説明しました。
- Development and Test on the IBM Cloud を使用して仮想マシンを作成する方法
- クラウド上の IBM Tivoli Monitoring を使用してシステムを監視する方法
- Development and Test on the IBM Cloud コマンド行ツールを使用して仮想マシンの作成、削除を自動化する方法
- IBM Tivoli Monitoring オートノマス・エージェントの機能を使用して軽量の監視ソリューションを実装する方法
Development and Test on the IBM Cloud カタログにある IBM Tivoli Monitoring イメージを使って、上記の方法を自分で試してみてください。
学ぶために
- IBM
Tivoli Monitoring Version 6.2.2 を導入してください (このリソースにアクセスするには、IBM Smart Business Development and Test on the IBM Cloud のアカウントにサインアップする必要があります)。
- 「IBM
Smart Business Development and Test on the IBM Cloud Command Line Tool Reference,
2010」(ドキュメント・バージョン v2.1)。
- ITM from the IBM
Tivoli Monitoring インフォメーション・センターおよび IBM
Tivoli Monitoring Portal で詳しい情報を集めてください。
- developerWorks
のクラウド開発者向けリソースで、クラウド開発プロジェクトを作成しているアプリケーションおよびサービス開発者たちの知識と経験を調べて共有してください。
- IBM developerWorks Tivoli で、Tivoli 製品に関する技術記事、チュートリアル、コミュニティー、ウィキ、ビジネス・リソースを探してください。
- 次のステップ: IBM
Smart Business Development and Test on the IBM Cloud にアクセスする方法を調べてください。
製品や技術を入手するために
- IBM Smart Business Development
and Test on the IBM Cloud で使用できる製品イメージを調べてください。
議論するために
- developerWorks
のクラウド・コンピューティング・グループの一員になってください。
- developerWorks
でクラウドに関する優れたブログのすべてを読んでください。
- 専門家のネットワークであるとともに、互いにつながりを持ち、共有、協力するためのコミュニティー・ツールが集められている
developerWorks コミュニティーに加わってください。

ここ数年、Dominique Vernier は Java 技術とクラウド・アーキテクチャーを中心とした業務を行っています。また彼は非常に長く情報技術に従事しており、メッセージング、データベース、SOA、EAI、クライアント/サーバー、C/C++、既存フレームワークなどに関して幅広い知識を得ています。また彼は、通信、CRM、ロジスティクス、保険などの業界にも幅広い知識を持っています。彼はステート・エンジンとリソース管理に関する 4 件の特許と共同特許を持っています。現在は South-West Europe Cloud Center of Excellence で、プライベートおよびパブリック・ソリューションのための Smart Business Development and Test Cloud に従事しています。

Alex Amies は、中国の IBM GTS Development Lab に勤務するシニア・ソフトウェア・エンジニアです。彼は現在、アーキテクトとして IBM Smart Business Development and Test on the IBM Cloud の設計に携わっています。以前は、IBM 内の他のグループでクラウドおよびエキュリティー製品のアーキテクト、開発者として活躍していました。

