第3章 3scale API Management モニタリングの有効化
Prometheus および Grafana Operator を使用して、Red Hat 3scale API Management モニタリングを有効化できます。Prometheus は、アプリケーションとインフラストラクチャーからメトリクスをリアルタイムで収集および分析するように設計されたオープンソースのモニタリングおよびアラートツールです。Grafana は、カスタマイズ可能なダッシュボードでさまざまなソースからのリアルタイムデータを表示および監視するために使用されるオープンソースの分析および視覚化プラットフォームです。
OpenShift 4.16 以降では Grafana 4 が非推奨となり、手順は 2 つのセクションに分かれました。
- OpenShift 4.15 以前の場合。
- OpenShift 4.16 以降の場合。
- Grafana 5 は OpenShift 4.14 以降で利用可能であり、3scale 2.15 Operator によってサポートされています。可能な場合は Grafana 5 を使用することを推奨します。
- Prometheus および Grafana に対する Red Hat のサポートは、Red Hat の製品ドキュメントに記載されている推奨設定に限定されます。
- 3scale Operator は監視リソースを作成しますが、これらのリソースの変更は妨げません。
- 3scale Operator と Prometheus Operator を同じ namespace にインストールするか、クラスター全体の Operator を使用する必要があります。
Grafana 4 から Grafana 5 に移行する手順も説明します。
前提条件
- 3scale Operator がインストールされている。
Prometheus Operator は OperatorHub からインストールされます。Prometheus Operator を使用して、Prometheus インスタンスを作成および管理できます。3scale の監視に必要な
Prometheusカスタムリソース定義 (CRD) を提供します。OpenShift Container Platform (OCP) のバージョンに応じて、次の Prometheus Operator バージョンが 3scale と互換性があります。
- OCP 4.15 以前を搭載した最新の Prometheus コミュニティー Operator。
- OCP 4.16 以降を搭載した最新の Prometheus コミュニティー Operator。
Grafana Operator は OperatorHub からインストールされます。Grafana Operator を使用して、Grafana インスタンスを作成および管理できます。3scale モニタリングに必要な
GrafanaDashboardCRD を提供します。OCP のバージョンに応じて、次の Grafana Operator バージョンが 3scale と互換性があります。
- OCP 4.15 以前を搭載した Grafana コミュニティー Operator 4。
- OCP 4.16 以降を搭載した Grafana コミュニティー Operator 5。
クラスターがインターネット上で公開される場合は、必ず Prometheus サービスおよび Grafana サービスを保護するようにしてください。
このセクションでは、Grafana ダッシュボードを表示できるように、3scale インスタンスのモニタリングを有効にする方法を説明します。
3.1. Grafana 4 と Prometheus を OCP 4.15 に設定する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform (OCP) 4.15 までのバージョンで Grafana と Prometheus を設定します。このガイドでは、3scale 環境を監視するためのこれらのツールのセットアップ方法を説明し、リアルタイムのインサイトの取得とデータの視覚化を実現します。
手順
OperatorHub から Grafana 4 コミュニティー Operator をインストールします。
- OpenShift 管理者の認証情報を使用して、OpenShift Container Platform (OCP) にログインします。
Grafana コミュニティー Operator をインストールするプロジェクトを Project リストから選択します。
重要3scale Operator をインストールしたのと同じプロジェクトに Grafana コミュニティー Operator をインストールします。
- Operators > OperatorHub に移動します。
- "grafana" を検索し、Grafana Operator をクリックします。
Grafana Community Operator ページで Install をクリックします。Create Operator Subscription ページが表示されます。Grafana Operator のサブスクリプションを作成するには、次の手順を実行します。
- A specific namespace on the cluster をクリックし、Grafana コミュニティー Operator をインストールするプロジェクトを選択します。
- Subscribe をクリックします。
- Approve をクリックします。
OperatorHub から最新の Prometheus コミュニティー Operator をインストールします。
- OpenShift 管理者の認証情報を使用して、OpenShift Container Platform (OCP) にログインします。
Prometheus コミュニティー Operator をインストールするプロジェクトを Project リストから選択します。
重要3scale Operator をインストールしたのと同じプロジェクトに Prometheus コミュニティー Operator をインストールします。
- Operators > OperatorHub に移動します。
- "prometheus" を検索し、Prometheus Operator をクリックします。
Prometheus Community Operator ページで Install をクリックします。Create Operator Subscription ページが表示されます。Prometheus Operator のサブスクリプションを作成するには、次の手順を実行します。
- A specific namespace on the cluster をクリックし、Prometheus Operator をインストールするプロジェクトを選択します。
- Subscribe をクリックします。
- Approve をクリックします。
3scale デプロイメント YAML の
spec.monitoring.enabledパラメーターをtrueに設定して、モニタリングを有効にします。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift クラスターにログインします。3scale の OpenShift プロジェクトのクラスター 編集 ロールを持つユーザーとしてログインする必要があります (例:
cluster-admin)。oc login
$ oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale プロジェクトに切り替えます。
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Prometheus の新しいサービスアカウントを作成します。
oc create serviceaccount prometheus-monitoring
$ oc create serviceaccount prometheus-monitoringCopy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterRoleBinding を作成して、メトリクスをスクレイピングするために必要なロールベースのアクセス制御 (RBAC) 権限を Prometheus ServiceAccount に付与します。ClusterRoleBinding を作成する前に、ServiceAccount namespace を更新します。
oc adm policy add-cluster-role-to-user cluster-monitoring-view -z prometheus-monitoring -n "<3scale_namespace>
$ oc adm policy add-cluster-role-to-user cluster-monitoring-view -z prometheus-monitoring -n "<3scale_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow prometheus-monitoringServiceAccount のトークンを作成します。oc create token prometheus-monitoring
$ oc create token prometheus-monitoringCopy to Clipboard Copied! Toggle word wrap Toggle overflow このトークンの有効期限が切れると、Prometheus は必要なリソースにアクセスできなくなります。トークンの有効期間を指定するには、
--duration X[s|m|h]を追加します。-
生成したトークンを使用して、ファイル 3scale-scrape-configs.yaml の
bearer_tokenフィールドを更新します。 additional-scrape-config シークレットを作成します。
oc create secret generic additional-scrape-configs --from-file=3scale-scrape-configs.yaml=./3scale-scrape-configs.yaml
$ oc create secret generic additional-scrape-configs --from-file=3scale-scrape-configs.yaml=./3scale-scrape-configs.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Prometheus をデプロイします。
Prometheus.yaml ファイルで、
spec.externalUrlフィールドに外部 URL を入力します。URL テンプレートは次のようになります。spec: ... externalUrl: https://prometheus.<namespace-name>.apps.<cluster-domain>
spec: ... externalUrl: https://prometheus.<namespace-name>.apps.<cluster-domain>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Prometheus サーバーをデプロイします。
oc apply -f prometheus.yaml
$ oc apply -f prometheus.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Prometheus ルートを作成します。
oc expose service prometheus-operated --hostname prometheus.<namespace-name>.apps.<cluster-name>
$ oc expose service prometheus-operated --hostname prometheus.<namespace-name>.apps.<cluster-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Grafana データソースをデプロイします。
oc apply -f datasource-v4.yaml
$ oc apply -f datasource-v4.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Grafana のデプロイメント
oc apply -f grafana-v4.yaml
$ oc apply -f grafana-v4.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報