データインフラ分析情報API
Data Infrastructure Insights APIを使用すると、NetAppのお客様や独立系ソフトウェアベンダー(ISV)は、データインフラの分析情報をCMDBやその他のチケット発行システムなどの他のアプリケーションと統合できます。
、Data Infrastructure Insightsが"機能セットのロール"どのAPIにアクセスできるかは判断します。ユーザロールとゲストロールの権限は、管理者ロールよりも少なくなります。たとえば、 Monitor と Optimize で Administrator ロールを割り当てていても、 Reporting で User ロールを割り当てている場合は、 Data Warehouse を除くすべての API タイプを管理できます。
API アクセスの要件
-
API アクセストークンモデルを使用してアクセスが許可されます。
-
APIトークン管理は、管理者ロールを持つData Infrastructure Insightsユーザによって実行されます。
API ドキュメント( Swagger )
最新のAPI情報は、Data Infrastructure Insightsにログインし、[Admin]>[API Access]*に移動すると確認できます。[API Documentation] リンクをクリックします。
API ドキュメントは Swagger ベースです。 API の簡単な概要情報と使用方法を提供しており、環境内で試すことができます。ユーザロールやData Infrastructure Insightsのエディションによっては、使用できるAPIタイプが異なる場合があります。
API アクセストークン
Data Infrastructure Insights APIを使用する前に、1つ以上の* APIアクセストークン*を作成する必要があります。アクセストークンは、指定された API タイプに使用され、読み取り権限と書き込み権限を付与できます。各アクセストークンの有効期限を設定することもできます。指定したタイプの API はすべて、アクセストークンに対して有効です。各トークンはユーザ名またはパスワードを無効にします。
アクセストークンを作成するには:
-
[Admin] > [API Access] をクリックします
-
[*+API アクセストークン *] をクリックします
-
トークン名を入力します
-
API タイプを選択します
-
この API アクセスに付与する権限を指定します
-
トークン有効期限を指定します
-
トークンは、クリップボードにコピーして作成プロセス中に保存する場合にのみ使用できます。トークンは作成後に取得できないため、トークンをコピーして安全な場所に保存することを強くお勧めします。トークン作成画面を閉じる前に、 [API アクセストークンのコピー *] ボタンをクリックするよう求められます。 |
トークンを無効化、有効化、および取り消しできます。無効になっているトークンを有効にできます。
トークンを使用すると、お客様の観点から API への汎用アクセスが許可され、独自のテナントの範囲内で API へのアクセスが管理されます。お客様の管理者は、Data Infrastructure Insightsのバックエンド担当者が直接関与することなく、これらのトークンを許可または取り消しできます。
アプリケーションは、ユーザがアクセスの認証と許可に成功した後、ターゲット API を呼び出すときにアクセストークンをクレデンシャルとして渡します。渡されたトークンは、 API にアクセスするためのトークンのベアラーが許可されていることを API に通知し、許可中に許可されたスコープによって指定された特定のアクションを実行します。
アクセストークンが渡される HTTP ヘッダーは * X-CloudInsights - apiKey : * です。
たとえば、次のようにしてストレージアセットを取得します。
curl https://<tenant_host_name>/rest/v1/assets/storages -H 'X-CloudInsights-ApiKey:<API_Access_Token>' _<API_Access_Token>_ は、 API アクセスの作成時に保存したトークンです。
使用するAPIに固有の例については、swaggerページを参照してください。
APIタイプ
Data Infrastructure Insights APIはカテゴリベースであり、現在次のタイプが含まれています。
-
アセットタイプには、アセット、クエリ、および検索 API が含まれます。
-
アセット:最上位のオブジェクトを列挙し、特定のオブジェクトまたはオブジェクト階層を取得します。
-
クエリ:Data Infrastructure Insightsのクエリを取得して管理します。
-
インポート:アノテーションまたはアプリケーションをインポートしてオブジェクトに割り当てます
-
検索:オブジェクトの一意の ID またはフルネームを知らずに、特定のオブジェクトを検索します。
-
-
データ収集タイプは、データコレクタを取得および管理するために使用します。
-
データの取り込みタイプは、 Telegraf エージェントなどの取り込みデータとカスタムメトリックを取得および管理するために使用されます
-
ログの取り込みは、ログデータの取得と管理に使用されます
これ以外のタイプや API は、時間の経過とともに使用できるようになる可能性があります。最新のAPI情報はで確認できます"API Swagger のドキュメント"。
ユーザがアクセスできるAPIタイプは、"ユーザロール"Data Infrastructure Insightsの各機能セット(監視、ワークロードセキュリティ、レポート)にあるAPIタイプによっても異なります。
在庫移動
このセクションでは、Data Infrastructure Insightsオブジェクトの階層を横断する方法について説明します。
トップレベルオブジェクト
個 々 のオブジェクトは、一意のURL(JSONでは「self」と呼ばれます)によって要求で識別され、オブジェクトタイプと内部IDに関する知識が必要になります。一部の最上位オブジェクト(ホスト、ストレージなど)については、REST APIによって完全なコレクションへのアクセスが提供されます。
API URL の一般的な形式は次のとおりです。
https://<tenant>/rest/v1/<type>/<object> たとえば、 _mysite.c01.cloudinsights.netapp.com_ という名前のテナントからすべてのストレージを取得する場合、要求の URL は次のようになります。
https://mysite.c01.cloudinsights.netapp.com/rest/v1/assets/storages
子および関連オブジェクト
ストレージなどの最上位のオブジェクトは、他の子や関連オブジェクトへのトラバースに使用できます。たとえば、特定のストレージのすべてのディスクを取得するには、ストレージの「 self 」 URL を「 /disks 」に連結します。次に例を示します。
https://<tenant>/rest/v1/assets/storages/4537/disks
展開します
多くの API コマンドでは、関連オブジェクトのオブジェクトや URL に関する追加情報を提供する * expand * パラメータがサポートされています。
共通の展開パラメータの 1 つは _expands_です応答には、オブジェクトに対して使用可能なすべての特定の展開のリストが含まれています。
たとえば、次のように要求したとします。
https://<tenant>/rest/v1/assets/storages/2782?expand=_expands API は、オブジェクトに対して使用可能なすべての拡張を次のように返します。
各展開には、データ、 URL 、またはその両方が含まれます。expand パラメータでは、次のような複数の属性とネストされた属性がサポートされます。
https://<tenant>/rest/v1/assets/storages/2782?expand=performance,storageResources.storage Expand を使用すると、関連するデータを 1 回の応答で大量に取り込むことができます。ネットアップでは、一度に大量の情報を要求しないことを推奨しています。これにより、原因のパフォーマンスが低下する可能性があります。
これを防止するために、トップレベルのコレクションに対する要求は展開できません。たとえば、すべてのストレージオブジェクトの拡張データを一度に要求することはできません。クライアントは、オブジェクトのリストを取得し、特定のオブジェクトを選択して拡張する必要があります。
パフォーマンスデータ
パフォーマンスデータは、さまざまなデバイスにわたって個別のサンプルとして収集されます。Data Infrastructure Insightsでは、パフォーマンスサンプルが1時間ごと(デフォルト)に集計され、要約されます。
この API を使用すると、サンプルと集計データの両方にアクセスできます。パフォーマンスデータが格納されたオブジェクトの場合、パフォーマンスの概要は expand = performion.パフォーマンス履歴の時系列は、 Nested_expand= perform中 .history_ で確認できます。
パフォーマンスデータオブジェクトには次のようなものがあります。
-
ストレージパフォーマンス
-
StoragePoolPerformance の各ノードでパフォーマンスが
-
PortPerformance の 2 つのグループ
-
ディスクパフォーマンス
パフォーマンスメトリックには、概要 とタイプがあり、パフォーマンスサマリーのコレクションが含まれています。たとえば、 Latency 、 Traffic 、 Rate などです。
パフォーマンスサマリーには、 1 つのパフォーマンスカウンタから特定の期間( 1 時間、 24 時間、 3 日間など)にわたって計算された概要、ユニット、サンプル開始時間、サンプル終了時間、および要約された値(現在、最小、最大、平均など)のコレクションが含まれます。
結果の Performance Data ディクショナリには、次のキーがあります。
-
「 self 」は、オブジェクトの一意の URL です
-
「 history 」は、タイムスタンプとカウンタ値のマップのペアのリストです
-
他のすべてのディクショナリキー(「 diskThroughput 」など)は、パフォーマンスメトリックの名前です。
パフォーマンスデータのオブジェクトタイプごとに、一意のパフォーマンス指標のセットがあります。たとえば、仮想マシンのパフォーマンスオブジェクトは、パフォーマンスメトリックとして「 diskThroughput 」をサポートします。サポートされている各パフォーマンスメトリックは、メトリックディクショナリに示されている特定の「パフォーマンスカテゴリ」です。Data Infrastructure Insightsは、本ドキュメントで後述する複数のパフォーマンス指標タイプをサポートしています。各パフォーマンスメトリックディクショナリには、このパフォーマンスメトリックの判読可能な概要である「概要」フィールドと、パフォーマンスサマリーカウンタエントリのセットも含まれます。
Performance Summary カウンタは、パフォーマンスカウンタの要約です。これは、カウンタの一般的な集計値であり、最新の測定値、要約データの時間範囲、カウンタの単位タイプ、データのしきい値なども表示します。しきい値のみオプションで、残りの属性は必須です。
パフォーマンス要約は、次のタイプのカウンタで使用できます。
-
Read –読み取り処理の概要
-
Write –書き込み処理の概要です
-
Total –すべての処理の概要。読み取りと書き込みの単純な合計よりも高くなる場合があり、それ以外の処理も含まれる場合があります。
-
Total Max –すべての処理の概要。指定した期間内の最大合計値です。
オブジェクトのパフォーマンス指標
API は、環境内のオブジェクトについて、次のような詳細な指標を返すことができます。
-
IOPS ( 1 秒あたりの入出力要求の数)、レイテンシ、スループットなどのストレージパフォーマンス指標。
-
スイッチのパフォーマンス指標:トラフィック利用率、 BB クレジットゼロデータ、ポートエラーなど。
各オブジェクトタイプの指標の詳細については、を参照してください"API Swagger のドキュメント"。
パフォーマンス履歴データ
履歴データは、タイムスタンプとカウンタマップのペアのリストとしてパフォーマンスデータに表示されます。
履歴カウンタの名前は、パフォーマンス指標オブジェクトの名前に基づいて決まります。たとえば、仮想マシンのパフォーマンスオブジェクトは「 diskThroughput 」をサポートしているため、履歴マップには「 diskThroughput 」、「 diskThroughput 」、「 diskThroughput 」、「 diskThroughput 」、「 diskThroughput total 」という名前のキーが含まれます。
timestamp は UNIX の時間形式です。 |
ディスクのパフォーマンスデータの JSON の例を次に示します。
容量属性を持つオブジェクト
容量の属性を持つオブジェクトは、基本的なデータ型と CapacityItem を使用して表現します。
CapacityItem
CapacityItem は、容量の単一の論理ユニットです。親オブジェクトで定義された単位には「値」と「高しきい値」があります。また、容量値の構成方法を説明するオプションの内訳マップもサポートしています。たとえば、 100TB の StoragePool の総容量は、 1 、 000 の CapacityItem になります。この内訳では、「データ」に 60 TB 、「スナップショット」に 40 TB が割り当てられています。
- メモ
-
「 highThreshold 」は、対応するメトリックのシステム定義のしきい値を表します。このしきい値を使用すると、クライアントは、許容範囲外の設定された値に関するアラートや視覚的なキューを生成できます。
次に、複数の容量カウンタがある StoragePools の容量を示します。
[ 検索( Search ) ] を使用してオブジェクトを検索する
検索 API は、システムへのシンプルなエントリポイントです。API に対する唯一の入力パラメータは自由形式の文字列であり、結果の JSON には分類された結果のリストが含まれています。タイプは、ストレージ、ホスト、データストアなど、インベントリのアセットタイプによって異なります。各タイプには、検索条件に一致するタイプのオブジェクトのリストが含まれます。
Data Infrastructure Insightsは拡張可能な(オープンな)ソリューションで、サードパーティのオーケストレーションシステム、ビジネス管理システム、変更管理システム、チケット発行システム、カスタムCMDB統合との統合を可能にします。
Cloud Insight の RESTful API は、データのシンプルかつ効果的な移動を可能にし、ユーザがデータにシームレスにアクセスできるようにする統合の主要なポイントです。
API トークンの無効化または取り消し
API トークンを一時的に無効にするには、 API トークンリストページで API の「 3 つのドット」メニューをクリックし、 Disable を選択します。トークンは ' 同じメニューを使用して 'Enable を選択していつでも再度有効にできます
API トークンを完全に削除するには、メニューから「 Revoke 」を選択します。取り消されたトークンは再度有効にすることはできません。新しいトークンを作成する必要があります。
期限切れの API アクセストークンの回転
API アクセストークンには有効期限があります。API アクセストークンの期限が切れると、ユーザは新しいトークン( TYPE_Data Ingestion _ with Read/Write パーミッション)を生成し、期限切れのトークンではなく、新しく生成されたトークンを使用するように Telegraf を再設定する必要があります。以下の手順では、その方法について詳しく説明します。
Kubernetes
これらのコマンドでは、デフォルトのネームスペースである「 NetApp-monitoring 」が使用されていることに注意してください。独自のネームスペースを設定した場合は、それらのネームスペースと、以降のすべてのコマンドおよびファイルを置き換えます。
注:最新のNetApp Kubernetes Monitoring Operatorがインストールされ、更新可能なAPIアクセストークンを使用している場合、期限切れになるトークンは自動的に新規または更新されたAPIアクセストークンに置き換えられます。以下に示す手動手順を実行する必要はありません。
-
NetApp Kubernetes Monitoring Operatorを編集します。
kubectl -n netapp-monitoring edit agent agent-monitoring-netapp * 古いAPIトークンを新しいAPIトークンに置き換えて、_spec.output-sink.api-key_valueを変更します。
spec: … output-sink: - api-key:<NEW_API_TOKEN>
RHEL / CentOS と Debian/Ubuntu
-
Telegraf 構成ファイルを編集し、古い API トークンのすべてのインスタンスを新しい API トークンに置き換えます。
sudo sed -i.bkup ‘s/<OLD_API_TOKEN>/<NEW_API_TOKEN>/g’ /etc/telegraf/telegraf.d/*.conf * Tegraf を再起動します。
sudo systemctl restart telegraf
ウィンドウ
-
各 Tegraf コンフィギュレーションファイルを C : \Program Files\Telegra\Telegraf .d で、古い API トークンのすべてのインスタンスを新しい API トークンに置き換えます。
cp <plugin>.conf <plugin>.conf.bkup (Get-Content <plugin>.conf).Replace(‘<OLD_API_TOKEN>’, ‘<NEW_API_TOKEN>’) | Set-Content <plugin>.conf
-
Tegraf を再起動します。
Stop-Service telegraf Start-Service telegraf