Jira Service Management の管理者向けの利用開始ガイド
最初に、Jira Service Management の使用を開始する方法を確認します。
カスタム パターンを作成するには、Discovery/pattern フォルダーに移動します。ここでは、末尾に .pat が付いた新しいファイル (UTF-8) を作成できて、必要なパターン タイプの既存のパターンをコピーして変更できます。新しいパターンを開発してテストするベスト プラクティスは、別の Discovery ツール インスタンスを抽出して、処理する結果データを返すホストまたはデバイスへの接続をセットアップすることです。
次に、「メイン」の HostInfo パターンを除くすべてのパターンを削除します (Linux_Hostinfo_Hostname.pat、Windows_Hostinfo_Hostname_Model.pat、SNMP_Deviceinfo_Default.pat)。Hostname が含まれている「メイン」の HostInfo オブジェクトは必須です。このセットアップでは、他のすべてのパターンの応答を待たずに新しいパターンを高速テストできます。
新しいパターンに必要なすべての XML ノード、つまり Discovery オブジェクトに対するコマンドの結果データを処理する C# クラスを含む <Processing> ノードが必ず含まれるようにしてください。この機能では、Discovery ツールが <Processing> ノードを含む C# ソース コードを読み取り、PatternExec クラスの PerformAction メソッドを呼び出します。
PerformAction メソッドは必須です。Discovery ツールは、次の 3 つのオブジェクトを含むオブジェクト配列によってこのメソッドを呼び出します。
パラメーター | objectType | 説明 |
---|---|---|
parameters[0] | 初期パターン コマンドの結果を含む | |
parameters[1] | iProvider | 検出システムに接続されている実行中のプロバイダー クラスを含みます。 このプロバイダーは、必要に応じて他のコマンドを実行するためにパターンで使用されます。 |
parameters[2] | object | スキャンの開始時に最初に作成される HostInfo-/Device-オブジェクトを含みます。 1
2
3
4
5
public void PerformAction(object[] parameters)
{
HostInfo hostInfo = (HostInfo)parameters[2];
try
{ |
ホストまたはデバイスへの接続では、Discovery ツールで使用するプロバイダーのタイプが 4 つあります。次では、接続とデータ収集コマンドの実行を処理するプロバイダーについて説明します。
パターン内では、システムからさらに情報が必要な場合に、実際に接続されているプロバイダーを使用して追加のコマンドを実行できます。
SSH プロバイダー クラスは Linux システムに接続し、Insight のパターンで使用できます。
1
2
3
4
5
6
7
8
using Insight.Discovery.ProviderClasses; // Include the ProviderClasses Namespace at the Head of the PatternCode
using Insight.Discovery.InfoClasses; // Include the InfoClasses Namespace at the Head of the PatternCode
// Casting the connected Provider out of the parameters from the PerformAction-Method
SSHProvider ssh = (SSHProvider)parameters[1];
// using the SSH-Provider to execute a command and receiving the result.
var result = (SSHExecuteResult)ssh.ExecuteCommand("hostname"); // returning the hostname of a Linux System
たとえば、cast SSHProvider は "Linux_Hostinfo_Hostname.pat" パターンで使います。
WMI プロバイダー クラスは Windows システムに接続し、Insight のパターンで使用できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using Insight.Discovery.ProviderClasses; // Include the ProviderClasses Namespace at the Head of the PatternCode
using Insight.Discovery.InfoClasses; // Include the InfoClasses Namespace at the Head of the PatternCode
// Casting the connected Provider out of the parameters from the PerformAction-Method
WMIProvider wmiProvider = (WMIProvider)parameters[1];
// using the WMI-Provider to read a Registry Value.
var result = (WMIRegValueResult)wmiProvider.GetRegistryValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<Key>", "DisplayName");
// using the WMI-Provider to get a List of all Registry-Sub-Keys.
var result = (WMIRegValueListResult)wmiProvider.GetSubKeysFromRegistry("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\");
//using the WMI-Provider to execute a WMI query receiving the result.
var result = (WMIQueryResult)wmiProvider.ExecuteWMIQuery("netstat -an");
//using the WMI-Provider to execute a command and receiving the result.
var result = (WMIExecuteResult)wmiProvider.ExecuteWMICommand("netstat -an");
SNMP プロバイダー クラスは SNMP デバイスに接続し、Insight のパターンで使用できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using Insight.Discovery.ProviderClasses; // Include the ProviderClasses Namespace at the Head of the PatternCode
using Insight.Discovery.InfoClasses; // Include the InfoClasses Namespace at the Head of the PatternCode
// Casting the connected Provider out of the parameters from the PerformAction-Method
SNMPProvider snmp = (SNMPProvider)parameters[1];
// using the SNMP-Provider to execute a SNMPGet command and receiving the results
var result = (SNMPExecuteResult)snmp.ExecuteCommand("1.3.6.1.2.1.1.6.0", ScanProcessType.SNMP_GET, true);
// using the SNMP-Provider to execute a SNMPWalk command and receiving the results
var result = (SNMPExecuteResult)snmp.ExecuteCommand("1.3.6.1.2.1.2.2.1.2", ScanProcessType.SNMP_WALK, true);
// using the SNMP-Provider to execute a SNMPWalk command with contextName and receiving the results
var result = (SNMPExecuteResult)snmp.ExecuteCommand("1.3.6.1.2.1.2.2.1.2", ScanProcessType.SNMP_WALK, "myContext",true);
SNMP プロバイダー クラスは VMware ESXi システムに接続し、Insight のパターンで使用できます。
1
2
3
4
5
6
7
8
using Insight.Discovery.ProviderClasses; // Include the ProviderClasses Namespace at the Head of the PatternCode
using Insight.Discovery.InfoClasses; // Include the InfoClasses Namespace at the Head of the PatternCode
// Casting the connected Provider out of the parameters from the PerformAction-Method
VIMProvider snmp = (SNMPProvider)parameters[1];
// using the VIM-Provider to execute a command and receiving the results
var result = (VIMCommandResult)snmp.ExecuteCommand("HostSystem");
さらに、次の機能も利用できます。
アプリの InstallDate など Discovery-Object の Date 属性を設定する場合は、特定の形式 ("MM/dd/yyyy") にする必要があります。 提供される ImportService.ImportDate メソッドを使って変換を実行できます。