コンテナ・インスタンスを使用したPostgreSQLカスタムOCIモニタリング・アラームおよびダッシュボードの作成

はじめに

このチュートリアルでは、DockerベースのJavaアプリケーションを使用してOracle Cloud Infrastructure (OCI)にPostgreSQLのカスタム・モニタリング・ソリューションをデプロイするステップバイステップの手順を示します。仮想マシン(VM)ベースのコンテナを使用して、OCIで非アクティブなレプリケーション・スロットおよびレプリケーション・ラグのカスタム・アラートおよびダッシュボードを作成する方法を説明します。現在の設定では、PostgreSQLレプリケーション・ラグおよび非アクティブなレプリケーション・スロットの監視に重点を置いていますが、設計は柔軟性があり、アプリケーション・コードを変更することによって追加のデータベース・メトリックを追跡するために簡単に拡張できます。

目的

タスク1: モニタリング・サービスのダウンロードおよび設定

  1. Postgres-monitoring-services.zipファイルをPostgres-monitoring-services.zipからダウンロードします。

  2. README.mdファイルの解凍および指示に従って、アプリケーションをビルドおよび実行します。

  3. Dockerのビルドおよびデプロイメントの手順がリポジトリに含まれています。

    ノート: Dockerイメージを構築およびプッシュする手順は、プロジェクト・リポジトリのREADME.mdですでに使用可能です。

タスク2: 動的システム・グループの作成

動的グループを使用すると、コンテナVMは、ハードコードされた資格証明を使用せずに、イメージに資格証明を格納することなく、OCI Monitoring、OCI Vault、OCI RegistryなどのOCIサービスにアクセスできます。

次の情報を使用します。

ノート: compartment.idは、コンテナ・インスタンスが作成されるコンパートメントOCIDです。

タスク3: ネットワーク(VCNおよびサービス・ゲートウェイ)の構成

シームレスな通信を実現するには、コンテナVMをPostgreSQLデータベース・システムと同じプライベート・サブネットに配置します。サービス・ゲートウェイを使用したOCIサービスへのアクセスを有効にします。

セキュリティ・リスト・ルール:

次のルールがプライベート・サブネットのセキュリティ・リスト(まだ存在しない場合)に追加されていることを確認します。

入力してください ソースCIDR プロトコル ポート 目 的
イングレス private-subnet-CIDR TCP 5432 PostgreSQLアクセス
エグレス 0.0.0.0/0 すべて すべて OCIサービスへのアクセス

タスク4: セキュアなパスワード記憶域でのOCI Vaultの使用

データベース資格証明のハードコードを回避するために、セキュアなパスワード記憶域にOCI Vaultを使用します。

  1. Vaultを作成し、PostgreSQLパスワードを含むシークレットを追加します。

  2. VaultシークレットOCIDを記録します。

  3. シークレットがすでに存在する場合は、再利用します。

タスク5: Oracle Cloud Infrastructure Identity and Access Managementポリシーの定義

これらのOCI IAMポリシーをアタッチします。

Allow dynamic-group psql_monitoring_with_container_vm_dg to read vaults in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read secret-bundles in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to use metrics in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read repos in compartment <your-tenancy-id>

タスク6: コンテナ・インスタンスの起動

OCIコンソールに移動し、「開発者サービス」「コンテナ・アーティファクト」「コンテナ・インスタンス」「インスタンスの作成」に移動して、次の情報を入力します:

ノート: OCI IAM動的グループを介して、資格証明なしでアクセスが付与されます。

イメージ

タスク7: OCIコンソールでのログの確認

OCIコンソールに移動し、「開発者サービス」「コンテナ・アーティファクト」「コンテナ・インスタンス」に移動し、インスタンスを選択し、「コンテナ」タブをクリックしてログおよびランタイム・ステータスを検査します。

タスク8: メトリック・エクスプローラでメトリックを表示

OCIコンソールに移動し、「監視および管理」「メトリック・エクスプローラ」に移動して、次の情報を入力します:

問合せの例:

replication_lag_metric[1m]{DBSystemId = "<your-db-system-ocid>"}.mean()

タスク9: OCI通知トピックおよびサブスクリプションの設定

  1. OCIコンソールに移動し、「アプリケーション統合」に移動して、「通知」をクリックします。

  2. トピックを作成します。たとえば、PostgresCustomMonitoringAlertsです。

  3. 「サブスクリプション」(電子メール、Webフックなど)を追加します。

  4. このトピックをアラームにリンクして、リアルタイム・アラートを生成します。

タスク10: 主要なメトリックのOCIモニタリング・アラームの構成

イメージ

イメージ

タスク11: カスタム・ダッシュボードの作成

  1. OCIコンソールに移動し、「監視および管理」に移動して、「ダッシュボード」をクリックします。

  2. 「新規ダッシュボード」をクリックします。

  3. 「メトリック・チャート」または「クエリー・ビルダー」を使用してウィジェットを追加します。

  4. 次の情報を入力します

    • ネームスペース: postgres_monitor_with_container_vmと入力します。
    • メトリック: replication_lag_metricおよびinactive_slot_metricを選択します。
  5. チャート・タイプ、フィルタおよび時間範囲をカスタマイズします。

イメージ

サマリー表

コンポーネント 目 的
動的グループ OCIにコンテナVMへのアクセス権を付与します
OCI Vault セキュアなデータベース資格証明ストレージ
OCIレジストリ ホストDockerイメージ・リポジトリ
管理エージェント カスタムPostgreSQLメトリックを収集します
アラーム ラグ、スロット、欠落データのアラート
コンテナVM Javaベースの監視ツールを実行します。
ダッシュボード リアルタイムでメトリックを可視化

サーバーレスおよびレジリエントなアーキテクチャのハイライト

トラブルシューティングと問題

確認

その他の学習リソース

docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。