Docs Menu
Docs Home
/
MongoDB Ops Manager
/ /

Prometheus との統合

項目一覧

  • 前提条件
  • 手順
  • 構成例
  • Prometheus で使用できるパフォーマンス メトリクス
  • MongoDB メトリクス ラベル
  • MongoDB 情報メトリクス
  • ハードウェア メトリクス
  • ハードウェア メトリクス ラベル

Prometheus は指定された間隔で設定されたターゲットからメトリクスを収集し、ルール式を評価して結果を表示し、特定の条件が観察されたときにアラートをトリガーできます。

この統合により、MongoDB Ops Manager を構成して、配置に関するメトリクス データを Prometheus に送信することができます インスタンス。

  • Prometheus 統合は、 MongoDB Agent を使用する オートメーション管理12 クラスターで利用できます。0 。15 。7646以降に更新します。 MongoDB Agent 12.0.15.7646 はMongoDB Ops Manager 6.0.7 とともにリリースされます。

  • Prometheus が動作している インスタンス。動作するインスタンスをセットアップするには、「 インストール ガイド 」を参照してください。

  • (任意)Grafana を使用して Prometheus メトリクスを視覚化します。

Prometheus と統合するにはMongoDB Ops Manager :

1
  1. まだ表示されていない場合は、目的のプロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューから目的のプロジェクトを選択します。

  3. Projectsメニューの横にあるOptions メニューを展開し、Integrations をクリックします。

2
3

Prometheus認証情報は、 MongoDB Ops Managerの Prometheus 統合で使用するために特別に設計されています。 MongoDB Ops Managerはこれらの認証情報を使用して Prometheus 検出エンドポイントのみにアクセスし、 MongoDB Ops Managerノードから Prometheus メトリクスをスクレイピングします。 これらの機能に厳密に制限され、モニタリング データへのアクセスと収集以外の権限や機能はありません。

重要

ユーザー名とパスワードを安全な場所にコピーします。この画面を離れた後は、パスワードにアクセスできません。

4

Tip

デフォルト値の 0.0.0.0:9216は、ローカルマシン上のすべての IPv4アドレスのポート9216のメトリクスをスクレイピングします。

5

この設定を有効にすると、 MongoDB Ops Managerは Prometheus インスタンスが https を使用してメトリクスをスクレイピングすることを保証します。

フィールド
説明
TLS 証明書鍵ファイルパス

PEM https Prometheus スクレイピング エンドポイントの起動に必要な証明書とキーを含むファイル パス。

以下の管理はあなたが行います。

  • TLS 証明書鍵ファイルの発行と更新。

  • オートメーションエージェントのログでエンドポイントが正しく起動されたかどうかを確認します。

TLS 証明書鍵ファイルのパスワード
証明書鍵ファイルが暗号化されている場合は必須です。
6
確認方法
説明
このメソッドには Prometheus v 2.28以降が必要です。 scrape_config 構成ファイル の一部 HTTP エンドポイント経由でターゲットを検出するため。

この方法により、Prometheus はYAMLまたはJSONドキュメントを読み取って、スクレイピングするターゲットを構成できます。

Discovery API にリクエストを送信し、その結果を targets.json ファイルに保存することで、ターゲットを提供する必要があります。

リクエストを行うには、次のいずれかのタブでプレースホルダー テキストを置き換えるか、別の言語で独自のスクリプトを作成します。

# Sets the `Authorization` header on every scrape
# request with the username and password from the
# previous step. The URL that Prometheus fetches the
# targets from.
# Replace the <group-id> with the project ID of your
# Atlas instance.
curl --header 'Accept: application/json' \
--user <username>:<password> \
--request GET "https://cloud.mongodb.com/prometheus/v1.0/groups/{GROUP-ID}/discovery"

requests ライブラリをインストールする必要がある場合は、「インストール ガイド」を参照してください。

import time, json, requests
# This script sets the `Authorization` header on every
# scrape request with the configured username and
# password. Then it tells Prometheus to fetch targets
# from the specified URL.
#
# Note: Replace the <username> and <password> with the
# values in the previous step, and <group-id> with the
# project ID of your Atlas instance.
basic_auth_user="<username>"
basic_auth_password="<password>"
discovery_api_url="https://cloud.mongodb.com/prometheus/v1.0/groups/{GROUP-ID}/discovery"
# The script updates your targets.json file every
# minute, if it successfully retrieves targets.
#
# Note: Replace the <path-to-targets.json> with the
# path to your targets.json file.
starttime = time.time()
while True:
r = requests.get(discovery_api_url, auth=(basic_auth_user, basic_auth_password))
if r.status_code == 200:
with open('<path-to-targets.json>', 'w') as f:
json.dump(r.json(), f)
time.sleep(60.0 - ((time.time() - starttime) % 60.0))

Discovery API の詳細については、「Prometheus の最新のターゲットを返す」を参照してください。

7
8
  1. 生成されたスニペットを scrape_configs にコピーする 構成ファイル の プレースホルダー テキストを置き換えます。

    どちらの方法を行う場合も、構成ファイル例を 参照してください

  2. Prometheus インスタンスを再起動します。

  3. Prometheus インスタンスで、上部のナビゲーション バーの Status をクリックし、Targets をクリックして配置に関するメトリクスを表示します。

以下は 構成ファイル の例ですHTTP Service 検出 または ファイル サービス検出 メソッドを使用する場合。

どちらのメソッドの構成ファイルにも、次のフィールドが含まれています。

フィールド
説明
scrape_interval
ターゲットをスクレイピングする頻度を示す時間。この設定では、最小時間単位が 10 秒となっています。
job_name
スクレイピングされたメトリクスに割り当てられた、人間が読めるラベル。
metrics_path
ターゲットからメトリクスを取得する場所を示す HTTP リソース パス。
scheme
リクエスト用に構成された Prometheus プロトコル スキームhttpまたはhttpshttpsを構成する場合は、 tlsPemPathを指定する必要があります。
basic_auth
すべてのスクレイプ リクエストで使用する承認ヘッダー。

HTTP サービス検出メソッドには、次のサブフィールドを持つ http_sd_configs フィールドも含まれています。

フィールド
説明
url
Prometheus がターゲットを取得する URL。
refresh_interval
エンドポイントを再クエリするタイミングを示す時間。
basic_auth
API サーバーへの認証に使用する資格情報。
global:
scrape_interval: 15s
scrape_configs:
- job_name: "CM-Testing-mongo-metrics"
scrape_interval: 10s
metrics_path: /metrics
scheme : https
basic_auth:
username: prom_user_61e6e34e93eac1632d39f457
password: V7hTyLfkjwiWQbv
http_sd_configs:
- url: https://cloud.mongodb.com/prometheus/v1.0/groups/61e6e34e93eac1632d39f457/discovery
refresh_interval: 60s
basic_auth:
username: prom_user_61e6e34e93eac1632d39f457
password: V7hTyLfkjwiWQbv

ファイル サービス検出メソッドには、次のサブフィールドを持つ file_sd_configs フィールドも含まれます。

フィールド
説明
files
メトリクスのスクレイピング対象を抽出するためのファイルを含むリスト。
global:
scrape_interval: 15s
scrape_configs:
- job_name: "CM-Testing-mongo-metrics"
scrape_interval: 10s
metrics_path: /metrics
scheme : https
basic_auth:
username: prom_user_61e6e34e93eac1632d39f457
password: V7hTyLfkjwiWQbv
file_sd_configs:
- files:
- /usr/local/etc/targets.json

Prometheus を使用すると、次のメトリクスが利用できます MongoDB Atlas クラスターとの統合

各 MongoDB メトリクスには次のラベルが含まれています。

ラベル
説明
group_id
プロジェクトを識別するユニークな 16 進数の文字列。
org_id
組織を識別するユニークな 16 進数の文字列。
cl_role
クラスターのロールを定義する人間が判読できるラベル。
cl_name
クラスターを識別する人間が判読できるラベル。
rs_nm
レプリカセットを識別する人間が判読できるラベル。
rs_state
process_port
プロセスが実行されるポート。

mongodb_info は常に1の値を持つゲージです。 このメトリクスには、すべてのMongoDB メトリクス ラベルと、次のラベルが含まれます。

ラベル
説明
mongodb_version
メジャー、マイナー、およびパッチのバージョンを表す文字列。
replica_state_name
process_type
実行中のプロセスを示す文字列。その値は、mongodmongos、または config です。

注意

Prometheus 式ブラウザで各ハードウェア メトリクスの説明を表示することもできます。

名前
オペレーティング システム
タイプ
説明
hardware_system_cpu_nice
Unix, Darwin
カウンター
優先順位の低いユーザー モードで費やされた時間。
hardware_system_cpu_io_wait
Unix
カウンター
I/O の完了を待機している時間。
hardware_system_cpu_irq
Unix
カウンター
割り込みの処理に費やされた時間。
hardware_system_cpu_soft_irq
Unix
カウンター
ソフトリンクの処理に費やされた時間。
hardware_system_cpu_steal
Unix
カウンター
仮想環境で実行中に他のオペレーティング システムで費やされた時間。
hardware_system_cpu_guest
Unix
カウンター
Linux カーネルの制御下にあるゲスト オペレーティング システムの仮想 CPU の実行中に費やされた時間。
hardware_system_cpu_guest_nice
Unix
カウンター
調整された快適さでゲスト モードを実行するのに費やした時間。
hardware_system_cpu_kernel_milliseconds
すべて
カウンター
システム モードで費やした時間。
hardware_system_cpu_user_milliseconds
すべて
カウンター
ユーザー モードで費やした時間。
hardware_disk_metrics_weighted_time_io
Unix
カウンター
I/O の実行に費やした時間の重み付け。
hardware_disk_metrics_physical_write_count
Unix
カウンター
処理された物理書込み I/O の数。
hardware_disk_metrics_physical_read_count
Unix
カウンター
処理された物理読み取り I/O の数。
hardware_disk_metrics_total_time
Unix
カウンター
このブロックの仕掛けがアクティブになっている合計時間。
hardware_disk_metrics_idle_time
Windows
カウンター
アイドル タスクに費やされた時間。
hardware_disk_metrics_disk_space_free_bytes
すべて
ゲージ
マウントされたファイル システムで使用可能なディスク容量。
hardware_disk_metrics_disk_space_used_bytes
すべて
ゲージ
マウントされたファイル システムで使用されたディスク領域。
hardware_disk_metrics_read_count
すべて
カウンター
処理された読み取り I/O の数。
hardware_disk_metrics_read_time_milliseconds
すべて
カウンター
読み取り要求の合計待機時間。
hardware_disk_metrics_write_count
すべて
カウンター
処理された書込み I/O の数。
hardware_disk_metrics_write_time_milliseconds
すべて
カウンター
書込みリクエストの合計待機時間。
hardware_process_cpu_children_user
Unix
カウンター
このプロセスが子を待機するためにユーザー モードでスケジュールされた時間。
hardware_process_cpu_children_kernel
Unix
カウンター
このプロセスが子を待つためにカーネル モードでスケジュールされた時間。
hardware_process_cpu_kernel_milliseconds
すべて
カウンター
このプロセスがカーネルモードでスケジュールされた時間。
hardware_process_cpu_user_milliseconds
すべて
カウンター
このプロセスがユーザー モードでスケジュールされた時間。
hardware_system_vm_page_swap_in
Unix
カウンター
システムがディスクからスワップ インしたページ数。
hardware_system_vm_page_swap_out
Unix
カウンター
システムがディスクにスワップ アウトしたページ数。
hardware_system_memory_mem_total
Unix
ゲージ
使用可能な RAM の合計(物理 RAM からいくつかの予約ビットとカーネル バイナリ コードを差し引いたもの)。
hardware_system_memory_mem_free
Unix
ゲージ
LowFreeHighFreeの合計。
hardware_system_memory_mem_available
Unix
ゲージ
スワップなしで新しいアプリケーションを起動するために使用できるメモリ量の推定値。
hardware_system_memory_buffers
Unix
ゲージ
極端に大きくなることのない未加工ディスク ブロックの一時ストレージ。
hardware_system_memory_cached
Unix
ゲージ
ディスクから読み取られたファイルのインメモリ キャッシュ。これには SwapCached は含まれません。
hardware_system_memory_swap_total
Unix
ゲージ
使用可能なスワップ領域の合計量。
hardware_system_memory_swap_free
Unix
ゲージ
未使用のスワップ領域の合計量。
hardware_system_memory_shared_mem
Unix
ゲージ
コンテンツが仮想メモリに存在するファイルシステムで消費されるメモリ量。
hardware_system_memory_swap_free_kilobytes
すべて
ゲージ
未使用のスワップ領域の合計量。
hardware_system_memory_swap_total_kilobytes
すべて
ゲージ
使用可能なスワップ領域の合計量。
hardware_platform_num_logical_cpus
すべて
ゲージ
現在のプロセスで使用可能な論理 CPU の数。
hardware_system_network_eth0_bytes_in_bytes
すべて
カウンター
インターフェースが受信したデータのバイト数。
hardware_system_network_eth0_bytes_out_bytes
すべて
カウンター
インターフェースによって送信されたデータのバイト数。
hardware_system_network_lo_bytes_in_bytes
すべて
カウンター
インターフェースが受信したデータのバイト数。
hardware_system_network_lo_bytes_out_bytes
すべて
カウンター
インターフェースによって送信されたデータのバイト数。

各ハードウェア メトリクスには次のラベルが含まれています。

ラベル
説明
group_id
プロジェクトを識別するユニークな 16 進数の文字列。
org_id
組織を識別するユニークな 16 進数の文字列。
process_port
プロセスが実行されるポート。
disk_name
ディスクを識別する人間が判読できるラベル。

戻る

PagerDuty との統合