第3章 3scale のモニタリング
Prometheus は、履歴データを保存し、大型でスケーラブルなシステムを監視するために構築されたコンテナーネイティブなソフトウェアです。現在実行中のセッションだけでなく、長時間にわたってデータを収集します。Prometheus のアラートルールは、Alertmanager によって管理されます。
Prometheus および Alertmanager を使用して、3scale データ監視および保存します。これにより、Grafana などのグラフィカルツールを使用して、データを視覚化し、クエリーを実行することができます。
Prometheus はオープンソースのシステム監視ツールキットで、Grafana はオープンソースのダッシュボードツールキットです。Prometheus および Grafana に対する Red Hat のサポートは、Red Hat の製品ドキュメントに記載されている推奨設定に限定されます。
3scale operator では、既存の Prometheus および Grafana operator のインストールを使用して、3scale の使用状況およびリソースを監視することができます。
- 3scale operator は監視リソースを作成しますが、これらのリソースの変更は妨げません。
- 3scale Operator と Prometheus Operator を同じ namespace にインストールするか、クラスター全体の Operator を使用する必要があります。
前提条件
- 3scale operator がインストールされている。
Prometheus operator がクラスターにインストールされている。Prometheus operator は、Prometheus インスタンスを作成および管理します。3scale の監視に必要な
Prometheus
カスタムリソース定義を提供します。以下の Prometheus operator およびイメージバージョンは、3scale でテストされています。
-
Prometheus Operator
v0.37.0
-
Prometheus イメージ:
quay.io/prometheus/prometheus:v2.16.0
-
Prometheus Operator
Grafana operator がクラスターにインストールされている。Grafana operator は、Grafana インスタンスを作成および管理します。これは、3scale の監視に必要な
GrafanaDashboard
カスタムリソース定義を提供します。以下の Grafana operator およびイメージバージョンは、3scale でテストされています。
-
Grafana operator
v3.9.0
-
Grafana イメージ:
registry.hub.docker.com/grafana/grafana:7.1.1
-
Grafana operator
クラスターがインターネット上で公開される場合は、必ず Prometheus サービスおよび Grafana サービスを保護するようにしてください。
本セクションでは、Grafana ダッシュボードを表示できるように、3scale インスタンスのモニタリングを有効にする方法を説明します。
3.1. 3scale のモニタリングの有効化
3scale を監視するには、APIManager カスタムリソースを設定して監視を有効にする必要があります。
手順
3scale を設定し、3scale デプロイメント YAML の
spec.monitoring.enabled
パラメーターをtrue
に設定して監視を有効にします。以下に例を示します。3scale-monitoring.yml
という名前の APIManager カスタムリソースを作成し、監視を有効にします。apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: apimanager1 spec: wildcardDomain: example.com monitoring: enabled: true enablePrometheusRules: false 1
- 1
- オプションで
PrometheusRules
を無効にできます。それ以外の場合は、デフォルトで有効になります。
OpenShift クラスターにログインします。3scale の OpenShift プロジェクトのクラスター 編集 ロールを持つユーザーとしてログインする必要があります (例:
cluster-admin
)。oc login
3scale プロジェクトに切り替えます。
oc project <project_name>
カスタムリソースをデプロイします。
$ oc apply -f 3scale-monitoring.yml