OSコマンド・アダプタ - 単一列
指定されたOSコマンドを実行し、コマンド出力を単一値として返します。メトリックの結果は、1つの行と1つの列で構成される表です。
基本プロパティ
完全なコマンドラインはコマンド + スクリプト + 引数として構成されます。
-
コマンド - 実行するコマンド。たとえば、
%perlBin%/perl
などです。完全なコマンドラインはコマンド + スクリプト + 引数として構成されます。 -
スクリプト - コマンドに渡すスクリプト。たとえば、
%scriptsDir%/myscript.pl
などです。カスタム・ファイルをエージェントにアップロードでき、%scriptsDir%
ディレクトリでアクセスできます。 -
引数 - コマンドに付加する追加の引数。
拡張プロパティ
-
入力プロパティ - 追加プロパティは、標準入力ストリームを介してコマンドに渡すことができます。これは通常は、他のユーザーに見られないようにするセキュア・コンテンツ(ユーザー名やパスワードなど)で使用されます。たとえば、次の入力プロパティを追加できます。
Name=targetName
,Value=%NAME%
これは、コマンドが標準入力ストリームを介して"STDINtargetName=<target name>"として読み取ることができます。
-
環境変数 - 拡張プロパティは、コマンドで環境変数を介して使用できます。たとえば、Name=targetType, Value="%TYPE%"のような環境変数を追加できます。コマンドは、環境変数ENVtargetTypeを使用してターゲット・タイプにアクセスできます。
ノート:
Value="%TYPE%"は、特定のターゲット・タイプ(たとえば: host、wls)には適用できません。このようなターゲット・タイプには、かわりにValue=TYPEを使用します。
資格証明
-
ホスト資格証明 - OSコマンドの起動に使用される資格証明。
-
資格証明の入力 - OSコマンドの標準入力ストリームに渡される追加の資格証明。
例1
ログ・ファイルの内容を読み取り、ターゲットへの参照を含むすべての行をダンプ出力します。
-
アプローチ1 - grepコマンドを使用し、%NAME%パラメータを使用してターゲット名を指定します。
Command = /bin/grep %NAME% mytrace.log
-
アプローチ2 - perlスクリプトを実行します。
Command = %perlBin%/perl
Script = %scriptsDir%/filterLog.pl
入力プロパティ:
targetName = %NAME%
targetType = %TYPE%
filterLog.pl:
require "emd_common.pl"; my %stdinVars = get_stdinvars(); my $targetName = $stdinVars{"targetName"}; my $targetType = $stdinVars{"targetType"}; open (MYTRACE, mytrace.log); foreach $line (<MYTRACE >) { # Do line-by-line processing } close (MYTRACE);
例2
Perlスクリプトからデータベース・インスタンスに接続し、HR.JOBSサンプル・スキーマ表を問い合せます。
-
アプローチ1 - 入力プロパティを使用してターゲット・タイプ・プロパティから資格証明を渡します。
Command = %perlBin%/perl
Script = %scriptsDir%/connectDB.pl
入力プロパティ:
EM_DB_USERNAME = %Username%
EM_DB_PASSWORD = %Password%
EM_DB_MACHINE = %MachineName%
EM_DB_PORT = %Port%
EM_DB_SID = %SID%
connectDB.pl
use DBI; require "emd_common.pl"; my %stdinVars = get_stdinvars(); my $dbUsername = $stdinVars{"EM_DB_USERNAME"}; my $dbPassword = $stdinVars{"EM_DB_PASSWORD"}; my $dbMachine = $stdinVars{"EM_DB_MACHINE"}; my $dbPort = $stdinVars{"EM_DB_PORT"}; my $dbSID = $stdinVars{"EM_DB_SID"}; my $dbAddress = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$dbMachine)(Port=$dbPort))(CONNECT_DATA=(SID=$dbSID)))"; # Establish Target DB Connection my $db = DBI->connect('dbi:Oracle:', "$dbUsername@".$dbAddress, "$dbPassword", {PrintError => 0, RaiseError => 0, AutoCommit => 0}) or die (filterOraError("em_error=Could not connect to $dbUsername/$dbAddress: $DBI::errstr\n", $DBI::err)); my $query = "SELECT JOB_TITLE, MIN_SALARY FROM HR.JOBS"; my $st = $db->prepare($query); $st->execute(); while ( my ($job_title, $min_sal) = $st->fetchrow_array() ) { print "$job_title|$min_sal\n"; } $db->disconnect or warn "disconnect $DBI::errstr\n"; exit 0;
-
アプローチ2 - 入力資格証明を使用してモニタリング資格証明セットを渡します。
Command = %perlBin%/perl
Script = %scriptsDir%/connectDB.pl
入力資格証明:
dbCreds = MyCustomDBCreds
connectDB.pl
use DBI; require "emd_common.pl"; my %stdinVars = get_stdinvars(); my $credType = getCredType("dbCred", \%stdinVars); my %credProps = getCredProps("dbCreds", \%stdinVars); my $dbUsername = $credProps{"DBUserName"}; my $dbPassword = $credProps{"DBPassword"};
例3
ホスト・ターゲットのカスタム・モニタリング資格証明セットを作成して使用し、モニタリング資格証明をオーバーライドします。
ホスト・ターゲット・タイプのホスト資格証明の作成:
> emcli create_credential_set -set_name=myCustomCreds -target_type=host -auth_target_type=host -supported_cred_types=HostCreds -monitoring -description='My Custom Credentials'
メトリック拡張ウィザードの「資格証明」ページに移動し、ホスト資格証明の「資格証明セットの指定」を選択すると、ドロップ・ダウン・リストのオプションとしてカスタム資格証明が表示されます。
このステップでは、ホスト・ターゲット・タイプのモニタリング資格証明セットが作成されるのみです。このメトリック拡張のデプロイ先の各ターゲットで資格証明を設定する必要があります。Enterprise Managerで、「設定」、「セキュリティ」、「モニタリング資格証明」の順に選択して、資格証明を設定できます。または、コマンドラインから設定することもできます。
> emcli set_monitoring_credential -target_name=target1 -target_type=host -set_name=myCustomCreds -cred_type=HostCreds -auth_target_type=host -attributes='HostUserName:myusername;HostPassword:mypwd'