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'