サポートセンターホーム


埋め込まれたGroovyスクリプト

概要

LogicMonitorは、Groovyプログラミング言語を使用して、製品全体に埋め込まれたスクリプトをサポートします。 Groovyは、次のデータソースで使用できます。 スクリプト化されたアクティブディスカバリー, スクリプト化されたデータ収集, 複雑なデータポイントの後処理では、 スクリプト化されたEventSources; 構成ソース、および Netscanポリシー.

Groovyは、Javaの拡張として、完全にLogicMonitor Collector内で実行されるため、基盤となるOSプラットフォームやバージョンに関係なく、すべてのコレクターで同じように実行されることを保証できるため、Groovyを優先します。 また、コレクターには、システムやデバイスからインストルメンテーションデータを取得するために特別に選択されたさまざまなヘルパークラスがバンドルされています。

Groovyスクリプトでのデバイスとインスタンスのプロパティの使用

GroovyのもうXNUMXつの利点は、スクリプト内でのデバイスまたはインスタンスプロパティの使用をサポートしていることです。 他の言語では、デバイスプロパティを渡すことはできますが、インスタンスプロパティを渡すことはできません。

次のメソッドは、プロパティの取り込みをサポートします。

  • hostProps.get() –指定されたデバイスプロパティを返します。 例えば: name = hostProps.get("system.hostname").
  • instanceProps.get() –指定されたインスタンスプロパティを返します。 例えば: instance = instanceProps.get("wildvalue").
  • taskProps.get() –デバイスプロパティまたはインスタンスプロパティテーブルのいずれかから指定されたプロパティを返します。 プロパティ名が衝突した場合は、インスタンスレベルで設定された値を返します。 例えば: speed=taskProps.get("speed") インスタンスに設定されている場合、speedプロパティの値を取得します。 それ以外の場合、設定されていない場合は、デバイスに設定されている値を取得します。

注意: 世界 taskProps.get() 影響により instanceProps.get() BatchScriptコンテキストは複数のインスタンスにまたがっており、インスタンスレベルのプロパティを設定するインスタンスを指定する方法がないため、BatchScriptデータ収集メソッドが指定されている場合(スクリプトデータ収集メソッドではなく)、メソッドを使用しないでください。

例:データソースのアクティブディスカバリーにGroovyを使用する

以下は、スクリプト化されたActiveDiscoveryを実行するために使用されるGroovyコードのサンプルです。 スクリプト化されたActiveDiscoveryの目標は、次の形式のインスタンスデータを返すことです。

instance_id##instance_name

この特定のスクリプトは、パロアルトファイアウォール上の電源インスタンスを検出するために使用されます。

 
import com.santaba.agent.groovyapi.http.*;

apikey = hostProps.get("paloalto.apikey.pass")
host = hostProps.get("system.hostname")

command = java.net.URLEncoder.encode("")
url = "https://${host}/api/?type=op&key=${apikey}&cmd=${command}"

def response = new XmlSlurper().parseText(HTTP.body(url))

// loop through slots
response.result.power.children().each { slot ->
  slot_name = slot.name()

  // loop through each slot's components
  slot.entry.each { entry ->
    entry_desc    = entry.description.text()
    instance_name = slot_name + '/' + entry_desc
    println "${instance_name}##${instance_name}"
  }
}

return(0)


見る Groovyのヒントとコツ 影響により Groovy / Expectテキストベースのインタラクション その他の例とサンプルコードについては。

記事上で