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 | 文字列 | エージェントクライアントコレクター要求 [sn_agent_request] テーブル内の要求のSys_id。 |
| プロパティ | 説明 |
|---|---|
| <Object> | ログの入手要求ステータスを含む JSON オブジェクト。 |
| status | ログの取得要求のステータスを示す番号。 可能な値:
|
| 出力 | ステータスを説明する情報。 |
次の例は、要求 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() メソッドを実行します。
- エージェントクライアントコレクター [sn_agent_cmdb_ci_agent] テーブルの [エージェント ID] 列を確認します。
- エージェントクライアントコレクターの GET リスト REST API を実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| agentID | 文字列 | エージェントクライアントコレクター [sn_agent_cmdb_ci_agent] テーブルの [エージェント ID] 列にリストされているエージェントの一意の ID。 |
| プロパティ | 説明 |
|---|---|
| <Object> | 拡張エージェント情報を含むオブジェクト。 |
| エラー | エラーメッセージ。エラーがない場合は 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, 数値制限)
関連情報を含むエージェントのリストを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| encodedQuery | 文字列 | 標準の Glide 形式でエンコードされたクエリ文字列。「 エンコードされたクエリ文字列」を参照してください。 |
| limit | 数値 | オプション。結果をエージェントの最大数に制限します。両方が不要な場合は、null または未定義を使用します。 デフォルト/最大:20,000 |
| プロパティ | 説明 |
|---|---|
| <アレイ> | 拡張エージェント情報を含む 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() メソッドを実行します。
- エージェントクライアントコレクター [sn_agent_cmdb_ci_agent] テーブルの [エージェント ID] 列を確認します。
- エージェントクライアントコレクターの GET リスト REST API を実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| agentID | 文字列 | エージェントクライアントコレクター [sn_agent_cmdb_ci_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 を特定します。指定されたエージェントは、alive/up ステータスである必要があります。
- getAgentsList() メソッドを実行します。
- エージェントクライアントコレクター [sn_agent_cmdb_ci_agent] テーブルの [エージェント ID] 列を確認します。
- エージェントクライアントコレクターの GET リスト REST API を実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| agentID | 文字列 | エージェントクライアントコレクター [sn_agent_cmdb_ci_agent] テーブルの [エージェント ID] 列にリストされているエージェントの一意の ID。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 該当する場合はエラーメッセージ、それ以外の場合は null。例: ID が <agentID> のエージェントが稼働中ではありません:スローされたエラーはありません。 |
次の例は、アライブ/稼働ステータスのエージェントでディスカバリーを実行する方法を示しています。
var agentsApi = new sn_agent.AccAgentsAPI();
var err = agentsApi.runDiscovery("<agent_ID>");
if (!gs.nil(err))
gs.error(err);
AccAgentsAPI - setDataCollectionStatus(文字列 agentID, ブールステータス)
指定されたエージェントに対して、指定されたデータ収集ステータス (有効かどうかの true/false) を設定します。
- getAgentsList() メソッドを実行します。
- エージェントクライアントコレクター [sn_agent_cmdb_ci_agent] テーブルの [エージェント ID] 列を確認します。
- エージェントクライアントコレクターの GET リスト REST API を実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| agentID | 文字列 | エージェントクライアントコレクター [sn_agent_cmdb_ci_agent] テーブルの [エージェント ID] 列にリストされているエージェントの一意の ID。 |
| status | ブーリアン | エージェントに対してデータ収集が有効になっているかどうかを示すフラグ。 有効な値:
デフォルト:true |
| タイプ | 説明 |
|---|---|
| 文字列 | 該当する場合はエラーメッセージ、それ以外の場合は null。例: ID が <agentID> のエージェントが稼働中ではありません:スローされたエラーはありません。 |
次の例は、エージェントデータ収集をオンにする方法を示しています。
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 - submitGrabLogRequest(文字列 agentId)
アライブ/稼働ステータスの指定されたエージェントのログを要求します。
| 名前 | タイプ | 説明 |
|---|---|---|
| agentID | 文字列 | エージェントクライアントコレクター [sn_agent_cmdb_ci_agent] テーブルの [エージェント ID] 列にリストされているエージェントの一意の ID。 |
| プロパティ | 説明 |
|---|---|
| <Object> | 要求 ID とエラー情報を含む JSON オブジェクト。 |
| エラー | エラーメッセージ。エラーがない場合は null。 データタイプ:文字列 |
| request_id | エージェントクライアントコレクター要求 [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>