AccAgentsAPI :スコープ対象
AccAgentsAPI スクリプトインクルードを使用すると、利用可能なエージェントで管理アクションを実行できます。
このスクリプトインクルードは、 エージェントクライアントコレクター Framework (sn_agent) ストアアプリケーションを必要とし、 sn_agent 名前空間内で提供されます。詳細については、「 エージェントクライアントコレクター」を参照してください。
REST API ソリューションについては、「 エージェントクライアントコレクター API」を参照してください。
- 1 つ以上のエージェントの詳細情報を取得
- 要求を送信してエージェントログを取得し、要求の進捗状況に関する情報を取得
- データ収集を開始または停止
- エージェントを再起動
- エージェントで検出を実行
AccAgentsAPI - AccAgentsAPI()
AccAgentsAPI インスタンスを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
次の例は、AccAgentsAPI を初期化する方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
AccAgentsAPI - checkGrabLogRequestProgress(文字列 requestId)
ログ取得要求のステータスを確認します。
submitGrabLogRequest() メソッドを実行して、要求 ID を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| requestId | 文字列 | Agent Client Collector Requests [sn_agent_request] テーブル内の要求の sys_id。 |
| プロパティ | 説明 |
|---|---|
| <Object> | ログ取得要求のステータスを含む JSON オブジェクト。 |
| status | ログ取得要求のステータスを示す数値。 可能な値:
|
| output | ステータスを説明する情報。 |
次の例は、要求 ID を使用してログ取得要求のステータスを取得する方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
var logRequestStatus = agentsApi.checkGrabLogRequestProgress("<request_ID>");
gs.info(JSON.stringify(logRequestStatus, null, 2));
出力 :
{
"status": 2,
"output": "Grab Log Request Timed Out"
}
AccAgentsAPI - getAgent(文字列 agentID)
指定されたエージェントの情報を取得します。
- getAgentsList() メソッドを実行します。
- Agent Client Collector [sn_agent_cmdb_ci_agent] テーブルの [Agent ID] 列を確認します。
- Agent Client Collector GET list REST API を実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| agentID | 文字列 | Agent Client Collector [sn_agent_cmdb_ci_agent] テーブルの [Agent ID] 列にリストされるエージェントの一意の ID。 |
| プロパティ | 説明 |
|---|---|
| <Object> | エージェントの詳細情報を含むオブジェクト。 |
| error | エラーメッセージ。エラーがない場合は Null。 データタイプ:文字列 |
| エージェント | |
| agent.agent_id | 送信されたエージェントの ID。 データタイプ:文字列 |
| agent.data_collection | データ収集は、スケジュールされたチェックを実行するかどうかを示します。これらのチェックは、このエージェントが実行されるようにスケジュールされたポリシーの一部です。 可能な値:
データタイプ:数値 |
| agent.ip_address | エージェントの IP アドレス。 データタイプ:文字列 |
| agent.is_duplicate | このエージェントが別のエージェントの複製であるかどうかを示すフラグ。指定されたホストには 1 つのエージェントのみが存在している必要があります。 可能な値:
データタイプ:ブール |
| agent.is_restart_enabled | 再起動が有効かどうかを示すフラグ。エージェントの再起動は構成できません。OS と、エージェントが実行されている OS のバージョンによって異なります。 可能な値:
データタイプ:ブール |
| agent.name | エージェントの名前。 データタイプ:文字列 |
| agent.number_of_running_checks | エージェントの実行がスケジュールされているチェックの数。これらのチェックは、このエージェントが実行されるようにスケジュールされたポリシーの一部です。 データタイプ:数値 |
| agent.status | エージェントのステータス。 可能な値:
データタイプ:数値 |
| agent.up_since | エージェントのステータスがアライブ/稼働になってからの UTC 時間。値は GlideDateTime 形式です。 データタイプ:文字列 |
| agent.version | エージェントが実行している エージェントクライアントコレクター のバージョン。 データタイプ:文字列 |
次の例は、エージェントのステータスを表示する方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
var agentInfo = agentsAPI.getAgent("<agent_ID>");
if (!gs.nil(agentInfo.error))
gs.error(agentInfo.error);
else
gs.info("agent status: " + agentInfo.agent.status);
出力 :
agent status: 2
次の例は、すべてのエージェントの詳細を取得する方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
var agentInfo = agentsAPI.getAgent("<agent_ID>");
gs.info(JSON.stringify(agentInfo, null, 2));
出力:
{
"error": null,
"agent": {
"name": "win2016-dc-64bit",
"status": 0,
"agent_id": "<agent_ID>",
"ip_address": "10.222.333.42",
"number_of_running_checks": 1,
"data_collection": 0,
"is_restart_enabled": true,
"is_duplicate": false,
"up_since": "2021-03-24 11:04:38",
"version": "2.4.0"
}
}
AccAgentsAPI – getAgentsList(文字列 encodedQuery, 数値 limit)
関連情報を含むエージェントのリストを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| encodedQuery | 文字列 | 標準の Glide 形式のエンコードされたクエリ文字列。「エンコードされたクエリ文字列」を参照してください。 |
| limit | 数値 | オプション。結果をエージェントの最大数に制限します。必要ない場合は、両方に null または undefined を使用します。 デフォルト/最大:20,000 |
| プロパティ | 説明 |
|---|---|
| <Array> | エージェントの詳細情報を含む JSON オブジェクトのアレイ。 |
| agent_id | 送信されたエージェントの ID。 データタイプ:文字列 |
| data_collection | データ収集は、スケジュールされたチェックを実行するかどうかを示します。これらのチェックは、このエージェントが実行されるようにスケジュールされたポリシーの一部です。 可能な値:
データタイプ:数値 |
| ip_address | エージェントの IP アドレス。 データタイプ:文字列 |
| is_duplicate | このエージェントが別のエージェントの複製であるかどうかを示すフラグ。指定されたホストには 1 つのエージェントのみが存在している必要があります。 可能な値:
データタイプ:ブール |
| is_restart_enabled | 再起動が有効かどうかを示すフラグ。エージェントの再起動は構成できません。OS と、エージェントが実行されている OS のバージョンによって異なります。 可能な値:
データタイプ:ブール |
| name | エージェントの名前。 データタイプ:文字列 |
| number_of_running_checks | エージェントの実行がスケジュールされているチェックの数。これらのチェックは、このエージェントが実行されるようにスケジュールされたポリシーの一部です。 データタイプ:数値 |
| status | エージェントのステータス。 可能な値:
データタイプ:数値 |
| up_since | エージェントのステータスがアライブ/稼働になってからの UTC 時間。値は GlideDateTime 形式です。 データタイプ:文字列 |
| version | エージェントが実行している エージェントクライアントコレクター のバージョン。 データタイプ:文字列 |
次の例は、クエリーと数値によって結果を制限する方法を示しています。このクエリーは、ダウンステータスでないすべてのエージェントを最大 2 つの結果とともに返します。
var agentsApi = new sn_agent.AccAgentsAPI();
var agentList = agentsApi.getAgentsList("agent_extended_info.status!=2", 2);
gs.info(JSON.stringify(agentList, null, 2));
出力:
[
{
"name": "007-175",
"status": 0,
"agent_id": "007-175",
"ip_address": "11.222.63.66",
"number_of_running_checks": 0,
"data_collection": 0,
"is_restart_enabled": false,
"is_duplicate": false,
"up_since": "2021-03-24 14:36:45",
"version": "2.4.0"
},
{
"name": "win2016-dc-64bit",
"status": 0,
"agent_id": "007-64",
"ip_address": "10.222.333.42",
"number_of_running_checks": 1,
"data_collection": 0,
"is_restart_enabled": true,
"is_duplicate": false,
"up_since": "2021-03-24 11:04:38",
"version": "2.4.0"
}
]
次の例は、システム内のすべてのエージェントを一覧表示する方法を示しています。この例では、クエリーと結果の最大数を使用していません。
var agentsApi = new sn_agent.AccAgentsAPI();
var agentList = agentsApi.getAgentsList(null, 0);
gs.info(JSON.stringify(agentList, null, 2));
次の例は、提供された結果を反復処理して各エージェント ID を表示する方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
var agentsList = agentsApi.getAgentsList(null, 0);
for (var i = 0; i < agentsList.length; i++)
gs.info("agent with id: " + agentsList[i].agent_id);
出力:
sn_agent: agent with id: 000a00e0aa1aa3a4
sn_agent: agent with id: 000a00e1aa1aa3a4
sn_agent: agent with id: 000a00e2aa1aa3a4
AccAgentsAPI - restartAgent(文字列 agentID)
アライブ/稼働ステータスの指定されたエージェントを再起動します。
systemdを使用する Linux ベースのエージェント- Windows エージェント
- getAgentsList() メソッドを実行します。
- Agent Client Collector [sn_agent_cmdb_ci_agent] テーブルの [Agent ID] 列を確認します。
- Agent Client Collector GET list REST API を実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| agentID | 文字列 | Agent Client Collector [sn_agent_cmdb_ci_agent] テーブルの [Agent ID] 列にリストされるエージェントの一意の ID。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 該当する場合はエラーメッセージ、それ以外の場合は null |
次の例は、 エージェントを再起動する方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
var err = agentsApi.restartAgent("<agent_ID>");
if (!gs.nil(err))
gs.error(err);
AccAgentsAPI - runDiscovery(文字列 agentID)
検出チェックを実行して、エージェントに関連する CI を特定します。指定されたエージェントは、アライブ/稼働ステータスである必要があります。
- getAgentsList() メソッドを実行します。
- Agent Client Collector [sn_agent_cmdb_ci_agent] テーブルの [Agent ID] 列を確認します。
- Agent Client Collector GET list REST API を実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| agentID | 文字列 | Agent Client Collector [sn_agent_cmdb_ci_agent] テーブルの [Agent ID] 列にリストされるエージェントの一意の ID。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 該当する場合はエラーメッセージ、それ以外の場合は null。例:Agent With ID: <agentID> Is Not Up: no thrown error |
次の例は、アライブ/稼働ステータスのエージェントで検出を実行する方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
var err = agentsApi.runDiscovery("<agent_ID>");
if (!gs.nil(err))
gs.error(err);
AccAgentsAPI - setDataCollectionStatus(文字列 agentID, ブール status)
指定されたエージェントの指定されたデータ収集ステータス (true/false、有効かどうか) を設定します。
- getAgentsList() メソッドを実行します。
- Agent Client Collector [sn_agent_cmdb_ci_agent] テーブルの [Agent ID] 列を確認します。
- Agent Client Collector GET list REST API を実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| agentID | 文字列 | Agent Client Collector [sn_agent_cmdb_ci_agent] テーブルの [Agent ID] 列にリストされるエージェントの一意の ID。 |
| status | ブーリアン | エージェントのデータ収集が有効かどうかを示すフラグ。 有効な値:
デフォルト:true |
| タイプ | 説明 |
|---|---|
| 文字列 | 該当する場合はエラーメッセージ、それ以外の場合は null。例:Agent With ID: <agentID> Is Not Up: no thrown error |
次の例は、エージェントのデータ収集を有効にする方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
var err = agentsApi.setDataCollectionStatus("<agentID>", true);
if (!gs.nil(err))
gs.error(err);
次の例は、エージェントのデータ収集を無効にする方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
var err = agentsApi.setDataCollectionStatus("<agentID>", false);
if (!gs.nil(err))
gs.error(err);
AccAgentsAPI - sendGrabLogRequest(文字列 agentId)
アライブ/稼働ステータスの指定されたエージェントのログを要求します。
| 名前 | タイプ | 説明 |
|---|---|---|
| agentID | 文字列 | Agent Client Collector [sn_agent_cmdb_ci_agent] テーブルの [Agent ID] 列にリストされるエージェントの一意の ID。 |
| プロパティ | 説明 |
|---|---|
| <Object> | 要求 ID とエラー情報を含む JSON オブジェクト。 |
| error | エラーメッセージ。エラーがない場合は Null。 データタイプ:文字列 |
| request_id | Agent Client Collector Requests [sn_agent_request] テーブル内の要求の sys_id。 この ID を使用し、GET /agents/{request_id}/ により要求のステータスを取得できます。 データタイプ:文字列 |
次の例は、ログ要求 ID を取得する方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
var submittedRequest = agentsApi.submitGrabLogRequest("<agentID>");
if (!gs.nil(submittedRequest.error))
gs.error(submittedRequest.error);
else
gs.info("Request ID: " + submittedRequest.request_id);
出力:
Request ID: <sys_id>