2.2. コマンドラインインターフェイスからの可観測性の有効化
MultiClusterObservability カスタムリソースを作成して可観測性サービスを有効にします。可観測性を有効にする前に、可観測性 Pod の容量要求 を参照してください。
注記:
-
Red Hat Advanced Cluster Management が管理する OpenShift Container Platform マネージドクラスターで可観測性を有効または無効にすると、可観測性エンドポイント Operator は、ローカル Prometheus を自動的に再起動する
alertmanager設定を追加してcluster-monitoring-configConfigMap を更新します。 -
可観測性エンドポイント Operator は、ローカル Prometheus を自動的に再起動する
アラートマネージャー設定を別途追加して、cluster-monitoring-configconfig map を更新します。したがって、OpenShift Container Platform マネージドクラスターにalertmanager設定を挿入すると、Prometheus メトリクスの保持に関連する設定が削除されます。
可観測性サービスを有効にするには、以下の手順を実行します。
- Red Hat Advanced Cluster Management ハブクラスターにログインします。
以下のコマンドを使用して可観測性サービスの namespace を作成します。
oc create namespace open-cluster-management-observability
oc create namespace open-cluster-management-observabilityCopy to Clipboard Copied! Toggle word wrap Toggle overflow プルシークレットを生成します。Red Hat Advanced Cluster Management が
open-cluster-managementnamespace に インストールされている場合は、以下のコマンドを実行します。DOCKER_CONFIG_JSON=`oc extract secret/multiclusterhub-operator-pull-secret -n open-cluster-management --to=-`
DOCKER_CONFIG_JSON=`oc extract secret/multiclusterhub-operator-pull-secret -n open-cluster-management --to=-`Copy to Clipboard Copied! Toggle word wrap Toggle overflow multiclusterhub-operator-pull-secretが namespace に定義されていない場合には、pull-secretをopenshift-confignamespace からopen-cluster-management-observabilitynamespace にコピーします。以下のコマンドを実行します。DOCKER_CONFIG_JSON=`oc extract secret/pull-secret -n openshift-config --to=-`
DOCKER_CONFIG_JSON=`oc extract secret/pull-secret -n openshift-config --to=-`Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次に
open-cluster-management-observabilitynamespace でプルリクエストを作成して、以下のコマンドを実行します。oc create secret generic multiclusterhub-operator-pull-secret \ -n open-cluster-management-observability \ --from-literal=.dockerconfigjson="$DOCKER_CONFIG_JSON" \ --type=kubernetes.io/dockerconfigjsonoc create secret generic multiclusterhub-operator-pull-secret \ -n open-cluster-management-observability \ --from-literal=.dockerconfigjson="$DOCKER_CONFIG_JSON" \ --type=kubernetes.io/dockerconfigjsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要: OpenShift Container Platform ドキュメントを使用してクラスターのグローバルプルシークレットを変更する場合は、必ず可観測性 namespace のグローバルプルシークレットも更新してください。詳細は グローバルプルシークレットの更新 を参照してください。
お使いのクラウドプロバイダーのオブジェクトストレージのシークレットを作成します。シークレットには、ストレージソリューションへの認証情報を追加する必要があります。たとえば、以下のコマンドを実行します。
oc create -f thanos-object-storage.yaml -n open-cluster-management-observability
oc create -f thanos-object-storage.yaml -n open-cluster-management-observabilityCopy to Clipboard Copied! Toggle word wrap Toggle overflow サポートされるオブジェクトストアのシークレットの例を以下に示します。
Amazon S3 または S3 と互換性のある場合、シークレットは以下のファイルのようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- プロトコルなしで URL を入力します。
s3.us-east-1.amazonaws.comの URL のような Amazon S3 エンドポイントの URL を入力します。
詳細は、Amazon Simple Storage Service ユーザーガイド を参照してください。
Google Cloud Platform の場合は、以下のファイルのようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、Google Cloud Storage とは を参照してください。
Azure の場合は、以下のファイルのようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
msi_resourceパスを使用する場合、エンドポイント認証はシステム割り当てのマネージド ID を使用して完了します。値はエンドポイントhttps://<storage-account-name>.blob.core.windows.netのようにする必要があります。
user_assigned_idパスを使用する場合は、ユーザー割り当てマネージド ID を使用してエンドポイント認証が完了します。user_assigned_idを使用する場合、msi_resourceエンドポイントのデフォルト値はhttps:<storage_account>.<endpoint>です。詳細は、Azure Storage のドキュメント を参照してください。注記: Azure を Red Hat OpenShift Container Platform クラスターのオブジェクトストレージとして使用する場合には、クラスターに関連付けられたストレージアカウントはサポートされません。新規ストレージアカウントを作成する必要があります。
Red Hat OpenShift Data Foundation では、シークレットは以下のファイルのようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- プロトコルなしで URL を入力します。次の URL のような Red Hat OpenShift Data Foundation エンドポイントの URL を入力します:
example.redhat.com:443。
詳細は、Red Hat OpenShift Data Foundation を参照してください。
Red Hat OpenShift on IBM (ROKS) では、シークレットは以下のファイルのようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- プロトコルなしで URL を入力します。次の URL のような Red Hat OpenShift Data Foundation エンドポイントの URL を入力します:
example.redhat.com:443。
詳細は、IBM Cloud のドキュメント Cloud Object Storage を参照してください。サービスの認証情報を使用してオブジェクトストレージに接続するようにしてください。詳細は、IBM Cloud のドキュメント、Cloud Object Store および Service Credentials を参照してください。
2.2.1. AWS Security Token Service のストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Amazon S3 または S3 と互換性のあるストレージの場合、AWS Security Token Service (AWS STS) で生成された短期間の限定特権認証情報を使用することもできます。詳細は、AWS Security Token Service ドキュメント を参照してください。
AWS Security Service を使用してアクセスキーを生成するには、次の追加の手順が必要です。
- S3 バケットへのアクセスを制限する IAM ポリシーを作成します。
- OpenShift Container Platform サービスアカウントの JWT トークンを生成するための信頼ポリシーを持つ IAM ロールを作成します。
- S3 バケットへのアクセスが必要な可観測性サービスアカウントのアノテーションを指定します。Red Hat OpenShift Service on AWS (ROSA) クラスターで可観測性を設定して AWS STS トークンを使用する方法の例は 環境の設定 ステップで確認できます。詳細は、Red Hat OpenShift Service on AWS (ROSA) を参照してください。また、STS トークンを使用するための要件とセットアップの詳細な説明については、ROSA with STS の説明 を参照してください。
2.2.2. AWS Security Service を使用したアクセスキーの生成 リンクのコピーリンクがクリップボードにコピーされました!
AWS Security Service を使用してアクセスキーを生成するには、次の手順を実行します。
AWS 環境をセットアップします。以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドで S3 バケットを作成します。
aws s3 mb s3://$S3_BUCKET
aws s3 mb s3://$S3_BUCKETCopy to Clipboard Copied! Toggle word wrap Toggle overflow S3 バケットにアクセスするための
s3-policyJSON ファイルを作成します。以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドでポリシーを適用します。
S3_POLICY=$(aws iam create-policy --policy-name $CLUSTER_NAME-acm-obs \ --policy-document file://$SCRATCH_DIR/s3-policy.json \ --query 'Policy.Arn' --output text) echo $S3_POLICY
S3_POLICY=$(aws iam create-policy --policy-name $CLUSTER_NAME-acm-obs \ --policy-document file://$SCRATCH_DIR/s3-policy.json \ --query 'Policy.Arn' --output text) echo $S3_POLICYCopy to Clipboard Copied! Toggle word wrap Toggle overflow TrustPolicyJSON ファイルを作成します。以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、AWS Prometheus と CloudWatch のロールを作成します。
S3_ROLE=$(aws iam create-role \ --role-name "$CLUSTER_NAME-acm-obs-s3" \ --assume-role-policy-document file://$SCRATCH_DIR/TrustPolicy.json \ --query "Role.Arn" --output text) echo $S3_ROLE
S3_ROLE=$(aws iam create-role \ --role-name "$CLUSTER_NAME-acm-obs-s3" \ --assume-role-policy-document file://$SCRATCH_DIR/TrustPolicy.json \ --query "Role.Arn" --output text) echo $S3_ROLECopy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーをロールにアタッチします。以下のコマンドを実行します。
aws iam attach-role-policy \ --role-name "$CLUSTER_NAME-acm-obs-s3" \ --policy-arn $S3_POLICY
aws iam attach-role-policy \ --role-name "$CLUSTER_NAME-acm-obs-s3" \ --policy-arn $S3_POLICYCopy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットは、次のファイルのようになる場合があります。
configセクションではsignature_version2: falseが指定されており、access_keyとsecret_keyは指定されていません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
MultiClusterObservability カスタムリソースの作成 セクションで説明されているように、
MultiClusterObservabilityカスタムリソースを使用するときに、サービスアカウントアノテーションを指定します。 以下のコマンドを使用して、クラウドプロバイダーの S3 アクセスキーおよびシークレットキーを取得できます。シークレットの
base64文字列のデコード、編集、エンコードが必要です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のデプロイメントとステートフルセットの Pod をチェックして、可観測性が有効になっていることを確認します。次の情報が表示される場合があります。
observability-thanos-query (deployment) observability-thanos-compact (statefulset) observability-thanos-receive-default (statefulset) observability-thanos-rule (statefulset) observability-thanos-store-shard-x (statefulsets)
observability-thanos-query (deployment) observability-thanos-compact (statefulset) observability-thanos-receive-default (statefulset) observability-thanos-rule (statefulset) observability-thanos-store-shard-x (statefulsets)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.3. MultiClusterObservability カスタムリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
MultiClusterObservability カスタムリソースを使用して、さまざまなコンポーネントの永続ボリュームのストレージサイズを指定します。MultiClusterObservability カスタムリソースの最初の作成時にストレージサイズを設定する必要があります。デプロイ後にストレージサイズ値を更新すると、ストレージクラスが動的ボリューム拡張をサポートしている場合にのみ変更が反映されます。詳細は、Red Hat OpenShift Container Platform ドキュメントの 永続ボリュームの拡張 を参照してください。
次の手順を実行して、ハブクラスターに MultiClusterObservability カスタムリソースを作成します。
multiclusterobservability_cr.yamlという名前のMultiClusterObservabilityカスタムリソースの YAML ファイルを作成します。可観測性については、以下のデフォルト YAML ファイルを確認してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow advancedセクションでretentionConfigパラメーターの値を変更する必要がある場合があります。詳細は、Thanos Downsampling resolution and retention を参照してください。マネージドクラスターの数によっては、ステートフルセットのストレージの量を更新する必要がある場合があります。S3 バケットが STS トークンを使用するように設定されている場合は、S3 ロールで STS を使用するようにサービスアカウントにアノテーションを付けます。次の設定を表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、可観測性 API を参照してください。
インフラストラクチャーマシンセットにデプロイするには、
MultiClusterObservabilityYAML のnodeSelectorを更新して、セットのラベルを設定する必要があります。YAML の内容は以下のようになります。nodeSelector: node-role.kubernetes.io/infra:nodeSelector: node-role.kubernetes.io/infra:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、インフラストラクチャーマシンセットの作成 を参照してください。
以下のコマンドを実行して可観測性 YAML をクラスターに適用します。
oc apply -f multiclusterobservability_cr.yaml
oc apply -f multiclusterobservability_cr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Thanos、Grafana および Alertmanager の
open-cluster-management-observabilitynamespace にすべての Pod が作成されます。Red Hat Advanced Cluster Management ハブクラスターに接続されたマネージドクラスターはすべて、メトリクスを Red Hat Advanced Cluster Management の可観測性サービスに送信できます。- Grafana ダッシュボードを起動して可観測性サービスが有効になっていることを検証し、データが入力されていることを確認します。
コンソールの 概要 ページまたは クラスター ページから、コンソールヘッダーの近くにある Grafana リンク をクリックします。
-
あるいは、次の URL を使用して OpenShift Container Platform 3.11 Grafana ダッシュボードにアクセスします:
https://$ACM_URL/grafana/dashboards。 - OpenShift Container Platform 3.11 ダッシュボードを表示するには、OCP 3.11 という名前のフォルダーを選択します。
-
あるいは、次の URL を使用して OpenShift Container Platform 3.11 Grafana ダッシュボードにアクセスします:
multicluster-observability-operatorデプロイメントにアクセスして、multicluster-observability-operatorPod がmulticlusterhub-operatorデプロイメントによってデプロイされていることを確認します。以下のコマンドを実行します。oc get deploy multicluster-observability-operator -n open-cluster-management --show-labels NAME READY UP-TO-DATE AVAILABLE AGE LABELS multicluster-observability-operator 1/1 1 1 35m installer.name=multiclusterhub,installer.namespace=open-cluster-management
oc get deploy multicluster-observability-operator -n open-cluster-management --show-labels NAME READY UP-TO-DATE AVAILABLE AGE LABELS multicluster-observability-operator 1/1 1 1 35m installer.name=multiclusterhub,installer.namespace=open-cluster-managementCopy to Clipboard Copied! Toggle word wrap Toggle overflow リソースに関連付けられているラベルについて
multicluster-observability-operatorデプロイメントのlabelsセクションを表示します。labelsセクションには次の詳細が含まれる場合があります。labels: installer.name: multiclusterhub installer.namespace: open-cluster-managementlabels: installer.name: multiclusterhub installer.namespace: open-cluster-managementCopy to Clipboard Copied! Toggle word wrap Toggle overflow
. .注記: 可観測性データを収集しないように特定のマネージドクラスターを除外するには、クラスターに observability: disabled クラスターラベルを追加します。
可観測性サービスを有効化します。可観測性サービスを有効にすると、次の機能が開始されます。
- マネージドクラスターからのアラートマネージャーはすべて、Red Hat Advanced Cluster Management ハブクラスターに転送されます。
Red Hat Advanced Cluster Management ハブクラスターに接続されたマネージドクラスターはすべて、アラートを Red Hat Advanced Cluster Management の可観測性サービスに送信できます。Red Hat Advanced Cluster Management Alertmanager を設定して、重複を排除してグループ化し、アラートをメール、PagerDuty、または OpsGenie などの適切なレシーバー統合にルーティングすることができます。アラートの通知解除や抑制にも対応できます。
注記: Red Hat Advanced Cluster Management ハブクラスター機能へのアラート転送は、Red Hat OpenShift Container Platform バージョン 4.12 以降のマネージドクラスターでのみサポートされます。可観測性を有効にして Red Hat Advanced Cluster Management をインストールすると、OpenShift Container Platform 4.12 以降のアラートは自動的にハブクラスターに転送されます。詳細は、送信アラート を参照してください。