ローレベルディスカバリ概要ローレベルディスカバリは、コンピュータ上に存在する異なるものの、アイテムやトリガー、グラフを自動的に作成する方法を提供します。ファイルシステムやネットワークインターフェースのそれぞれにアイテムを手動で作成しなくても、自動的に使用するマシンのファイルシステムやネットワークインターフェースの監視を開始します。不要なものを自動的に削除するように設定することも可能です。プロトコルに従うことによって提供される、独自のディスカバリのタイプを定義できます。ディスカバリのプロセスの一般的なアーキテクチャは以下のとおりです:最初に、ユーザーは[設定]→[テンプレート]の[ディスカバリ]列でディスカバリルールを作成します。1つのディスカバリルールは、(1)必要なエンティティ(例えば、ファイルシステムまたはネットワークインターフェース)を検出するアイテムと、(2)そのアイテムの値に基づいて作成されるアイテム、トリガー、グラフのプロトタイプから構成されます。エージェント(または設定されている他のアイテムタイプ)にそのアイテムの値を問合せ、エージェントはテキストの値で応答します。違いは、エージェントが応答する値には、特定のJSON形式で検出されたエンティティのリストを含まれるという点です。この形式の詳細はカスタムのディスカバリチェックの実装者にとって重要なだけですが、戻り値にはマクロ→値のペアのリストが含まれているということは知っておく必要があります。「eth0」を返す可能性があります。エージェントのバージョン2.0からサポートされています。DB2では2048文字までに制限されています。これらのマクロは、各検出されたエンティティの実際のアイテム、トリガー、グラフの作成の基盤となる名前、キー、その他のプロトタイプフィールドに使用されます。条件式(アイテムキーのプロトタイプを参照するときに)以下の場所のグラフのプロトタイプ名前サーバがディスカバリアイテムのために値を受信するとき、マクロ→値のペアを見て、それぞれのペアがプロトタイプに基づいて実際のアイテム、トリガー、グラフを生成します。上記の「net.if.discovery」を使用する例では、サーバは、ループバックインターフェース「lo」のアイテムとトリガーとグラフのセットを1つ生成し、インターフェース「eth0」に別の1セットを生成します。OIDのディスカバリを実行する方法を示します。スクリプトで独自のファイルシステムのディスカバリをどのように実装するかの例を示します。エージェントとします。エージェント内に構築され(詳細はサポートされているアイテムキーのリストを参照)、コンピュータ上に存在するファイルシステムのリストとそのタイプを含むJSONを返します。このフィールドでディスカバリの実行頻度を指定します。最初の、ファイルシステムのディスカバリを設定するだけのときは、短い間隔で設定したいと思うでしょうが、ファイルシステムは通常はそう頻繁に変わらないので、うまく動くことを確認したら30分以上で設定します。注意:「0」に設定した場合、アイテムはポーリングされません。0でない値をもつ「例外の更新間隔」が存在する場合は、例外の更新間隔でそのアイテムがポーリングされます。更新間隔に例外をつくることができます。設定すると、ウィークエンドはポーリングを無効にします。例外の更新間隔を設定しない場合は、デフォルトの更新間隔が使用されます。例外の更新間隔が複数オーバーラップした場合は、オーバーラップしている期間は最も短い間隔の値が使用されます。期間の指定のページを参照してください。注意:「0」に設定すると、例外の更新期間中はアイテムはポーリングされず、例外の更新期間が終了後、更新間隔に従ってポーリングが再開されます。このフィールドで、ディスカバリのステータスが「もう検出されません」となってから、検出されたエンティティを何日間削除しないで保持するかを指定することができます。(最大3650日)注意:「0」に設定した場合、エンティティはすぐに削除されます。単なるフィルターの設定間違いで、すべてのヒストリデータでエンティティが削除される結果となる場合があるので、「0」を使用することはお奨めしません。フィルターフィルターは、特定のファイルシステムの、実際のアイテム、トリガー、グラフの生成だけに使用可能です。POSIX正規表現で記述します。ファイルシステムのC、D、Eドライブだけを対象としたい場合は、[マクロ]に{#FSNAME}、[正規表現]のテキストフィールドに「^C|^D|^E」と入れます。マクロを使用することによって、ファイルシステムのタイプでもフィルタリングが可能です。(例:^ext|^reiserfs)[正規表現]フィールドでは、正規表現の入力、またはグローバル正規表現の参照が可能です。-E」を使用することができます。そのルールが実行されます。そのルールは実行されません。アイテムが取得不可です。取得不可なアイテムの更新間隔の設定に従って、定期的にそのアイテムのステータスを「有効」に設定しようと試みます。データベースは、大文字・小文字を区別するように作成する必要があります。ディスカバリルールのヒストリは保存されません。ルールが作成されたら、アイテムのプロトタイプを作成するために、そのルールの対象となるアイテムで[プロトタイプを作成]をクリックします。ファイルシステム名が必要な場所で、マクロ{#FSNAME}がどのように使用されているかを憶えておいてください。ディスカバリルールが実行されるとき、検出されたファイルシステムとこのマクロが置き換えられます。アイテムのプロトタイプが「無効」のステータスで作成される場合、検出されたエンティティに追加されますが、無効のステータスで追加されます。次のように、対象とする各ファイルシステムの基準に対して複数のアイテムのプロパティを作成できます:それから、同様の方法でトリガーのプロトタイプを作成します:また、グラフのプロトタイプも同様に作成します:ついに、以下に表示されるようなディスカバリルールが作成できました。この例では、5つのアイテムプロトタイプと2つのトリガーのプロトタイプ、1つのグラフのプロトタイプがあります。以下のスクリーンショットでは、検出されたアイテム、トリガー、グラフが、ホストの設定でどのように見えるかを示しています。検出されたエンティティは、先頭にそれを検出したディスカバリルールにリンクしている金色の文字がついています。ローレベルディスカバリで作成されたアイテム(トリガーやグラフも同様)は、手動では削除できません。検出されたエンティティ(ファイルシステム、インターフェースなど)が検出されなくなると(あるいはフィルターを通らなくなると)、自動的に削除されます。この例の場合、[存在しなくなったリソースの保持期間(日)]で定義された日数が経過すると、それらのエンティティは削除されます。検出されたエンティティが「もう検出されません」となったとき、オレンジ色のライフタイムインジケータがアイテムのリストの中に表示されます。マウスポインタをそのインジケータの上に移動すると、そのアイテムが削除されるまでに何日間あるかを示すメッセージが表示されます。ファイルシステムのディスカバリと全く同じ方法でおこなわれます。“net.if.out[{#IFNAME},bytes]”.フィルターについての詳細な情報は、上記のファイルシステムのディスカバリを参照してください。OIDのディスカバリこの例では、スイッチ上でSNMPディスカバリを実行します。最初に[設定]→[テンプレート]を選択します。テンプレートのディスカバリルールを編集するには、[ディスカバリ]列のリンクをクリックします。以下のスクリーンショットのようにフォームに詳細を記入します。ファイルシステムやネットワークインターフェースのディスカバリと違って、アイテムは「snmp.discovery」キーを持つ必要はありません。エージェントのアイテムタイプがあれば十分です。{#SNMPVALUE}を生成します。戻り値からループバックインターフェースを抽出したい場合は、{#SNMPVALUE}をフィルターの「マクロ」の中に入力し、「^([^l]|l$)[^o]?」正規表現を[正規表現]のテキストフィールドに入力します。フィルターについての詳細な情報は、上記のファイルシステムのディスカバリを参照してください。OID]フィールドでは、これらのマクロに対して意味のある値を生成することができるOIDを入力する必要がああります。この例で示そうとしていることを理解するために、スイッチ上でsnmpwalkを実行してみましょう。ifDescrの後にくるOIDの部分から値(この例では:1,2,3)を取得します。LAN2)から来ます。このようにして、「snmp.discovery」アイテムは、マクロ→値のペアを3セット返します。LAN2次のスクリーンショットでは、これらのマクロをアイテムのプロトタイプで使用する方法を示します。必要な数のアイテムのプロトタイプを作成します。同様にトリガーのプロトタイプも作成します。グラフのプロトタイプも作成します。この例でのディスカバリルールの概要は、以下の通りです:サーバが動作したとき、「snmp.discovery」が返す値に基づいて実際のアイテム、トリガー、グラフが作成されます。ホストの設定では、それらは先頭にそれを検出したディスカバリルールにリンクしている金色の文字がついています。カスタムLLDルールの作成また、例えばデータベースサーバ上のデータベースなど、あらゆるタイプのエンティティを検出する完全にカスタムのLLDルールを作成することも可能です。それをおこなうには、検出したオブジェクトを特定して、オプションとしてそれらのプロパティを、JSONで返すカスタムのアイテムを作成します。その組み込みのディスカバリルールが1つまたは2つのマクロ(例えば、ファイルシステムのディスカバリに対して2つ)のどちらかを返している間は、もっと多くを返すこともできます。形式は、以下の例でよくわかります。エージェントを作動させているけれども、ファイルシステムを検出する必要があると想定してみてください。スクリプトを示します。"}\n";そのアウトプット(明快にするためにフォーマットが変更されています)を以下に示します。同じフォーマットに従う必要があります。正規表現として「rootfs|ext3」を指定できます。使用する必要はありません。どんな名前でも自由に使用することができます。本ページは2013/05/12時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。page」から英語版を参照してください。