すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for OceanBase:Prometheus を使用した ApsaraDB for OceanBase の監視

最終更新日:Jan 19, 2025

このトピックでは、OBCloud Exporter と Prometheus をデプロイして ApsaraDB for OceanBase を監視する方法について説明します。

背景

OBCloud Exporter は、データベースデータを処理するために ApsaraDB for OceanBase が提供するツールです。 このツールを使用して ApsaraDB for OceanBase で認証を行いデータを取得し、Prometheus を使用してデータベースを監視できます。

Prometheus は、システムで直接実行することも、Docker を使用してデプロイすることもできます。

前提条件

  1. Java 8 以降がインストールされていること。

  2. Docker がデプロイされていること。

システムで Prometheus を実行して ApsaraDB for OceanBase を監視する

  1. OBCloud Exporter をダウンロードします。

    説明

    現在、OBCloud Exporter を直接ダウンロードすることはできません。 ツールをダウンロードするには、OceanBase テクニカルサポートにお問い合わせください。

  2. OBCloud Exporter をデプロイします。

    1. OBCloud Exporter のインストールパッケージを /opt/obcloud-exporter ディレクトリに解凍します。

      mkdir /opt/obcloud-exporter
      tar -zxvf Obcloud_Exporter.tar.gz -C /opt/obcloud-exporter --strip-components=1

      インストールパッケージから以下のファイルが抽出されます。

      • Dockerfile: Docker コンテナビルドファイル。

      • muticloud_metric_config.yaml: メトリック構成ファイル。 デフォルトでは、このファイルを変更する必要はありません。

      • application.yaml: コレクション構成ファイル。

      • obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jar: OBCloud Exporter のプログラム。

      • readme.md: プロジェクトの説明。

    2. application.yaml 構成ファイルを編集します。

      # モニター名。
      aliyun_monitor:
        # 認証情報。
        credential:
          access_key_id: xxx
          access_key_secret: xx
          region_id: ap-southeast-1
          # エンドポイント。
          end_point: xxx
          # メトリックを定期的にリフレッシュするかどうか。 デフォルト値は false です。
          metric_meta_auto_refresh: false
        instances:
        		# インスタンス ID。
          - instance_id: xxx
            # クラスタ内の特定のテナントのデータをクエリするには、tenant_id を構成する必要があります。
            tenant_id: xxx
            # インスタンスタイプ。cluster(クラスタインスタンス)または tenant(テナントインスタンスまたはサーバーレスインスタンス)を指定できます。
            instance_type: tenant
            metrics: 

      パラメータの説明は以下のとおりです。

      • access_key_id および access_key_secret: 認証用の AccessKey ペア。 対応するプラットフォームから AccessKey ペアを申請できます。 詳細については、「AccessKey を作成する」をご参照ください。

      • region_id および end_point: 詳細については、「リージョン (ApsaraDB for OceanBase)」を参照してください。

      • metric_meta_auto_refresh: メトリックを定期的にリフレッシュするかどうかを指定します。 デフォルト値は false です。

      • instances: 監視対象のインスタンス。 クラスタインスタンスまたはテナントインスタンスをハイフン (-) で区切ります。

      • instance_id: クラスタインスタンス、サーバーレスインスタンス、またはテナントインスタンスの ID。

        説明

        値は、クラスタ内のテナント ID にすることはできません。

      • instance_type: 有効な値は cluster と tenant です。 instance_id の値がクラスタインスタンス ID の場合は、このパラメータを cluster に設定します。 instance_id の値がテナントインスタンス ID またはサーバーレスインスタンス ID の場合は、このパラメータを tenant に設定します。

      • tenant_id: このパラメータは、クラスタ内の特定のテナントのデータをクエリする場合に必須です。

      • metrics: 収集するメトリック。 このパラメータを指定しない場合は、すべてのメトリックが収集されます。 メトリックは次の形式で指定します。

        instances:
          -instance_id: xxx
            tenant_id: xxx
            instance_type: cluster
            metrics: 
              - sql_all_rt
              - sql_delete_rt
        説明

        大量のメトリックを収集すると、収集速度に影響を与える可能性があります。 この場合は、複数のエクスポーターを使用してメトリックを収集できます。

  3. OBCloud Exporter の JAR ファイルを実行します。

    java -jar /opt/obcloud-exporter/obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jar

    ブラウザでデプロイ結果を確認します。 具体的には、ブラウザで対応する IP アドレスのポート 9400 にアクセスして、モニタリングデータが受信されているかどうかを確認します。

    説明

    実際には、構成済みの IP アドレスとポート番号を使用してアクセスします。

  4. 必要なバージョンの Prometheus を公式サイトからダウンロードします。 ここでは、Linux 用の Prometheus 2.50.1 をダウンロードする例を示します。

    wget https://github.com/prometheus/prometheus/releases/download/v2.50.1/prometheus-2.50.1.linux-amd64.tar.gz
  5. Prometheus をデプロイします。

    1. Prometheus のインストールパッケージを /opt/prometheus ディレクトリに解凍します。

      mkdir -p /opt/prometheus
      tar -zxvf prometheus-2.50.1.linux-amd64.tar.gz -C /opt/prometheus --strip-components=1
    2. prometheus.yml 構成ファイルを作業ディレクトリに移動し、必要に応じてファイルを編集します。

      mv /opt/prometheus/prometheus.yml /usr/local/bin/
      vi /usr/local/bin/prometheus.yml

      以下のパラメータを変更します。

      global:
        scrape_interval: 30s
        scrape_timeout: 20s
      
      scrape_configs:
        - job_name: "nodes"
          static_configs:
          - targets: ['localhost:9400']
    3. Prometheus のサービスファイルとデータストレージディレクトリを作成します。

      mkdir /var/lib/prometheus/
      sudo vim /etc/systemd/system/Prometheus.service

      次のコンテンツを入力して保存します。

      説明

      User パラメータと Group パラメータはオプションです。 ユーザー名とユーザーグループの構成方法については、次の手順を参照してください。

      [Unit]
      Description=Prometheus
      Wants=network-online.target
      After=network-online.target
      
      [Service]
      User=prometheus
      Group=prometheus
      Restart=on-failure
      ExecStart=/opt/prometheus/prometheus \
            --config.file /usr/local/bin/prometheus.yml \
            --storage.tsdb.path /var/lib/prometheus/
      
      [Install]
      WantedBy=multi-user.target
    4. (オプション) ユーザー名とユーザーグループを構成します。 前の手順で指定したユーザー名とユーザーグループがすでに存在する場合、またはユーザー名とユーザーグループを指定していない場合は、この手順をスキップできます。

      sudo groupadd prometheus
      sudo useradd -r -g prometheus prometheus
      sudo chown -R prometheus:prometheus /opt/prometheus /var/lib/prometheus
      sudo chmod -R 755 /opt/prometheus /var/lib/prometheus
  6. Prometheus サービスを開始します。

    # systemd 構成を再読み込みします。
    sudo systemctl daemon-reload
    
    # Prometheus サービスを開始します。
    sudo systemctl start prometheus
    
    # ブート時に Prometheus サービスが開始されるように有効にします。
    sudo systemctl enable prometheus
    
    # サービスステータスを確認します。
    sudo systemctl status prometheus
  7. Prometheus が開始されたかどうかを確認します。

     sudo netstat -ntlp | grep 9090

Docker を使用して Prometheus をデプロイして ApsaraDB for OceanBase を監視する

  1. OBCloud Exporter をダウンロードします。

    説明

    現在、OBCloud Exporter を直接ダウンロードすることはできません。 ツールをダウンロードするには、OceanBase テクニカルサポートにお問い合わせください。

  2. OBCloud Exporter をデプロイします。

    1. OBCloud Exporter のインストールパッケージを /opt/obcloud-exporter ディレクトリに解凍します。

      mkdir /opt/obcloud-exporter
      tar -zxvf Obcloud_Exporter.tar.gz -C /opt/obcloud-exporter --strip-components=1

      インストールパッケージから以下のファイルが抽出されます。

      • Dockerfile: Docker コンテナビルドファイル。

      • muticloud_metric_config.yaml: メトリック構成ファイル。 デフォルトでは、このファイルを変更する必要はありません。

      • application.yaml: コレクション構成ファイル。

      • obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jar: OBCloud Exporter のプログラム。

      • readme.md: プロジェクトの説明。

    2. application.yaml 構成ファイルを編集します。

      # モニター名。
      aliyun_monitor:
        # 認証情報。
        credential:
          access_key_id: xxx
          access_key_secret: xx
          region_id: ap-southeast-1
          # エンドポイント。
          end_point: xxx
          # メトリックを定期的にリフレッシュするかどうか。 デフォルト値は false です。
          metric_meta_auto_refresh: false
        instances:
        		# インスタンス ID。
          - instance_id: xxx
            # クラスタ内の特定のテナントのデータをクエリするには、tenant_id を構成する必要があります。
            tenant_id: xxx
            # インスタンスタイプ。cluster(クラスタインスタンス)または tenant(テナントインスタンスまたはサーバーレスインスタンス)を指定できます。
            instance_type: tenant
            metrics: 

      パラメータの説明は以下のとおりです。

      • access_key_id および access_key_secret: 認証用の AccessKey ペア。 対応するプラットフォームから AccessKey ペアを申請できます。 詳細については、「AccessKey を作成する」をご参照ください。

      • region_id および end_point: 詳細については、「リージョン (ApsaraDB for OceanBase)」を参照してください。

      • metric_meta_auto_refresh: メトリックを定期的にリフレッシュするかどうかを指定します。 デフォルト値は false です。

      • instances: 監視対象のインスタンス。 クラスタインスタンスまたはテナントインスタンスをハイフン (-) で区切ります。

      • instance_id: クラスタインスタンス、サーバーレスインスタンス、またはテナントインスタンスの ID。

        説明

        値は、クラスタ内のテナント ID にすることはできません。

      • instance_type: 有効な値は cluster と tenant です。 instance_id の値がクラスタインスタンス ID の場合は、このパラメータを cluster に設定します。 instance_id の値がテナントインスタンス ID またはサーバーレスインスタンス ID の場合は、このパラメータを tenant に設定します。

      • tenant_id: このパラメータは、クラスタ内の特定のテナントのデータをクエリする場合に必須です。

      • metrics: 収集するメトリック。 このパラメータを指定しない場合は、すべてのメトリックが収集されます。 メトリックは次の形式で指定します。

        instances:
          -instance_id: xxx
            tenant_id: xxx
            instance_type: cluster
            metrics: 
              - sql_all_rt
              - sql_delete_rt
        説明
        • 詳細については、「監視メトリック」をご参照ください。

        • 大量のメトリックを収集すると、収集速度に影響を与える可能性があります。 この場合は、複数のエクスポーターを使用してメトリックを収集できます。

  3. Docker を使用して OBCloud Exporter を開始します。

    1. /opt/obcloud-exporter ディレクトリで、Docker コンテナ obcloud-exporter をビルドします。

      cd /opt/obcloud-exporter
      docker build -t obcloud-exporter:1.0 .
    2. Docker コンテナを直接、または外部構成ファイルを使用して開始します。

      1. Docker コンテナを直接開始します。

        docker run -itd -p9400:9400 --name obcloud-exporter obcloud-exporter:1.0
      2. 外部構成ファイルを使用して Docker コンテナを開始します。

        docker run -itd -p9400:9400 -v /opt/obcloud-exporter/application.yaml:/app/application.yaml --name obcloud-exporter obcloud-exporter:1.0
  4. ブラウザでデプロイ結果を確認します。 具体的には、ブラウザで対応する IP アドレスのポート 9400 にアクセスして、モニタリングデータが受信されているかどうかを確認します。

    説明

    実際には、構成済みの IP アドレスとポート番号を使用してアクセスします。

  5. Prometheus の prometheus.yml 構成ファイルを作成します。

    vi /usr/local/bin/prometheus.yml

    構成ファイルを編集します。

    global:
      scrape_interval: 30s
      evaluation_interval: 30s
    
    scrape_configs:
      - job_name: obcloud-exporter-test
        static_configs:
            # ローカルサーバーとポート番号。
          - targets: ['obcloud-exporter:9400']
            labels:
              instance: obcloud-exporter
  6. Prometheus サービスを開始します。

     docker run  -d \
       -p 9090:9090 \
       -v /usr/local/bin/prometheus.yml:/etc/prometheus/prometheus.yml  \
       --link obcloud-exporter  \
       --name prometheus \
       prom/prometheus
  7. Prometheus が開始されたかどうかを確認します。

    sudo netstat -ntlp | grep 9090

Prometheus を介してデータベースのモニタリングデータを表示する

ブラウザで Prometheus サービス URL http://localhost:9090/targets にアクセスして、対応するモニタリングデータを表示します。

監視メトリック

OBCloud Exporter を構成する際に、ApsaraDB for OceanBase でサポートされている監視メトリックを指定すると、OBCloud Exporter によってメトリックが収集されます。 OBCloud Exporter が実行されている場合、システムはこれらの監視メトリック (クラスタホスト監視メトリックとテナントレベルの監視メトリックを含む) を OBCloud Exporter に同期します。 詳細については、「クラスタ監視メトリック」および「テナント監視メトリック」をご参照ください。

application.yaml 構成ファイルの metric_meta_auto_refresh パラメータが false に設定されている場合、サポートされる監視メトリックは初期アクセス時に返されるメトリックです。 metric_meta_auto_refresh パラメータが true に設定されている場合、サポートされる監視メトリックのリストは 10 分ごとにリフレッシュされます。