550 likes | 1.63k Views
ITM-TEC 連携を使いこなそう . IBM Integrated Technology Delivery, Server Systems Operations, Mika Tsuganezawa/Japan/IBM@IBMJP IBM Tivoli Technical Sales, Yuhki Hanada/Japan/IBM@IBMJP. Disclaimer. 当資料で提供する技術情報は、各製品の出荷前コードに基づくものを含みます。
E N D
ITM-TEC連携を使いこなそう IBM Integrated Technology Delivery, Server Systems Operations, Mika Tsuganezawa/Japan/IBM@IBMJP IBM Tivoli Technical Sales, Yuhki Hanada/Japan/IBM@IBMJP Tivoli Technical Sales
Disclaimer • 当資料で提供する技術情報は、各製品の出荷前コードに基づくものを含みます。 • この資料は日本アイ・ビー・エム株式会社の正式なレビューを受けておりません当資料は、資料内で説明されている製品の使用を保証するものではありません。 • 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2006年11月から現在までの幾つかのレベルの製品で作成されています。製品の新しいリリース、PTFなどによって動作、仕様が変わる可能性があるのでご注意下さい • 今後国内で提供されるリリース情報は、対応する発表レターなどでご確認ください。 Tivoli Technical Sales
登録商標 以下は、IBM Corporationの米国およびその他の国における商標です。 • AIX, AS/400, BLADECENTER, BLUEGENE, DB2, E-BUSINESS, IBM, ISERIES, MICRO-PARTITIONING, TIVOLI, Lotus, Lotus Domino, Lotus iNotes, Lotus Notes, Lotus Sametime, OS/390, PSERIES, RATIONAL, RS/6000, S/390, SECUREWAY, WEBSPHERE, XSERIES, Z/OS, ZSERIES • “Java” およびすべてのJava関連の商標およびロゴは Sun Microsystems, Inc.の米国およびその他の国における商標です。(http://w3.java.ibm.com/java/legal/logo_guide.htmlを参照して下さい。) • “Microsoft” “Windows” “Windows NT” および “Windows”ロゴは Microsoft Corporationの米国およびその他の国における商標です。 • “Intel”, “Intel(ロゴ)”, “Intel Inside”, “Intel Inside (ロゴ)”, “Intel Centrino”, “Intel Centrino(ロゴ)”, “Celeron”, “Intel Xeon”, “Intel SpeedStep”, “Itanium”, “Pentium” は Intel Corporationまたは子会社の米国およびその他の国における商標または登録商標です。 • “UNIX”はThe Open Groupの米国およびその他の国における登録商標です。 • “Linux”は、Linus Torvaldsの米国およびその他の国における商標です。 • “ITIL”は英国Office of Government Commerceの登録商標および共同体登録商標であって、米国特許商標庁にて登録されています。 • “IT Infrastructure Library”は英国Office of Government Commerceの一部であるthe Central Computer and Telecommunications Agencyの登録商標です。 • 他の会社名、製品名およびサービス名等はそれぞれ各社の商標です。便宜上記載する場合がありますが、それら権利を侵害する意志や目的はありません。 Tivoli Technical Sales
Win TL04 TEMS/TEC=AIX V5.3 TEMS/TEC=AIX V5.3 TL05 はじめに • この資料では、ITM6.1 -> TECイベント連携時に、TECへフォワードされるTECイベントのカスタマイズ方法や、イベント・フォワード時のTIPSについて記しています。 • この資料は、ITM6.1 FP03レベルのTEMSを使用し、ISEのテスト環境で行った実験を元に作成したものです。(全ての内容についてAIX/Windows両方のプラットフォームで同じテストを行ったわけではありませんので、ご了承下さい) • この資料で記載されている内容の多くは、マニュアルに詳細に記述が存在するわけでは無いため、多くは実験結果に基づく情報になります。実験の精度には十分に注意していますが、至らぬ点があるかもしれません。お気づきの点がございましたら、フィードバックを頂けると幸いです。実際の実験結果が記載されている部分には検証環境マークを付けました。それぞれの意味は以下の通りです。 • 資料の作成過程において、多大なご協力を頂いたプロジェクト関係者、サポート部門の方々にこの場を借りてお礼を申し上げます。 TEMS FP03/TEC3.9 FP04(同居構成) on Windows2003 Server SP1 TEMS FP03/TEC3.9 FP03 (同居構成) on AIX V5.3 TL04TEMS FP03/TEC3.9 FP03 (同居構成) on AIX V5.3 TL05 + IY89597(※1) ※1 TL05の使用には、IY89597もしくは、それを含むSP2以上のFIXの適用が必須です。 TEMS/TEC=Win2003 最終更新日: 2010/02/02 Tivoli Technical Sales
履歴 この文書は、改良のため予告なく追記・変更される可能性があります。お手元の資料が最新版かどうか常にご確認下さい。 Tivoli Technical Sales
ITM-TEC連携とは ■ITM6.1のTEC連携(TEC Integration)- TECイベント・フォワーディング ITM6.1のシチュエーション・イベントを、TECのイベントとしてTECに集約 する機能です。TEMSの標準機能の一部として提供されています。- イベント同期(Synchronization)イベント・フォワーディングで、TECに送られたイベントと、ITM6.1のシ チュエーション・イベントの状態を同期させる機能です。 イベント同期機能を使用するには、「IBM Tivoli Monitoring & Tivoli Enterprise Console Event Synchronization」というモジュールをTEC Server に導入する必要があります。 このモジュールの導入により、例えば、「ITMのシチュエーション・イベントがク ローズした場合、それに対応するTECイベントが連動してクローズする」 「TECのイベントを手動でクローズした場合、それに対応するITM6のイベント が連動してクローズする」等の双方向の連動が可能になります。 「イベント同期」を行うには、必然的に「イベント・フォワーディング」が有効に なっている必要があり、イベント・フォワーディングもイベント同期機能の一部 と考える事もできます。- TEC Console ViewTECのEvent コンソールをTEPの中に表示する機能です。 Tivoli Technical Sales
TECイベントへのマッピング Tivoli Technical Sales
Win Win シチュエーション: TEST_Missing_Proc ※評価式中にMissing関数 と、シチュエーションの式評価 の両方が存在する場合は、必ずシチュエーションの評価が先に実行される現象が確認されています(FP03)そのため、マッピングさせるTECクラスの制御が困難な場合があります。 シチュエーション: TEST_Composite_Missing_Proc TEC イベント・フォワーディング <TECクラスへのイベントのマッピング> 例1) シチュエーションが、Process 属性グループの属性値に対して作成されている場合 Process属性グループ属性 ITM_Process クラスへマッピング tested with TEMS/TEC=Win2003 例2) シチュエーションが、Process属性グループとDisk属性グループの複合である場合 Process属性グループ属性 Disk属性グループ属性 先に評価される属性グループのクラスにマッピングされる ITM_Process クラスへマッピング 注意 tested with TEMS/TEC=Win2003 Tivoli Technical Sales
Win Win TEC イベント・フォワーディング <TECクラスへのイベントマッピング> 例3) シチュエーションが、Process属性グループとDisk属性グループの複合である場合② Disk属性グループ属性 Process属性グループ属性 先に評価される属性グループのクラスにマッピングされる ITM_Disk クラスへマッピング シチュエーション: TEST_Composite_Missing_Proc_Rev tested with TEMS/TEC=Win2003 例4)例3のシチュエーションの評価順を変更 Process属性グループ属性 Disk属性グループ属性 先に評価される属性グループのクラスにマッピングされる ITM_Process クラスへマッピング シチュエーション: TEST_Composite_Missing_Proc_Rev (例3のTEST_MountPointを削除->再追加で後評価へ) tested with TEMS/TEC=Win2003 Tivoli Technical Sales
Win TEC イベント・フォワーディング <TECクラスへのイベントマッピング> 例5)OR条件の指定 Disk属性グループ属性。/test が存在する場合「真」 Process属性グループ属性。test.sh が存在する場合「真」 /test をマウントして、Disk属性グループの条件だけを「真」にした場合 test .shを起動して、Process属性グループの条件だけを「真」にした場合 シチュエーション名:TEST_OR_Sit OR条件でシチュエーションを作成した場合は、「真」になった方の属性グループのクラスにマッピングされます。※OR条件で、両方同時に真になった場合、どちらのTECクラスが使用されるかは、今回の実験では、法則を発見するまで追求はしませんでした。 tested with TEMS/TEC=Win2003 Tivoli Technical Sales
シチュエーション名: TEST_Missing_Mulit_Proc TEC イベント・フォワーディング <TECクラスへのイベントマッピング> 例6)複数プロセスの「表示項目」を使用した監視 ①Missing関数と属性「プロセス・コマンド(Unicode)」を使用して、4つのプロセスを監視するシチュエーション「TEST_Missing_Mulit_Proc」を作成します。 ② シチュエーション・エディターの「拡張」ボタンをクリックし、「表示項目」から、シチュエーション内で比較対象に使用している「プロセス・コマンド(Unicode)」に対応する、「Process_Command_U」を選択します。 ③シチュエーション・イベント・コンソールに表示するために、関連付けを行います。 Tivoli Technical Sales
tested withTEMS/TEC=AIX V5.3 TL05 TEC イベント・フォワーディング <TECクラスへのイベントマッピング> 例6)複数プロセスの「表示項目」を使用した監視(続き) ④シチュエーション・イベントと、TECイベントコンソールには、それぞれのプロセス毎にイベントが生成されます。 4つのTECイベントとして取り扱われます。 「表示項目」カラムで、同じシチュエーションでも、どのプロセスに対してオープンしているか区別する事ができます。 実験では、「表示項目」の値は、TECイベント・スロットの「situation_displayitem」に入っていました。 ⑤./test2.sh & で、監視対象であるプロセスを一つだけ起動させます。 ⑥起動したプロセスの分の、シチュエーション・イベントと、TECイベントだけがクローズします。 TECイベントも3つになります。(test2.sh のイベントがクローズされる為) 注意:「表示項目」を使用したシチュエーションを作成する場合、現状では、他のシチュエーションを組み込む方法が使用できない場合がある様です。(FP03レベルでの確認)詳細については、P.15からの”<参考2>「表示アイテム(Display Item)」を使用する際の注意”を参照ください。 Tivoli Technical Sales
Win ? Process属性グループ属性を、一番最初にダミーとして追加 tested withTEMS/TEC=AIX V5.3 TEST_HA_PROC_MONITOR TL05 TL05 <参考1>Missing関数と、シチュエーションの真偽評価の組み合わせ 評価式中にMissing関数 と、シチュエーションの式評価 の両方が存在する場合は、必ずシチュエーションの評価 が、必ず先になる現象が確認されています。(ITM6.1 FP03現在) 例えば、以下の様なHAのサービス・ノードを示すフラグ・ファイルが存在する時に、サービス・プロセスの監視を行うようなシチュエーション「TEST_HA_PROC_MONITOR」を作成した場合、「TEST_FLAG_FILE_EXISTS」の評価が必ず先に行われるため、TECのイベントは、先に評価される属性の”File Information”に基づいた、”ITM_File_Information”クラスがアサインされます。 File Information属性グループ属性 Process属性グループ属性 監視しているプロセスが落ちた場合、「ITM_File_Information」クラスでTECイベントが通知される 入れ替えようとしても戻ってしまう tested with TEMS/TEC=Win2003 AIX V5.3 TEST_HA_PROC_MONITOR 「ITM_Process」としてTECイベント通知したい場合は、以下の用に、必ず真になる「Process」属性グループの属性を追加で先頭に挿入する事で、回避する方法があります(※1)。 「ITM_Process」クラスでTECイベントが通知される。 ※1 TEC側のイベントスロットに必要な値が必ず挿入されているか、注意事項などがあるか等の詳細は検証していませんので、ご使用の環境でご確認下さい。 Tivoli Technical Sales
tested withTEMS/TEC=AIX V5.3 TL05 <参考2>「表示項目(Display Item)」を使用する際の注意 ■ 「表示項目(Display Item)」とは 「表示項目」を使用すると、この部分に値を表示させる事ができます。 UNIXの場合は、/bin/ksh ./test.shの様に指定するべきなので、この指定方法では必ずMissing関数は真になります。 この例の場合は、シチュエーション式に指定した値が、表示されました。シチュエーションの条件によっては、実際に取得した値の方が表示される場合もあるようです。 Tivoli Technical Sales
tested withTEMS/TEC=AIX V5.3 TL05 <参考2>「表示項目(Display Item)」を使用する際の注意(続き) ■ 「表示項目(Display Item)」を使用する際の注意 • 組み込みシチュエーションを使用して、シチュエーションを作成した場合、シチュエーション・エディターの「表示項目」は、使用できなくなる場合があるようです。 前述の「表示項目」指定で使用したシチューションに、別のシチュエーションの評価を追加 UNIXの場合は、/bin/ksh ./test.shの様に指定するべきなので、この指定方法では必ずMissing関数は真になります。 • 「表示項目」値を指定したまま、そのシチュエーションを利用して、上記の様な組み込みシチュエーションを作成すると、シチュエーションが真になる条件が揃っていても、シチュエーション・イベント・コンソールにシチュエーション・イベントが表示されない/TECにイベントがフォワードされない現象が確認されています。(FP03レベルで確認) シチュエーション・イベント・コンソールへイベントが表示されません。(TECへのイベント通知も確認できませんでした) • この場合は、「表示項目」を使用しているシチュエーションから、「表示項目」を<未選択>に設定し、組み込みシチュエーションを作り直す事で、解決できる事を確認しています。 元のシチュエーションの「拡張」->「表示項目」タブを<未選択>に設定します。 Tivoli Technical Sales
<参考3>FP02以降のTECイベントのunknown FP02以降では、シチュエーションで指定したイベントの重大度が、TEC側のイベントの重大度として “Unknown”になってしまいます。 重大度が Unknown になっている FP02以降、仕様変更が入り、新規に作成したシチュエーションは、TECイベントの重大度は、シチュエーション・エディターの設定に関わらず「Unknown」となるようです。■Technote : IBM - Situation TEC Events show severity UNKNOWN after FP02 http://www-1.ibm.com/support/docview.wss?rs=607&context=SW000&q1=KFW_CMW_SET_TEC_SEV&uid=swg21245520&loc=ja_JP&cs=utf-8&lang=en 以下のいずれかの方法で重大度が設定できます。 • TEMS 上の tecserver.txt に重大度を定義する。 • シチュエーション名の最後に、重大度を示す “_Crit”,”_Critical”,”_Warn”, ”_Warning”等をつける • TEPSの環境変数 kfwenv (Win:注意1)/ cq.ini (Unix/Linux)に以下の環境変数を指定する。 KFW_CMW_SET_TEC_SEV=Y この設定をする事で、シチュエーション・エディターで指定した重大度がTECイベントに反映されます。 注意1)Windowsの環境変数は、MTEMS(Manage Tivoli Enterprise Monitoring Services)アプリケーションから、TEPSを選択し、 「Advanced」->「Edit Variables..」 でGUI上で指定する方法もあります。( kfwenvに値は書かれませんが、registry に値が追加され、Recycle後有効になります) Tivoli Technical Sales
<参考4>組み込みシチュエーションと相関シチュエーション<参考4>組み込みシチュエーションと相関シチュエーション ■組み込みシチュエーション 他のシチュエーションの式の評価を、別のシチュエーションに「組み込んでいる」シチュエーションの事を指します ■相関シチュエーション 全体がシチュエーションの評価式のみで構成されているのが特徴の一つです(必要十分条件ではありませんのでご注意下さい)。配布先はHUB TEMSになります。管理対象システム間で、連携を持たせたシチュエーションを作成する場合に使用します。 他のシチュエーションの評価が埋め込まれています。 シチュエーションの作成時にここをチェックします。 シチュエーションの評価式だけで、一つのシチュエーションが構成されます。また、シチュエーションがどの管理対象システムが保持しているシチュエーションなのかが@マーク以降に表示されます。 TEMSのツリー下に作成されます Tivoli Technical Sales
Win <参考4>組み込みシチュエーションと相関シチュエーション(続き) ■相関シチュエーションとTECイベントマニュアル上では、以下の記述が存在し(2006/11/07現在)、相関シチュエーションから送られるTECイベントはサポートされていないように見受けられます。 「IBM Tivoli Monitoring V6.1 管理者ガイド」(P.58) IBM Tivoli Monitoring 相関シチュエーションからの転送Tivoli Enterprise Console イベント IBM Tivoli Monitoring 相関シチュエーション・イベントのTivoli Enterprise Consoleイベント転送は、現在はサポートされていません。IBM Tivoli Monitoring 相関シチュエーションでは内部Tivoli Enterprise Monitoring Server 表が使用されますが、この表はTivoli Enterprise Console イベント・クラスにはマップできません。 一方で、FP03環境で以下の相関シチュエーションを作成した所、TECにイベントがフォワードされる事が確認でできました。マニュアルの作成時と現在で、状況が変わっている可能性がありますが、正式なコメントがあるわけではございませんので、使用には注意と検証が必要です。 作成した「相関シチュエーション」シチュエーション名: TEST_CORRELATE_SIT TECコンソール画面 tested with TEMS/TEC=Win2003 Tivoli Technical Sales
カスタム・イベントマッピング Tivoli Technical Sales
TEC イベント・フォワーディング <カスタマム・イベント・マッピング> • k*.map というXML形式の設定ファイルを作成する事で、シチュエーションの属性値を、任意のTECイベントの、任意のスロットにマッピングできます。 • k*.map ファイルとは? 「アップグレード・ツール」(Tivoli Distributed Monitoring V3.7をIBM Tivoli Monitoring V6.1へアップグレードするためのツール)内で、使用されている、DMから移行したシチュエーションの属性値等を、TECイベントにマッピングするための設定ファイルです。FP03レベル現在では、k*.mapファイルは、この「アップグレード・ツール」でのみ使用されています。 • アップグレード・ツールを使用していない状態でも、デフォルトでTEMSのディレクトリにknt.map / kux.map ファイルが存在しています(ITM6.1 FP03 AIX/Windows環境で確認)。 • Windowsの場合 <install directory>\cms\TECLIB 例) C:\IBM\ITM\cms\TECLIB • AIXの場合 <install directory>/tables/<TEMS Name>/TECLIB 例)/opt/IBM/ITM/tables/Hub_TEMS1/TECLIB Tivoli Technical Sales
※tested with TEMS/TEC=AIX V5.3 TL04 TEC イベント・フォワーディング <カスタマム・イベント・マッピング> ■k.*mapファイル作成・テストの流れ ①k*.mapファイルを作成し、ディレクトリに配置します。(既存のkux.map等をコピーし、ファイル内のヘッダーやフッターを流用するのが便利です。) -ディレクトリの配置位置(既存のkux.map/knt.mapと同じ場所に置きます) Windowsの場合 <install directory>\cms\TECLIB AIXの場合<install directory>/tables/<TEMS Name>/TECLIB -ファイル名に関する注意 utf-8.map → × ファイル名の先頭にkが必要です。 kutf8.map →○ ktest01.map →○ kux.map → △ 認識はされますが、既にあるファイル名で、今後のFix適用で アップデートされる可能性があるため、避けたが安全です。 ②TEMS をリスタートします。(k*.mapの読み込みのため必要です) ③実際にシチュエーション・イベントを発生させ、指定した通りのTECイベントにマッピングされるか、TECイベントコンソール、もしくは、wtdumprl等のコマンドを使用して確認します。 Tivoli Technical Sales
TEC イベント・フォワーディング シチュエーション名は、 <situation name=“…..”> で指定します。 指定するシチュエーション名には、ワイルドカード(*,?)を使用する事ができるので、複数シチュエーション→ひとつのTECクラスへのマッピング定義が可能です。但し、先頭にワイルドカードは指定できません。 <カスタマム・イベント・マッピング> ■ knt.map 解説(抜粋) ------------ 省略 ----------<itmEventMapping:agent xmlns:itmEventMapping="http://www.ibm.com/tivoli/itm/agentEventMapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ibm.com/tivoli/itm/agentEventMapping agentEventMap.xsd"> <id>NT</id> <version>1.0.0</version> <event_mapping> ------------ 省略 ---------- <situation name="NT_LDDBPS*"> <class name="w2k_LogDskDskBytesPerSec"/> <slot slotName="source"> <literalString value="SENTRY"/> </slot> ------------ 省略 ---------- </situation> ------------ 省略 ---------- </event_mapping> </itmEventMapping:agent> <class name=> で、<situation name=>で指定したシチュエーションに、マッピングするTECクラス名を指定します。 スロット値は、 <slot slotName=> で、変更するTECイベントのスロット名を指定します。 実際に挿入する値は、 <literalString value> <mappedAttribute name> 等を使用して指定します。 Tivoli Technical Sales
TEC イベント・フォワーディング <カスタマム・イベント・マッピング> ■slot値の指定方法 • 任意の文字列をマッピングする <literalString value =“文字列”/> • 例)<slot slotName=“msg”> • <literalString value=“This is test message”/> • </slot> • -シチュエーションの属性値をマッピングする • < mappedAttribute name =“[属性グループ].[属性名]”/> • 例) • <slot slotName=“diskname”> • <mappedAttribute name=“NT_Logical_Disk.Disk_Name”/></slot> Tivoli Technical Sales
TEC イベント・フォワーディング <カスタマム・イベント・マッピング> ■slot値の指定方法 • Universal Agent で定義した属性値をマッピングする ・mdl(メタファイル)での属性定義 //Attributesua_hostname (GetEnvValue = HOSTNAME) ここでは、属性値と同じ名前のTECスロット(ua_hostname)を持つTECクラスを定義し、そのスロットに属性値 ua_hostname をマッピングしています。 ・mapファイルでの定義 <slot slotName="ua_hostname"> <mappedAttribute name="ua_hostname"/></slot> ・wtdumprl 結果 ### EVENT ### ITM_UA_EVENT;cms_hostname=‘lpshare1’; ・・・・・<省略>・・・・・ua_hostname=‘test01’;msg=‘This is test message from……………・・・・・<省略>・・・・・;END Tivoli Technical Sales
Win TEC イベント・フォワーディング <カスタマム・イベント・マッピング> ■slot値の指定方法(続き) -属性値とユーザー指定文字列の混合 ■シチュエーション ■マップファイルの指定 <slot slotName="msg"> <literalString value=“Event from $situation_origin$ value=$Process.Process_Command_U$”/> </slot> ■ TECイベントのmsgスロット(wtdumprl 抜粋) msg='Event from test01.makuhari.japan.ibm.com value=test.sh'; シチュエーション: TEST_Missing_Proc 属性グループ Process属性 Process_Command_Uの値を監視 マップされるイベント中のスロット名 監視している属性グループの属性値名 tested with TEMS/TEC=Win2003 ※TEMS/TEC=AIXの場合は上手く動作しない事が確認されています。(situation_origin がブランクになります)OSプラットフォーム依存のものか、その他の理由によるかはわかっていません。 他のスロットの値や属性値が、msg スロットのメッセージ中に展開されています。 ※この例では、situation_originが、FQDN値に展開されていますが、エージェントの環境によってこのスロット値は異なります。 Tivoli Technical Sales
※tested with TEMS/TEC=AIX V5.3 TL05 TEC イベント・フォワーディング <カスタマム・イベント・マッピング> ■slot値の指定方法(続き) -属性値とユーザー指定文字列の混合 ■マップファイルの指定 <slot slotName=“msg”> <literalString value=“This is test message from $*.ua_hostname$”/></slot> ■ TECイベントのmsgスロット(wtdumprl 抜粋) msg='This is test message from uahost‘; 属性グループを*(アスタリスクで指定) 監視している属性グループの属性値 ※Universal Agent の「属性グループ名」は、mdlファイルの変更に伴いTEST00, TEST01…と変更される場合があるため、上記の様な属性グループ名が指定に必要な例では、*(アスタリスク)で指定しておくと、mdlファイルの変更がマップファイルの変更に影響を与えません。 Tivoli Technical Sales
Win ※tested with TEMS/TEC=AIX V5.3 TL04 TEC イベント・フォワーディング <カスタマム・イベント・マッピング> ■slot値の指定方法(続き) • 日本語の文字列をマッピングする場合 ①<literalString value =“文字列”/>を使用して、メッセージを指定 • 例)<slot slotName=“msg”> • <literalString value=“You can specify any message.日本語でも大丈夫です。”/> • </slot> • ②UTF-8へ.mapファイルを変換(AIXの場合、iconv コマンド等で変換します。Windowsの場合は、UTF-8に対応するtextエディタで編集・保存します。) • iconv -f IBM-943 -t UTF-8 k99.map > k99utf8.map(変換前のファイルは読み込まれないように消去しておきます) TEMSをRecycle後、イベントを確認 ### EVENT ### ITM_Process;cms_hostname=‘test01';cms_port='3661';integration_type='N';master_reset_flag='';appl_label='';situation_name='USER_MISSING_PROC';situation_origin=‘test01:KUX';situation_time='10/04/200609:55:09.000';situation_status='Y';hostname=‘test01';origin=‘1.2.3.4';adapter_host=‘test01';severity='CRITICAL';date='10/04/2006';source='ITM';sub_source=‘test01:KUX';situation_displayitem='';msg='You can specify any message.日本語でも大丈夫です。';situation_eventdata='Command=test;System_Name=test01:KUX~';END ### END EVENT ### TEMS/TEC=Win2003 Tivoli Technical Sales
Win TEC イベント・フォワーディング <カスタマム・イベント・マッピング> ■slot値の指定方法(続き) 注意 期待した値がスロットに入らない ■マップファイルの指定 <slot slotName="msg"> <literalString value=“Event from $origin$ on host $hostname$"/> </slot> ■結果-> origin スロットの代わりに、同じイベント内にあるsituation_originスロットの値 が挿入された。hostnameスロットの代わりに、同じイベント内にあるcms_hostnameスロット の値が挿入された。->$origin$ の指定では、originと situation_origin のスロットが判別できない?$hostname$の指定では、hostnameとcms_hostnameが同一にみなされている? -> 同じ文字列を含むスロット名がある場合は、注意が必要と考えられます。 他のスロットの値を、msg スロットのメッセージ中に埋め込もうとしたのに。。。。 tested with TEMS/TEC=Win2003 Tivoli Technical Sales
※tested with TEMS/TEC=AIX V5.3 TL05 TEC イベント・フォワーディング <カスタマム・イベント・マッピング> ■slot値の指定方法 注意 期待した値がスロットに入らない② literalString で、任意の文字列をアサインしようとするが。。 ■マップファイルの指定 <slot slotName=“hostname"> <literalString value="teststring"/> </slot> ■結果(wtdumprl) ### EVENT ### ITM_UA_EVENT;cms_hostname=‘test_tms';cms_port='3661';integration_type='N';master_reset_flag='';appl_label='';situation_name='UA_TEST_SIT';situation_origin=‘uahost:TEST01';situation_time='12/06/2006 21:53:09.000';situation_status='Y';hostname='';origin='';adapter_host='uahost:UA';severity='UNKNOWN';date='12/06/2006';source='ITM';sub_source='uahost:TEST01';situation_displayitem='';hostname='teststring';ua_hostname='uahost';msg='This is test message from uahost';situation_eventdata='Node_Name=uahost:TEST01;PreviousValue=^;Script=/opt/IBM/ITM/aix516/um/work/../scripts/test.sh;Stdout=1;_LocalTimeStamp=1061206215459010;ua_hostname=uahost~';END →期待した”hostname”スロットは空のままで、同じ名前の別の”hostname”スロットが作成されて、そこに値が挿入されている。 Tivoli Technical Sales
TEC event forwarding 期待した値がスロットに入らない(2)cont. このケースでは、TEC Console GUI上は、問題無くhostnameが表示されていましたが、予期せぬ問題を発生させないためにも、wtdumprl上の出力も確認する必要があります。 製品標準のbaroc内のクラスで使用されている様な、基本的なTECスロットの幾つかで、スロット値が置き換えられない現象が確認されています。また、幾つかの基本的なスロットはomegamon.rls で参照されている可能性があるので、既存のITMクラスで使用されているスロット値の変更は行わない方が無難です。 ※ITM6 Fixpack3を元にする検証結果 Tivoli Technical Sales
①TEPコンソール上で「確認」 ②TEC上に反映される TECコンソール上で「確認」 ②TEP上に反映される ※tested with TEMS/TEC=AIX V5.3 TL05 TEC Event Syncへの影響 <作業内容>・新規TECクラス(一般的なITMクラス同様Sentry3_5_Baseを継承)を追加したbaroc ファイルをルール・ベースにインポート、コンパイル、そしてロード。・*.map ファイルを使用して、シチュエーションを新規クラスにマッピング ■ITM TEP コンソール→ TEC ■TEC →ITM TEP コンソール Event Sync機能に関しては、特別な作業をしなくてもそのまま有効のようです。 Tivoli Technical Sales
TEC イベント・フォワーディング <カスタマム・イベント・マッピング> ■作成したXMLファイルをチェックする 編集した、k*.mapに誤記があると、正しい動作をしません。テストには、TEMSのリスタートや、シチュエーション・イベントを発生させる必要があるので、k*.mapを間違えた場合、修正と検証に時間がかかります。大規模な環境において、効率的な開発を行うためには、構文チェック機能を持ったXMLエディター等を使う事を考慮した方がよいかもしれません。また、簡単な開発であれば、Firefox は、以下の様なXML構文チェック機能を持っていますので、それを利用する方法もあります。 ドラッグ&ドロップ この例は、意図的に<slot>タグの一部を削除した例です。エラーの行・列番号と共に、実際の該当部分が表示されます。 ■参考: IBM dW : XML : Firefox 1.5でのXML、第2回:基本的なXML処理 - http://www-06.ibm.com/jp/developerworks/xml/060407/j_x-ffox2.shtml Tivoli Technical Sales
Win シチュエーション: TEST_Missing_Proc 属性グループ Process属性 Process_Command_Uの値を監視 <カスタマム・イベント・マッピング> ■slot値の指定方法(続き) -属性値とユーザー指定文字列の混合 ■シチュエーション ■マップファイルの指定 <slot slotName="msg"> <literalString value=“Event from $situation_origin$ value=$Process.Process_Command_U$”/> </slot> ■ TECイベントのmsgスロット(wtdumprl 抜粋) msg='Event from test01.makuhari.japan.ibm.com value=test.sh'; マップされるイベント中のスロット名 監視している属性グループの属性値名 tested with TEMS/TEC=Win2003 ※TEMS/TEC=AIXの場合は上手く動作しない事が確認されています。(situation_origin がブランクになります)OSプラットフォーム依存のものか、その他の理由によるかはわかっていません。 他のスロットの値や属性値が、msg スロットのメッセージ中に展開されています。 Tivoli Technical Sales
TECのmsgスロット置き換え作業の実際の流れ ① マッピングを作成 ----- <省略> ----- <situation name="USER_MSG_MAP_TEST*"> <class name="ITM_File_Information"/> <slot slotName="msg"> <literalString value="ファイル $File_Information.File_U$ が見つかりません。"/> </slot> </situation> ②日本語が含まれている場合は、UTF-8へ.mapファイルを変換 (以下はAIXの例) iconv -f IBM-943 -t UTF-8 k99.map> k99utf8.map (変換前のオリジナルのファイルは削除しておく) ③TEMSを再起動 ④Situation を真にし、TEC Event を発生させ TEC Consoleを確認 Tivoli Technical Sales
msgスロット内に書き込む属性のフォーマットの調べ方msgスロット内に書き込む属性のフォーマットの調べ方 ----- <省略> ----- <literalString value="ファイル $File_Information.File_U$ が見つかりません。"/> ①マッピングの対象となるシチュエーションの「アクション」タブから、「属性置換」ボタンをクリックします。 ②フォーマットを調べたい属性を選択します。 ③属性のフォーマットが表示されます。 属性「ファイル(Unicode)」は、「File_Information.File_U」と記述すれば良い事がわかります。 Tivoli Technical Sales
イベント同期機能の制御 Tivoli Technical Sales
注意事項 • ここでの実装例は、Tivoli Technical Sales部門内での実験室レベルでの検証を行っていますが、あくまでサンプルとしてお考え下さい。 • 実際の実装方法は様々なパターンが考えられると思います。ここでの実装例は、その他の実装方法に対して拘束を行うものではありません。 • この実装方法は、日本アイ・ビー・エム株式会社の正式なレビューを受けておりません。また、当資料は、資料内で説明されている製品の使用を保証するものではありませんので、ご理解の程、よろしくお願い致します。 • より使いやすいソリューション構築の一助となれば幸いです。 Tivoli Technical Sales
ITM6のイベントの種類 • ピュア・イベント • 主にLog 監視等で発生するイベント • 自動ではクローズしないため、ユーザーが自動でクローズする必要がある • TECのログファイルアダプターによるイベントと同じ概念 • シチュエーションで「抽出間隔」が指定できない • サンプル・イベント • CPU/Memory/Disk等に設定した閾値を確認する際に発生するイベント • サンプリング周期で状況が確認される • 閾値を下回った場合、自動でクローズされる • シチュエーションで「抽出間隔」が指定可能 • ITM5等で「Clearing Event」を設定した状態 Tivoli Technical Sales
既存環境と新環境の統合時の注意 ITM6の機能を生かしたイベント統合 既存監視対象群 イベントの運用ポリシーが混在する TEC3.9 サンプル・イベント TEC ログイベント 新規監視対象群 ピュア・イベント ITM5イベントclearing=yes Event Forwarding TEPS TEMS TMR/GW ITM6 Agents EndPoint Tivoli Technical Sales
イベント同期機能の制御 ■ デフォルトのイベント同期機能の特徴 TEPコンソール上でサンプルイベントがクローズした時、対応するTECイベントも自動的にクローズします。 ITM5では、ユーザーがリソース・モデルの設定画面で、TECに対して「Clearing Event」を発行するか選択する事ができました。 ITM5.1 のリソース・モデルでは、TECへのクリアリング・イベントを有効/無効にする設定がありました。 もし、現在、ITM5とTECを使用しているシステムがあり、ITM6を使用した新規のシステムと統合したい場合、イベントのクロースを決めるポリシーが運用上重要になります。 良くある要件としては、TECコンソール上のイベントは、オペレーターが確認し、手動でクローズする様にしたいというものがあります。 この場合、ITM6のイベント同期機能のデフォルトの動きはカスタマイズする必要があります。 Tivoli Technical Sales
ITM6/TEC Event 同期機能 – 実装例 TECのイベントは、全てユーザーが確認後、手動クローズ処理したい。TECに送られるイベントを、自動クローズさせたくない。 OpenCloseAcknowledgementetc.. om_tec.config によるフィルター TEMS TEC3.9 TECイベント EIF omegamon.rls om_tec.configtecserver.txt Situation Update Forwarder(プロセス) サンプル・イベント ピュア・イベント 停止 TECに送られてくるイベントは、「ピュア・イベント」と同じ動作になります実際の実装は、Situation Update Forwarderの起動確認ルールを回避する等、幾つかの工夫が必要です。 Tivoli Technical Sales
TEMS→TECへのイベント同期機能の制御 ■ デフォルト時のイベント同期機能の動作 TEPコンソールで「Close」したイベントは、TECコンソール上でも自動的にクローズします。既存の運用方法が、「TECのイベントは、オペレータが確認して手動でクローズする」となっている場合、この同期機能を停止させたい場合があります。 TEMSからTECへ送られる制御イベントを停止されるには、om_tec.config(※) に以下の様にFilter 設定をします。例えば以下の様に設定ができます。 Filter:Class=re:‘ITM_.*’;situation_status=‘N‘ ; ・・・・ (シチュエーションが Falseになった時)Filter:Class=re:’ITM_.*’;situation_status=‘P‘; ・・・・(シチュエーションを停止した時)Filter:Class=re:’ITM_.*’;situation_status=‘D‘; ・・・・(シチュエーションを削除した時)Filter:Class=re:’ITM_.*’;situation_status=‘A‘; ・・・・(シチュエーションを”確認”した時)Filter:Class=re:’ITM_.*’;situation_status=‘E‘; ・・・・(シチュエーションの”確認”を解除した時)Filter:Class=re:’ITM_.*’;situation_status=‘F‘; ・・・・(シチュエーションの”確認”がExpireした時) TEMSからTECへ飛ばされるイベントには、種類があり、上記の設定では、TEMSから送られる既存のイベントのアップデートイベントをTEMS側でフィルタリングする例です。(situation_status スロットの値については、”管理者ガイド”を御参照下さい) TEMS->TECへ同期イベントが飛ばないため、TEC上のイベントは、オペレーターが手動でクローズするまで閉じません。 ※tecserver.txt に、シチュエーション・イベントのTEC Server を明示的に指定している場合は、<TEC Server名>.config が自動的に生成されます。その場合、om_tec.config では無く、<TEC Server名>.config に、<TEC Server名>のTEC Server へフォワードされるイベントのFilter設定を記述する必用があります。 Tivoli Technical Sales
TEC→TEMSへのイベント同期機能の制御 TECサーバーから、TEMSへのイベント同期は、TECサーバー上のSUF(シチュエーション・アップデート・フォワーダー)によって行われます。ここでは、UNIX Platform上でのSUFの停止方法の実装例について解説します。 UNIXプラットフォームの場合、SUFは、omegamon.rls 内から TEC_Start イベントを受け取った時にその起動シェルが実行されます。 また、omegamon.rls 内のタイマー・ルールにより、その稼働状態がチェックされており、もし稼働していない場合は、稼働していない旨を伝える TECイベントを生成する様に omegamon.rls が書かれています。SUFの稼動確認は、runningという名前のファイルが生成されているかどうかで確認されています。 ここの実装例では、Fix Pack等の適用により、omegamon.rls や、startSUF.sh 等が書き換わった場合も考えて、これらのルールやシェルを直接変更していません。 ■TEC_Start を受け取った時 startSUF.sh 等の中身を、実行されても何も起きないように空に書き換える。 /var/TME/TEC/OM_TEC/persistence/running ファイルを生成する ■TEC_Stop を受け取った時 TEC_Start を受け取った時の変更を元に戻す Tivoli Technical Sales
omegamon.rls によるSUFの稼働確認 /var/TME/TEC/OM_TEC/persistence/running Timer による存在確認 omegamon.rls ①running ファイルが存在しない ②TEC_ITM_OM_Situation_Sync_Error の生成 Tivoli Technical Sales
SUF停止実装例のフロー図 SUF無効化用ルール ロード順 TEC_Start disable_suf.rls コール(edit_suf.sh TEC_Start /var/TME...) omegamon.rls $BINDIR/TME/TEC/OM_TEC/bin startSUF.sh.orgquery_state.sh.org startSUF.shquery_state.sh ①バックアップ edit_suf.sh copy ②無効化 query_state.shは、SUF非稼動時にユーザーが実行した場合、runningファイルが消されてしまうため無効化しておきます。 startSUF.shquery_state.sh ③フラグファイル作成 ロード順 /var/TME/TEC/OM_TEC/persistence/running TEC_Stop disable_suf.rls omegamon.rls コール(edit_suf.sh TEC_Stop /var/TME….) /var/TME/TEC/OM_TEC/persistence/running edit_suf.sh ①フラグ削除 $BINDIR/TME/TEC/OM_TEC/bin ②リストア startSUF.sh.orgquery_state.sh.org startSUF.shquery_state.sh restore Tivoli Technical Sales
SUF無効化ルール・サンプル (1of 4) %--------------------------------------------------------------------- % RULE: disable_sufl.rls % DESCRIPTION % This rule is used to disable to startup startSUF.sh %--------------------------------------------------------------------- rule: disable_default_suf_shell: ( event: _event of_class 'TEC_Start' where [ ], %--------------------------------------------------------- % This action gets the operating system name and based on it % sets the path of the directory where the configuration file % would be present. %--------------------------------------------------------- reception_action: get_os: ( information('version',_value_list), nmember(_os,_value_list,2), _startstr =? substring(_os,0,1), (_startstr == 'W' -> rerecord(om_config_path,'c:/Program Files/TME/TEC/OM_TEC/etc/'), rerecord(om_config,fileLocation,'c:/tmp/TME/TEC/OM_TEC/persistence'), rerecord(operating_system,'Windows') ; rerecord(om_config_path,'/etc/TME/TEC/OM_TEC/'), rerecord(om_config,fileLocation,'/var/TME/TEC/OM_TEC/persistence'), rerecord(operating_system,'Unix') ) ), --<続く> -- TEC_Start時の処理 OSによって構成ファイルの存在パスが違うため、ここでOSによる場合わけを行っている。この部分の処理は、omegamon.rls からの Copyで、このサンプル・ルールは、AIX上でのみの検証。 Tivoli Technical Sales
SUF無効化ルール・サンプル (2 of 4) --<続きです> -- %--------------------------------------------------------- % make backup copy of startSUF.sh/cmd %--------------------------------------------------------- reception_action: disable_sit_forwarder: ( % running file path _fileSeparator='/', recorded(om_config,fileLocation,_fileLocation), atomconcat([_fileLocation,_fileSeparator,'running'],_running_file_path), _s_running_file_path =? strip(_running_file_path,7,'"'), recorded(operating_system,_os), (_os == 'Windows' -> % I have not make batch for Windows. This is dummy for future use exec_program_local('edit_suf_shell',_event,'/unyo/itm6/edit_suf.cmd','TEC_Start %s',[_s_running_file_path],'NO') ; % Issue stop command for safe exec_program_local('edit_suf_shell',_event,'OM_TEC/bin/stopSUF.sh','',[],'NO'), exec_program_local('edit_suf_shell',_event,'/unyo/itm6/edit_suf.sh','TEC_Start %s',[_s_running_file_path],'NO') ) ) ). --<続く> -- SUF停止コマンドを、念のため発行した後、TEC_Start時の SUF起動無効化を行うシェルを起動edit_suf.sh TEC_Start <running file パス名>でシェルを起動 Tivoli Technical Sales
SUF無効化ルール・サンプル (3 of 4) --<続きです> -- rule: enable_default_suf_shell: ( event: _event of_class 'TEC_Stop' where [ ], %--------------------------------------------------------- % This action gets the operating system name and based on it % sets the path of the directory where the configuration file % would be present. %--------------------------------------------------------- reception_action: get_os: ( information('version',_value_list), nmember(_os,_value_list,2), _startstr =? substring(_os,0,1), (_startstr == 'W' -> rerecord(om_config_path,'c:/Program Files/TME/TEC/OM_TEC/etc/'), rerecord(om_config,fileLocation,'c:/tmp/TME/TEC/OM_TEC/persistence'), rerecord(operating_system,'Windows') ; rerecord(om_config_path,'/etc/TME/TEC/OM_TEC/'), rerecord(om_config,fileLocation,'/var/TME/TEC/OM_TEC/persistence'), rerecord(operating_system,'Unix') ) ), --<続く> -- TEC_Stop時の処理 OSによって構成ファイルの存在パスが違うため、ここでOSによる場合わけを行い、構成ファイルへのパスを作成している。この部分の処理は、omegamon.rls からの Copyで、このサンプル・ルールは、AIX上でのみ検証。 Tivoli Technical Sales
SUF無効化ルール・サンプル (4 of 4) --<続きです> -- %--------------------------------------------------------- % This action gets the operating system name and based on it % sets the path of the directory where the configuration file % would be present. %--------------------------------------------------------- reception_action: getback_original: ( % make path for running file _fileSeparator='/', recorded(om_config,fileLocation,_fileLocation), atomconcat([_fileLocation,_fileSeparator,'running'],_running_file_path), _s_running_file_path =? strip(_running_file_path,7,'"'), recorded(operating_system,_os), (_os == 'Windows' -> % I have not make batch for Windows. This is dummy for future use exec_program_local('edit_suf_shell',_event,'/unyo/itm6/edit_suf.cmd','TEC_Stop %s',[_s_running_file_path],'NO') ; % remove dummy runnign file then restore shell. exec_program_local('edit_suf_shell',_event,'/unyo/itm6/edit_suf.sh','TEC_Stop %s',[_s_running_file_path],'NO') ) ) ). デフォルトの状態に、SUFの環境を戻すシェルを起動している。edit_suf.sh TEC_Stop <running file パス名>で、シェルを起動。 Tivoli Technical Sales
SUF無効化シェルサンプル(1 of 1) #!/bin/ksh. /etc/Tivoli/setup_env.sh if [[ $1 = "TEC_Start" ]] then # Backup & Disable original situation event forwarder start up shell cp -p $BINDIR/TME/TEC/OM_TEC/bin/startSUF.sh $BINDIR/TME/TEC/OM_TEC/bin/startSUF.sh.backup.by.rls echo “This is dummy" >> $BINDIR/TME/TEC/OM_TEC/bin/startSUF.sh# This shell delete running dummy file if the process does not actually running. cp -p $BINDIR/TME/TEC/OM_TEC/bin/query_state.sh $BINDIR/TME/TEC/OM_TEC/bin/query_state.sh.backup.by.rls echo 'echo "This shell is backuped and disabled by $0"' >> $BINDIR/TME/TEC/OM_TEC/bin/query_state.sh # make dummy running shell touch $2 echo "# This file is made by $0. This is just dummy file" > $2else # Restore & Enable original situation event forwarder start up shell cp -p $BINDIR/TME/TEC/OM_TEC/bin/startSUF.sh.backup.by.rls $BINDIR/TME/TEC/OM_TEC/bin/startSUF.sh # Restore & Enable original query shell cp -p $BINDIR/TME/TEC/OM_TEC/bin/query_state.sh.backup.by.rls $BINDIR/TME/TEC/OM_TEC/bin/query_state.sh # delete dummy running shell while [[ -e $2 ]] do # wait for tec_rule completely stopped proc_number=`ps -ef | grep tec_rule | grep -v grep | wc -l ` if [[ $proc_number -eq 0 ]] then rm $2 fi sleep 1 done fi TEC_Start時の処理 startSUF.sh をバックアップコピーオリジナルのシェルは、無効化 query_state.sh をバックアップコピーオリジナルのシェルは、無効化 ダミーの running ファイルを作成 TEC_Stop時の処理 startSUF.sh のバックアップをリストア query_state.sh のバックアップをリストア tec_rule プロセスがいなくなるのを待ってから、ダミーのrunning ファイルを消去 Tivoli Technical Sales