Oracle Cloud Infrastructure

選択した Datadog サイト () では、Oracle Cloud Infrastructure インテグレーションはサポートされていません。

概要

Oracle Cloud Infrastructure (OCI) は、エンタープライズ規模の企業で利用される infrastructure-as-a-service (IaaS) および platform-as-a-service (PaaS) です。ホスティング、ストレージ、ネットワーキング、データベースなどに利用できる 30 以上のマネージド サービス一式を提供します。

Datadog の OCI インテグレーションを利用すると、メトリクス、ログ、リソース データを通じて OCI 環境を包括的に可視化できます。これらのデータでダッシュボードを活用でき、トラブルシューティングにも役立ち、セキュリティやコンプライアンスの状況監視にも利用できます。

セットアップ

メトリクス収集

OCI QuickStart はプレビュー版です。このフォーム から申請を送信してください。

Datadog の OCI QuickStart は、完全に管理された単一フローのセットアップ体験で、数回のクリックだけで OCI インフラストラクチャーとアプリケーションを監視できるようにします。OCI QuickStart は、メトリクス、ログ、リソース データを Datadog に転送するために必要な基盤を作成し、データ収集の対象となる新しいリソースや OCI コンパートメントを自動検出します。

: デフォルトではメトリクスのみが送信されます。このセットアップ完了後に、Datadog OCI インテグレーション タイル でログ収集とリソース データ収集を有効にしてください。

Datadog へのメトリクスとログの転送基盤をセットアップするには:

このインテグレーションでは、Oracle Service Connector Hubs を使用して Datadog にデータを転送します。セットアップを完了する前に、サービス制限の引き上げを申請 しておくことを推奨します。必要な Service Connector Hubs の概算は次のとおりです:

$$\text"Service Connector Hubs" = \text"テナンシー内のコンパートメント数" / \text"5"$$

  • これらの手順を実行するには、OCI のユーザー アカウントに Cloud Administrator ロールが必要です
  • 統合したいテナンシーで OCI にログインしている必要があります
  • 画面右上で Home Region を選択した状態で、OCI にログインしている必要があります
  • OCI のユーザー アカウントは Default Identity Domain に所属している必要があります
  • OCI のユーザー アカウントは、Default Identity Domain でユーザー、ユーザー グループ、および動的グループを作成できる必要があります
  • OCI のユーザー アカウントは、ルート コンパートメントでポリシーを作成できる必要があります
  • us-ashburn-1
  • ap-tokyo-1
  • sa-saopaulo-1
  • us-phoenix-1
  • eu-frankfurt-1
  • eu-stockholm-1
  • ap-singapore-1
  • us-sanjose-1
  • ca-toronto-1
  • sa-santiago-1
  • uk-london-1
  • eu-madrid-1
  • me-jeddah-1
  • us-chicago-1

このフォーム から追加リージョンをリクエストしてください。

Datadog OCI インテグレーション タイル

  1. Datadog OCI インテグレーション タイル に移動し、Add New Tenancy をクリックします。
  2. このインテグレーションで使用する Datadog API キーを選択するか、新規作成します。
  3. Datadog のアプリケーション キーを作成します。
  4. Create OCI Stack をクリックします。Oracle Resource Manager (ORM) のスタックに移動し、そこでデプロイを完了します。
    : このスタックはテナンシーごとに 1 回だけデプロイしてください。

ORM スタック

  1. Oracle 利用規約に同意します。
  2. カスタム Terraform プロバイダーを使用するオプションは、未選択のままにしてください。
  3. デフォルトの作業ディレクトリでスタックをデプロイするか、必要に応じて別のディレクトリを選択してください。
  4. Next をクリックし、もう一度 Next をクリックします。
  5. Create をクリックし、デプロイが完了するまで最大 15 分待ちます。

OCI メトリクスを Datadog に転送するには

このアーキテクチャを図で確認するには、アーキテクチャ セクションを参照してください。

テナンシー情報を入力

  • これらの手順を実行するには、OCI のユーザー アカウントに Cloud Administrator ロールが必要です
  • Tenancy OCID
  • Home Region

監視したいテナンシーの OCID とホーム リージョンを、Datadog OCI インテグレーション タイル に入力します。

OCI ポリシー スタックを作成

  • OCI のユーザー アカウントは、Default domain で [動的グループとポリシーを作成][4] できる必要があります
  • テナンシーのホーム リージョンにいる必要があります
画面右上で、テナンシーの ホーム リージョン が選択されていることを確認してください。

この Oracle Resource Manager (ORM) のポリシー スタックは、テナンシーごとに 1 回だけデプロイしてください。

  1. Datadog OCI インテグレーション タイルの Create Policy Stack ボタンをクリックします。
  2. Oracle 利用規約に同意します。
  3. カスタム Terraform プロバイダーを使用するオプションは未選択のままにします。
  4. スタックの名前とコンパートメントはデフォルトのままでも構いません。必要に応じて、分かりやすい名前やコンパートメントを指定することもできます。
  5. Next をクリックします。
  6. tenancy フィールドと current user フィールドは、そのまま変更しないでください。
  7. Next をクリックします。
  8. Create をクリックします。

DatadogROAuthUser 情報を入力

  • DatadogROAuthUser の OCID
  • OCI API キーとフィンガープリント値
  1. OCI コンソールの検索バーで DatadogROAuthUser を検索し、表示された User リソースをクリックします。
  2. ユーザーの OCID 値をコピーします。
  3. その値を、Datadog OCI インテグレーション タイルUser OCID フィールドに貼り付けます。
  4. OCI コンソールに戻り、次の手順で API キーを生成します:
    a. 画面左下の Resources 配下で API keys をクリックします。
    b. Add API key をクリックします。
    c. Download private key をクリックします。
    d. Add をクリックします。
    e. Configuration file preview のポップアップが表示されますが、操作は不要です。ポップアップを閉じてください。

OCI コンソールの Add API Key ページ

  1. フィンガープリント値をコピーし、Datadog OCI インテグレーション タイルFingerprint フィールドに貼り付けます。
  2. 次の手順で、秘密鍵の値をコピーします: a. ダウンロードした秘密鍵の .pem ファイルをテキスト エディターで開くか、cat などのターミナル コマンドでファイル内容を表示します。 b. -----BEGIN PRIVATE KEY----------END PRIVATE KEY----- を含む全内容をコピーします。
  3. プライベートキーの値を Datadog OCI インテグレーションタイルの Private Key フィールドに貼り付けてください。

OCI メトリクス転送スタックを作成

  • OCI のユーザー アカウントは、対象コンパートメント内でリソースを作成できる必要があります
  • [Datadog API Key][6] の値
  • Docker リポジトリに対してイメージを pull / push できるよう、REPOSITORY_READREPOSITORY_UPDATE 権限を持つユーザーのユーザー名と認証トークン
    • 認証トークンの作成方法は [認証トークンを取得する][7] を参照してください
    • 必要なポリシーの詳細は [リポジトリ アクセスを制御するポリシー][8] を参照してください

: Docker レジストリへのログイン情報が正しいか確認するには、[Oracle Cloud Infrastructure Registry へのログイン][9] を参照してください。

メトリクス転送スタックは、監視対象とする テナンシーとリージョンの組み合わせごと にデプロイする必要があります。最もシンプルな構成として、Datadog では以下で提供する Oracle Resource Manager (ORM) スタックを使い、必要な OCI リソースをまとめて作成する方法を推奨します。既存の OCI ネットワーク基盤を利用することも可能です。

Datadog の ORM スタックで作成されるリソースはすべて、指定したコンパートメントに、かつ画面右上で現在選択されているリージョンにデプロイされます。

  1. Datadog OCI インテグレーション タイルで Create Metric Stack ボタンをクリックします。
  2. Oracle 利用規約に同意します。
  3. Custom providers オプションは未選択のままにしてください。
  4. スタックに名前を付け、それをデプロイするコンパートメントを選択します。
  5. Next をクリックします。
  6. Datadog API Key フィールドに、Datadog API キー の値を入力します。
  7. Network options セクションでは、Create VCN を選択したままにします。

既存の Virtual Cloud Network (VCN) を使用する場合は、サブネットの OCID をスタックに指定する必要があります。VCN が次の条件を満たしていることを確認してください:

  • NAT ゲートウェイ経由で HTTP のエグレス通信ができる
  • サービス ゲートウェイを使用して OCI コンテナ レジストリからイメージを pull できる
  • ルート テーブル ルールで NAT ゲートウェイとサービス ゲートウェイを許可している
  • セキュリティ ルールで HTTP リクエストの送信を許可している
  1. Network options セクションで Create VCN を未選択にし、VCN 情報を入力します:
    a. vcnCompartment フィールドで、コンパートメントを選択します。
    b. existingVcn セクションで、既存の VCN を選択します。
    c. Function Subnet OCID セクションで、使用するサブネットの OCID を入力します。
  1. Metrics settings セクションで、必要に応じて収集対象から除外するメトリクス ネームスペースを削除します。
  2. Metrics compartments セクションで、監視するコンパートメント OCID をカンマ区切りで入力します。前の手順で選択したメトリクス ネームスペース フィルターが、各コンパートメントに適用されます。
  3. Function settings セクションで GENERIC_ARM を選択します。日本リージョンにデプロイする場合は GENERIC_X86 を選択してください。
  4. Next をクリックします。
  5. Create をクリックします。
  6. Datadog OCI インテグレーション タイル に戻り、Create Configuration をクリックします。

:

  • デフォルトでは、ルート コンパートメントのみが選択され、手順 8 で選択したメトリクス ネームスペースのうち、該当コンパートメントに存在するものがすべて有効になります (Service Connector Hub あたり最大 50 ネームスペースまでサポート)。追加のコンパートメントを監視対象にした場合、そのコンパートメントに追加されるネームスペースは、「選択したネームスペース」と「コンパートメントに存在するネームスペース」の共通部分になります。
  • Resource Manager スタックの Terraform state ファイルに誰がアクセスできるかは、適切に管理してください。詳細は、Securing Resource Manager ページの Terraform State Files セクション を参照してください。

Datadog で設定を完了する

Datadog OCI インテグレーション タイル に戻り、Ready! をクリックします。

検証

Datadog の OCI integration overview dashboard または Metrics Explorer pageoci.* メトリクスを確認します。

OCI 関数メトリクス (oci.faas ネームスペース) とコンテナインスタンスメトリクス (oci_computecontainerinstance ネームスペース) はプレビュー版です。

構成

Datadog における OCI テナンシーの configuration タブ

セットアップ完了後、Datadog OCI インテグレーション タイル の左側に、テナンシー用の configuration タブが表示されるようになります。以降のセクションで説明する手順に従い、テナンシー全体のデータ収集設定を適用してください。

Add regions

General タブで、Regions のチェック ボックス一覧からデータ収集対象のリージョンを選択します。リージョンの選択は、メトリクスとログの両方について、テナンシー全体に適用されます。

: QuickStart 方式で初期セットアップを行い、その後に新しい OCI リージョンを購読した場合は、ORM で初期セットアップ スタックを再適用してください。これにより、新しいリージョンが Datadog OCI タイルで選択可能になります。

メトリクスとログの収集

Metric collectionLog collection タブで、Datadog に送信するメトリクスとログを設定します:

  • テナンシー全体について、メトリクスまたはログの収集を Enable / disable する
  • key:value 形式のコンパートメント タグを基に、特定のコンパートメントを Include / exclude する。例:
    • datadog:monitored,env:prod* は、いずれかのタグが存在するコンパートメントを対象に含めます
    • !env:staging,!testing は、両方のタグが存在する場合にのみコンパートメントを対象から除外します
    • datadog:monitored,!region:us-phoenix-1 は、datadog:monitored タグがあり、かつ region:us-phoenix-1 タグがないコンパートメントを対象に含めます
  • 特定の OCI サービスについて、収集を Enable / disable する

:

  • OCI 側でタグを変更してから Datadog に反映されるまで、最大 15 分かかる場合があります
  • OCI では、タグは子コンパートメントに継承されません。各コンパートメントを個別にタグ付けする必要があります

ログ収集

OCI ログを Datadog に送信するには、以下のいずれかの方法を使用します:

  1. メトリクスとログの両方を Datadog に転送するための基盤は、セットアップ セクション の手順に沿って作成します。
  2. Datadog OCI インテグレーション タイルLog Collection タブで、Enable Log Collection トグルをオンにします。
  1. OCI ログを構成します。
  2. OCI 関数を作成します。
  3. OCI サービスコネクタを設定します。

以下の手順では、OCI ポータルを使用してインテグレーションを設定します。

OCI ロギング

  1. OCI ポータルで、Logging -> Log Groups に移動します。
  2. コンパートメントを選択し、Create Log Group をクリックします。サイドパネルが開きます。
  3. 名前には data_log_group を入力し、オプションで説明とタグを入力します。
  4. Create をクリックして、新しいロググループを設定します。
  5. Resources の下にある Logs をクリックします。
  6. 必要に応じて、Create custom log または Enable service log をクリックします。
  7. Enable Log をクリックして、新しい OCI ログを作成します。

OCI ログの詳細については、リソースのログを有効にするを参照してください。

OCI 関数

  1. OCI ポータルで、Functions に移動します。
  2. 既存のアプリケーションを選択するか、Create Application をクリックします。
  3. アプリケーション内に新しい OCI 関数を作成します。詳細については、Oracle の関数概要を参照してください。
  4. まずボイラープレートの Python 関数を作成し、自動生成されたファイルを Datadog のソース コードに差し替えることを推奨します:
    • Datadog OCI リポジトリ のコードで func.py を置き換えます
    • Datadog OCI リポジトリ のコードで func.yaml を置き換えます。DATADOG_TOKENDATADOG_HOST は、それぞれ Datadog API キーと、対象リージョンのログ取り込みリンク (logs intake link) に置き換える必要があります
    • Datadog OCI リポジトリ のコードで requirements.txt を置き換えます

OCI サービスコネクタハブ

  1. OCI ポータルで、Logging -> Service Connectors に移動します。
  2. Create Service Connector をクリックして、Create Service Connector ページに移動します。
  3. ロギングとして Source を選択し、関数として Target を選択します。
  4. Configure Source Connection で、Compartment nameLog GroupLog を選択します。(最初のステップで作成された Log GroupLog)
  5. Audit Logs も送信する場合は、+Another Log をクリックし、同じ Compartment を選択して、Log Group として “_Audit” を置き換えます。
  6. Configure target で、CompartmentFunction applicationFunction を選択します。(前のステップで作成された Function ApplicationFunction)
  7. ポリシーを作成するように求められたら、プロンプトから Create をクリックします。
  8. 一番下の Create をクリックして、サービスコネクタの作成を完了します。

OCI オブジェクトストレージの詳細については、Oracle のサービスコネクタのブログ記事を参照してください。

  1. OCI ログを構成します。
  2. OCI オブジェクトストアを作成し、OCI ログの読み取り/書き込みアクセスを有効にします。
  3. OCI 関数を作成します。
  4. OCI イベントを設定します。

以下の手順では、OCI ポータルを使用してインテグレーションを設定します。

OCI ロギング

  1. OCI ポータルで、Solutions and Platform -> Logging -> Logs に移動します。
  2. Create Custom Log をクリックして、Create Custom Log ページに移動します。
  3. 新しい OCI ログに名前を付けます。
  4. CompartmentLog Group を選択します。この選択は、インストール全体で一貫しています。
  5. Create Custom Log をクリックして、Create Agent Config ページに移動します。
  6. Create new configuration をクリックします。
  7. 新しいコンフィギュレーションに名前を付けます。コンパートメントは事前に選択されています。
  8. グループタイプを Dynamic Group に設定し、グループを既存のグループの 1 つに設定します。
  9. 入力タイプを Log Path に設定し、希望の入力名を入力して、ファイルパスに “/” を使用します。
  10. Create Custom Log をクリックすると、OCI ログが作成され、ログページで利用できるようになります。

OCI ログの詳細については、リソースのログを有効にするを参照してください。

OCI オブジェクトストレージ

  1. OCI ポータルで、Core Infrastructure -> Object Storage -> Object Storage に移動します。
  2. Create Bucket をクリックして、Create Bucket フォームに移動します。
  3. ストレージ階層に Standard を選択し、Emit Object Events をチェックします。
  4. 好みに応じてフォームの残りの部分に記入します。
  5. Create Bucket をクリックすると、バケットが作成され、バケットリストで利用できるようになります。
  6. アクティブなバケットリストから新しいバケットを選択し、リソースの下の Logs をクリックします。
  7. read を有効化すると、Enable Log のサイド メニューに移動します。
  8. CompartmentLog Group を選択します (OCI ログと同じ選択を使用します)。
  9. Log Name の名前を入力し、希望するログ保持を選択します。

OCI オブジェクトストレージの詳細については、データをオブジェクトストレージに格納するを参照してください。

OCI 関数

  1. OCI ポータルで、Solutions and Platform -> Developer Services -> Functions に移動します。
  2. 既存のアプリケーションを選択するか、Create Application をクリックします。
  3. アプリケーション内に新しい OCI 関数を作成します。詳細については、Oracle の関数概要を参照してください。
  4. まずボイラープレートの Python 関数を作成し、自動生成されたファイルを Datadog のソース コードに差し替えることを推奨します:
    • Datadog OCI リポジトリ のコードで func.py を置き換えます
    • Datadog OCI リポジトリ のコードで func.yaml を置き換えます。DATADOG_TOKENDATADOG_HOST は、それぞれ Datadog API キーと、対象リージョンのログ取り込みリンク (logs intake link) に置き換える必要があります
    • Datadog OCI リポジトリ のコードで requirements.txt を置き換えます

OCI イベント

  1. OCI ポータルで、Solutions and Platform -> Application Integration -> Event Service に移動します。
  2. Create Rule をクリックして、Create Rule ページに移動します。
  3. イベントルールに名前と説明を付けます。
  4. 条件を Event Type*、サービス名を Object Storage、イベントタイプを Object - Create として設定します。
  5. アクションタイプを Functions として設定します。
  6. 関数コンパートメントが、OCI ログ、OCI バケット、および OCI 関数に対して行った選択と同じであることを確認します。
  7. (前のインストール手順に従って) 関数アプリケーションと関数を選択します。
  8. Create Rule をクリックすると、ルールが作成され、ルールリストで利用できるようになります。

OCI オブジェクトストレージの詳細については、イベント入門を参照してください。

リソース収集

Datadog OCI インテグレーション タイルResource Collection タブで、Enable Resource Collection トグルをオンにします。リソースは Datadog Resource Catalog で確認できます。

アーキテクチャ

メトリクスとログの転送リソース

このセットアップ オプションで使用する OCI のメトリクス / ログ転送リソースと、データの流れを示した図

監視対象のリージョンごとに、このオプションでは、そのリージョン内に次の基盤を作成してメトリクスとログを Datadog に転送します:

  • 関数アプリケーション (dd-function-app)
  • 2 つの関数:
    • Metrics Forwarder (dd-metrics-forwarder)
    • Logs Forwarder (dd-logs-forwarder)
  • セキュアなネットワーク基盤を備えた VCN (dd-vcn):
    • プライベート サブネット (dd-vcn-private-subnet)
    • インターネットへの外部アクセス用 NAT ゲートウェイ (dd-vcn-natgateway)
    • OCI サービスへの内部アクセス用サービス ゲートウェイ (dd-vcn-servicegateway)
  • Datadog API キーを保管するための Key Management Service (KMS) vault (datadog-vault)
  • 専用の Datadog コンパートメント (Datadog)

すべてのリソースに ownedby = "datadog" タグが付与されます。

IAM リソース

このセットアップ オプションで使用する OCI の IAM リソースと、データの流れを示した図

このオプションでは、Datadog へのデータ転送を可能にするため、次の IAM リソースを作成します:

  • サービス ユーザー (dd-svc)
  • サービス ユーザーが所属するグループ (dd-svc-admin)
  • API 認証用の RSA 鍵ペア
  • サービス ユーザー用の OCI API キー
  • Datadog コンパートメント内の全サービス コネクタを含む動的グループ (dd-dynamic-group-connectorhubs)
  • Datadog コンパートメント内の全関数を含む動的グループ (dd-dynamic-group-function)
  • Datadog が作成 / 管理するコンパートメント内で、テナンシー リソースの読み取り権限に加え、OCI Service Connector Hubs と OCI Functions を管理できる権限をサービス ユーザーに付与するポリシー (dd-svc-policy)
- Allow dd-svc-admin to read all-resources in tenancy
- Allow dd-svc-admin to manage serviceconnectors in Datadog compartment
- Allow dd-svc-admin to manage functions-family in Datadog compartment with specific permissions:
     * FN_FUNCTION_UPDATE
     * FN_FUNCTION_LIST
     * FN_APP_LIST
- Endorse dd-svc-admin to read objects in tenancy usage-report
  • サービス コネクタがデータ (ログとメトリクス) を読み取り、関数と連携できるようにするためのポリシー dd-dynamic-group-policy。このポリシーにより、関数は Datadog コンパートメント内のシークレット (KMS vault に保存された Datadog API キーとアプリケーション キー) も読み取れるようになります
   - Allow dd-dynamic-group-connectorhubs to read log-content in tenancy
   - Allow dd-dynamic-group-connectorhubs to read metrics in tenancy
   - Allow dd-dynamic-group-connectorhubs to use fn-function in Datadog compartment
   - Allow dd-dynamic-group-connectorhubs to use fn-invocation in Datadog compartment
   - Allow dd-dynamic-group-functions to read secret-bundles in Datadog compartment

メトリクス転送リソース

このセットアップ オプションで使用する OCI リソースと、データの流れを示した図

このオプションでは、OCI メトリクスを Datadog に転送するために、OCI の コネクタ ハブ関数アプリ、およびセキュアなネットワーク基盤を作成します。これらのリソース用の ORM スタックは、テナンシー内の当該リージョンに関数用コンテナ リポジトリを作成し、Docker イメージをそこへ push して関数から利用します。

IAM リソース

インテグレーション認証で使用する OCI リソースとワークフローの図

このオプションで作成されるもの:

  • コネクタ ハブへのアクセスを可能にするため、resource.type = 'serviceconnectors' を条件にした動的グループ
  • Datadog がテナンシー リソースを読み取るために使用する、DatadogROAuthUser というユーザー
  • 作成したユーザーをポリシーで許可するために追加するグループ
  • 関数用の Docker イメージを push するために使用する、DatadogAuthWriteUser というユーザー
  • DatadogAuthWriteUser を追加し、ポリシー経由でイメージを push できるようにする Write access group
  • コネクタ ハブがメトリクスを読み取り、関数を呼び出せるようにするためのルート コンパートメントのポリシー。このポリシーは、作成したユーザー グループに対しても、テナンシー リソースの読み取り権限と Write access group へのアクセス権を付与し、イメージを push できるようにします
Allow dynamic-group Default/<GROUP_NAME> to read metrics in tenancy
Allow dynamic-group Default/<GROUP_NAME> to use fn-function in tenancy
Allow dynamic-group Default/<GROUP_NAME> to use fn-invocation in tenancy
Allow group Default/<USER_GROUP_NAME> to read all-resources in tenancy
Allow group Default/<WRITE_USER_GROUP_NAME> to manage repos in tenancy where ANY {request.permission = 'REPOSITORY_READ', request.permission = 'REPOSITORY_UPDATE', request.permission = 'REPOSITORY_CREATE'}

収集データ

メトリクス

このインテグレーションで提供されるメトリクスの一覧は、metadata.csv を参照してください。

サービス チェック

OCI インテグレーションには、サービスのチェック機能は含まれません。

イベント

OCI インテグレーションには、イベントは含まれません。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問い合わせください。

その他の参考資料

役立つドキュメント、リンク、記事: