埋め込まれたGroovyスクリプト
最終更新日: 25 年 2024 月 XNUMX 日概要
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テキストベースのインタラクション その他の例とサンプルコードについては。
Groovy Lib v2 および v4 のサポート
Groovy lib v2 に加えて、コレクターは Groovy lib v4 もサポートします。 EA Collector 34.500 以降では、Groovy lib v2 と v4 の両方を使用できるようになりました。最初の行はコメント (//) として追加され、スクリプトを実行する Groovy バージョンを定義します。
Groovy ライブラリ v2
//!/lib-groovy/v2
println "version=" + GroovySystem.version
Groovy ライブラリ v4
//!/lib-groovy/v4
println "version=" + GroovySystem.version
ご注意: バージョン コメントを定義しない場合、スクリプトはデフォルトで Groovy lib v2 を使用します。