SaltStack Config では、監視および診断に使用できるシステム メトリックが表示されます。このメトリックは、SaltStack Config のユーザー インターフェイス ダッシュボード上にグラフィカルに表示されるほか、/metrics
http エンドポイントを使用することにより機械可読形式でも利用できます。
このページでは、使用可能な各種メトリックについて説明します。また、SaltStack Config にサードパーティ製のツールを接続してメトリック データを取得する方法について説明します。SaltStack Config ユーザー インターフェイスで、ダッシュボードを使用してレポートを視覚的に表示する方法の詳細については、ダッシュボードを参照してください。
機械可読形式のメトリック
SaltStack Config は、システム メトリックを OpenMetrics テキスト ベース形式でエクスポートします。この形式は、Prometheus などの監視ツールやアラート ツールで、そのままの形で利用できます。詳細については、SaltStack Config に接続するための Prometheus の構成を参照してください。
SaltStack Config メトリックの構成
システム メトリックを収集するには、/etc/raas/raas
構成ファイルの次の設定項目を構成します。表示されているのは、デフォルト値です。
# System metrics settings metrics: enabled: true # If True, enable the collection of system metrics prometheus: false # If True, enable the Prometheus endpoint at /metrics prometheus_username: # Static username for retrieving /metrics prometheus_password: # Static password for retrieving /metrics snapshot_interval: 60 # How often to record snapshot metrics, in seconds max_query_timedelta: 86400 # Maximum timedelta for a single call to get_system_metrics, in seconds keep: 30 # How long to retain metrics data, in days
次の設定により、機械可読形式のシステム メトリックの処理を制御することができます。
- メトリックの収集を無効にするには、
enabled:false
と設定します。この設定により、SaltStack Config 組み込みダッシュボードも無効になることに注意してください。 - 機械可読形式のメトリックを
/metrics
http エンドポイントからエクスポートできるようにするには、prometheus:true
と設定します。この設定は、SaltStack Config 組み込みダッシュボードに影響を与えません。 /metrics
http エンドポイントへのアクセスは、prometheus_username
およびprometheus_password
で設定された認証情報を使用する http ベーシック認証によって制御されます。/metrics
エンドポイントを有効にするには、これらの設定に空ではない値が必要です。設定した認証情報は/etc/raas/raas
構成ファイルにのみ保存され、SaltStack Config アカウントには関連付けられません。また、/metrics
http エンドポイントにアクセスする場合を除き、SaltStack Config の認証には使用できません。
前記のその他の設定は、SaltStack Config 組み込みダッシュボードに関連するもので、機械可読形式のシステム メトリックの収集やレポート作成への影響はありません。特に、snapshot_interval
の設定は、ダッシュボードに表示するメトリックの記録頻度を秒単位で指定します。また、keep
の設定は、メトリック データがデータベースに保存されてから削除されるまでの期間を日数単位で指定します。
SaltStack Config から機械可読形式のメトリック データを収集する方法としては、/metrics
http エンドポイントの使用が推奨されますが、API (RaaS) の使用によっても、組み込みダッシュボードに表示するデータを取得できます。stats.get_system_metrics()
API 呼び出しでは、メトリック名、送信元、および日付範囲によってメトリック データをクエリできます。設定項目の max_query_timedelta
では、1 回の API 呼び出しで SaltStack Config が返すデータ量を制限できます。より長い期間からメトリック データを取得するには、開始日と終了日が異なる複数の API 呼び出しを行います。
Salt マスターのメトリック構成
一部のメトリックでは、SaltStack Config に接続されている Salt マスターの構成によって可用性が異なります。
- Salt のイベントおよびジョブの戻り値に関するメトリックは、Salt マスターに
sseapi
リターナが設定されている場合にのみ正確なものになります。メトリックの収集は、sse_pgjsonb
(データベースに直接戻す)リターナでは、正しく動作しません。 - SaltStack Config は、構成の中で
master_stats:true
が設定された Salt マスターから低レベルの関数ランタイム情報を収集します。このオプションはデフォルトで無効になっています。詳細については、Salt ドキュメントのmaster_statsを参照してください。
- Salt のジョブの状態に関するメトリックは、Salt マスター プラグインでジョブ完了のエンジンが有効になっている場合にのみ正確なものになります。
engines: -jobcompletion:{}
このエンジンは、Salt マスター プラグインのデフォルト構成で有効になっています。
SaltStack Config に接続するための Prometheus の構成
Prometheus サーバが SaltStack Config からメトリックをスクレイピングできるようにするには、ユーザーの各 API (RaaS) サーバ インスタンスに対する Prometheus 構成(通常は prometheus.yml
)に scrape_configs
ジョブを追加します。
scrape_configs: - job_name: 'sse' metrics_path: '/metrics' scheme: 'http' static_configs: - targets: ['localhost:8080'] basic_auth: username: prometheus password: metrics
上記のように、Prometheus 構成の認証情報は、/etc/raas/raas
構成ファイルで指定した prometheus_username
および prometheus_password
と一致する必要があります。
ターゲットをスクレイピングするための設定などの、Prometheus 構成に関するトピックの詳細については、Prometheus プロジェクトのドキュメントを参照してください。
メトリックについて
SaltStack Config がエクスポートする機械可読形式のメトリックは、次のカテゴリに分類されます。
カテゴリ | メトリック名 | メトリック タイプ | ラベル | 説明 |
---|---|---|---|---|
Salt マスターの低レベルのメトリック | salt_event_size_bytes |
ヒストグラム | master_id |
Salt イベントのサイズ(バイト単位) |
salt_master_cmd_duration_seconds |
ヒストグラム | master_id , cmd |
Salt マスター コマンドの実行時間(秒単位)。Salt マスターで master_stats が設定されている場合にのみ報告されます。 |
|
Salt マスター プラグインのメトリック | raas_master_commands_processed |
カウンタ | master_id |
処理された SSE コマンドの数 |
raas_master_master_grains_pushed |
カウンタ | master_id |
SaltStack Config にプッシュされた Salt マスター グレインの更新の数 | |
raas_master_minion_keys_pushed |
カウンタ | master_id |
SaltStack Config にプッシュされたミニオン キー状態更新の数 | |
raas_master_minion_cached_pushed |
カウンタ | master_id |
SaltStack Config にプッシュされたミニオン キャッシュ更新の数 | |
raas_master_masterfs_pushed |
カウンタ | master_id |
SaltStack Config にプッシュされた MasterFS 更新の数 | |
raas_master_sseapi_engine_iteration_seconds |
ヒストグラム | master_id |
API (RaaS) エンジンの反復間隔(秒単位) | |
サーバ メトリック | redis_commands_executed |
カウンタ | redis_instance |
実行された Redis コマンドの数(システム キャッシュ) |
redis_memory_bytes |
ゲージ | redis_instance |
Redis メモリ使用量(システム キャッシュ) | |
celery_tasks_queued |
カウンタ | raas_instance , task |
キューに入っている Celery タスクの数(バックグラウンド ジョブ) | |
celery_tasks_executed |
カウンタ | raas_instance , task |
実行された Celery タスクの数(バックグラウンド ジョブ) | |
celery_queue_length |
ゲージ | raas_instance |
Celery キューの長さ(待機しているバックグラウンド ジョブ) | |
raas_rpc_request_duration_seconds |
ヒストグラム | raas_instance |
SSE RPC API 呼び出し時間(秒単位) | |
PostgreSQL メトリック | postgres_connections |
ゲージ | postgres_instance |
Postgres 接続 |
postgres_transactions |
カウンタ | postgres_instance |
コミットされた Postgres トランザクションの数 | |
postgres_rows_read |
カウンタ | postgres_instance |
読み取られた Postgres 行の数 | |
postgres_rows_inserted |
カウンタ | postgres_instance |
挿入された Postgres 行の数 | |
postgres_rows_updated |
カウンタ | postgres_instance |
更新された Postgres 行の数 | |
postgres_rows_deleted |
カウンタ | postgres_instance |
削除された Postgres 行の数 | |
システム メトリック | sse_jobs_in_progress |
カウンタ | なし | 進行中の SaltStack Config ジョブの数 |
sse_jobs_complete_all_successful |
カウンタ | なし | すべての戻り値が正常な状態で終了した SaltStack Config ジョブの数 | |
sse_jobs_complete_missing_returns |
カウンタ | なし | 1 つ以上の戻り値が見つからない状態で終了した SaltStack Config ジョブの数 | |
sse_jobs_complete_with_errors |
カウンタ | なし | 1 つ以上のエラーが発生した状態で終了した SaltStack Config ジョブの数 | |
sse_masters |
ゲージ | なし | SaltStack Config にある Salt マスターの総数 | |
sse_minions |
ゲージ | なし | SaltStack Config にあるミニオンの総数 | |
sse_minions_present |
ゲージ | master_id |
raas_presence_expiration で設定された制限時間内にプレゼンスが確認されたミニオンの数 |
|
sse_minions_lost |
ゲージ | master_id |
制限時間内にプレゼンスが確認されなかったミニオンの数 | |
sse_minions_unknown |
ゲージ | master_id |
不明なミニオンの数(プレゼンスが確認されない) | |
sse_users_authenticated |
ゲージ | なし | SaltStack Config に認証されたユーザーの数 |