Managed Service for Prometheusが提供する定義済みのダッシュボードで、ACKサーバーレスクラスターのメトリックを表示できます。 このトピックでは、Managed Service for Prometheus for ACKサーバーレスクラスターを有効にする方法、Managed Service for Prometheusでアラートルールを設定する方法、Managed Service for Prometheusでカスタムメトリクスを作成する方法、Grafanaを使用してカスタムメトリクスを表示する方法について説明します。
Introduction to Managed Service for Prometheus
Managed Service for Prometheusは、オープンソースのPrometheusエコシステムと連動する完全マネージド型モニタリングサービスです。 Managed Service for Prometheusは、さまざまなコンポーネントを監視し、複数の定義済みダッシュボードを提供します。
クラスターのタイプ | サポートされているプロメテウス剤 |
ACK Serverless Proクラスター | マネージドまたはアンマネージドのPrometheusエージェントをインストールできます。 デフォルトでは、マネージドPrometheusエージェントがインストールされます。
|
ACK Serverless Basicクラスター | アンマネージドPrometheusエージェントのみをインストールできます。 アンマネージドPrometheusエージェントがデプロイされているポッドには、3つのCPUコアと4 GBのメモリが必要です。 収集されたデータのデフォルトの保存期間は7日です。 |
Managed Service for Prometheusは、管理されたPrometheusモニタリングシステムを提供します。これにより、データストレージ、データ表示、システムメンテナンスなどの基盤となるサービスを管理する手間を省きます。 Prometheus向けマネージドサービスの詳細については、「Prometheus向けマネージドサービスの概要」をご参照ください。
手順1: Prometheusのマネージドサービスの有効化
クラスター作成時にPrometheusのマネージドサービスを有効にする
[コンポーネント設定] ウィザードページで、[Prometheusのマネージドサービスの有効化] を選択します。 詳細については、「ACKサーバーレスクラスターの作成」をご参照ください。
デフォルトでは、クラスターの作成時にEnable Managed Service for Prometheusが選択されています。 クラスターの作成後、システムは自動的にManaged Service for Prometheusを設定します。
管理対象のPrometheusエージェントがクラスターに自動的にインストールされます。 アンマネージドPrometheusエージェントを使用する場合は、クラスターの詳細ページに移動し、左側のナビゲーションウィンドウで [操作]> [アドオン] を選択します。 アドオンページで、ack-arms-prometheus
をアンインストールします。 次に、ack-arms-prometheusのアンマネージドバージョンが表示され、インストールに使用できます。
ack-arms-prometheusが表示されない場合、ACKサーバーレスクラスターがデプロイされているリージョンでは、マネージドサービスfor Prometheusがサポートされていないことを意味します。
既存のクラスターに対するPrometheusのマネージドサービスの有効化
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
Prometheusモニタリングページで、画面の指示に従って必要なコンポーネントをインストールし、関連するダッシュボードを確認します。
システムは自動的にコンポーネントをインストールし、ダッシュボードをチェックします。 インストールが完了したら、各タブをクリックしてメトリクスを表示できます。
ステップ2: マネージドサービスfor Prometheusが提供するGrafanaダッシュボードを表示する
ACKコンソールの [Prometheusモニタリング] ページで、異なるGrafanaダッシュボードをクリックして、異なるモニタリングデータを表示できます。
手順3: (オプション) PrometheusのManaged Serviceでアラートルールを設定する
Managed Service for Prometheusを使用すると、ジョブを監視するためのアラートルールを作成できます。 アラートルールが満たされると、リアルタイムでメール、テキストメッセージ、DingTalk通知でアラートを受信できます。 これにより、プロアクティブな方法でエラーを検出できます。 アラートルールが満たされると、指定した連絡先グループに通知が送信されます。 連絡先グループを作成する前に、連絡先を作成する必要があります。 連絡先を作成するときは、連絡先の携帯電話番号と電子メールアドレスを指定して通知を受け取ることができます。 アラート通知を自動的に送信するために使用されるDingTalkチャットボットwebhook URLを提供することもできます。
1: 連絡先の作成
最初に
Prometheusコンソールのマネージドサービス。 [Managed Service for Prometheus] ページの左上隅で、クラスターがデプロイされているリージョンを選択します。左側のナビゲーションウィンドウで、[アラート管理]> [通知オブジェクト] を選択します。
On the連絡先タブをクリックします。連絡先の作成.
画面の指示に従って、連絡先情報を指定します。
詳細については、「連絡先」をご参照ください。
2: アラートルールの設定
最初に
Prometheusのマネージドサービスコンソール。 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。表示されるページの上部で、クラスターがデプロイされているリージョンを選択します。 クラスターで使用されているPrometheusインスタンスの名前をクリックして、インスタンスの詳細ページに移動します。
インスタンス詳細ページの左側のナビゲーションウィンドウで、[アラートルール] をクリックします。 [Prometheusアラートルール] ページで、アラートルールを選択し、[操作] 列の [編集] をクリックしてアラートルールを変更します。 ルールを変更した後、[保存] をクリックして、メトリックのアラートルールをすばやく作成します。
詳細については、「Prometheusインスタンスのアラートルールの作成 (新しいコンソールバージョンの場合) 」または「アラートルールの作成 (古いコンソールバージョンの場合) 」をご参照ください。
ステップ4: カスタムメトリクスを作成し、Grafanaを使用してメトリクスを表示する
注釈を追加してカスタムメトリックを作成し、デフォルトのサービス検出機能を使用してメトリックを収集できます。 または、ServiceMonitorsを使用してカスタムメトリックを作成し、Serviceラベルを使用してメトリックを収集することもできます。
ポッド注釈
配置のテンプレートに注釈を追加して、カスタムメトリックを定義できます。 Managed Service for Prometheusは、デフォルトのサービス検出機能を使用して、ポッドからカスタムメトリックを自動的に収集します。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、クラスターの名前をクリックします。 クラスターの詳細ページの左側のナビゲーションウィンドウで、[ワークロード]> [デプロイ] を選択します。 画面上の指示に従ってワークロードを作成します。
次の例は、配置のパラメーターを設定する方法を示しています。 詳細については、「イメージからステートレスアプリケーションを作成する」をご参照ください。
[クラスター] ページで、クラスターの名前をクリックします。 クラスターの詳細ページの左側のナビゲーションウィンドウで、[ワークロード]> [デプロイ] を選択します。
[デプロイメント] ページで、[イメージから作成] をクリックします。 [基本情報] ウィザードページで、アプリケーションの基本情報を指定し、[次へ] をクリックします。
[コンテナー] ウィザードページで、コンテナーイメージと必要なリソースを指定し、webアプリケーションを作成してポート5000を公開し、[次へ] をクリックします。
Name: この例では、
yejianhonghong/pindex:latest
が指定されています。ポート: この例では、ポート名は
web
、ポート番号は5000
、プロトコルはTCP
に設定されています。
[詳細] ページで、サービスを作成し、ポッドの注釈を追加します。
サービスを作成します。
[サービス] セクションで、[作成] をクリックし、サービスを設定します。
サービスの作成方法の詳細については、「サービスの作成」をご参照ください。
パラメーター
説明
Name
custom-metrics-pindex
などのカスタム名を指定できます。サービスタイプ
Server Load Balancerとパブリックアクセスを選択します。
ポートマッピング
[名前] 、[サービスポート] 、[コンテナポート] フィールドを設定します。 たとえば、Nameを
web
、Service Portを5000
、Container Portを5000
に設定します。[ポッド注釈] セクションで、[追加] をクリックして、次のポッド注釈を追加します。
prometheus.io/scrap
アノテーションを追加し、値をtrue
に設定します。 これにより、Managed Service for Prometheusはメトリックをスクレイピングできます。prometheus.io/port
アノテーションを追加し、値を5000
に設定します。 これは、エンドポイントポート5000
がマネージドサービスfor Prometheusによってスクレイピングされることを指定します。prometheus.io/path
アノテーションを追加し、値を/access
に設定します。 これは、エンドポイントパス/アクセス
がPrometheusのManaged Serviceによってスクレイピングされることを指定します。
[作成] をクリックしてアプリケーションを作成します。
カスタムメトリックを設定します。
最初に
Prometheusコンソールのマネージドサービス。[インスタンス] ページの上部で、クラスターがデプロイされているリージョンを選択します。 クラスターで使用されているPrometheusインスタンスの名前をクリックして、インスタンスの詳細ページに移動します。
インスタンスの詳細ページの左側のナビゲーションウィンドウで、[サービスの検出] をクリックします。 次に、[設定] タブをクリックし、ServiceMonitorとPodMonitorの設定を追加して、Prometheusメトリック収集ルールを定義します。
カスタムメトリクスの設定方法の詳細については、「ACKサービスの検出」をご参照ください。
上記の操作が完了したら、[ターゲット] タブをクリックして、カスタムメトリックが設定されているかどうかを確認します。
サービスラベル
ServiceMonitorsを使用してカスタムメトリックを作成するには、ポッド注釈を追加する代わりに、サービスラベルを追加する必要があります。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、クラスターの名前をクリックします。 クラスターの詳細ページの左側のナビゲーションウィンドウで、[ワークロード]> [デプロイ] を選択します。 画面上の指示に従ってワークロードを作成します。
次の例は、配置のパラメーターを設定する方法を示しています。 詳細については、「イメージからステートレスアプリケーションを作成する」をご参照ください。
[クラスター] ページで、クラスターの名前をクリックします。 クラスターの詳細ページの左側のナビゲーションウィンドウで、[ワークロード]> [デプロイ] を選択します。
[デプロイメント] ページで、[イメージから作成] をクリックします。 [基本情報] ウィザードページで、アプリケーションの基本情報を指定し、[次へ] をクリックします。
[コンテナー] ウィザードページで、コンテナーイメージと必要なリソースを指定し、webアプリケーションを作成してポート5000を公開し、[次へ] をクリックします。
Name: この例では、
yejianhonghong/pindex:latest
が指定されています。ポート: この例では、ポート名は
web
、ポート番号は5000
、プロトコルはTCP
に設定されています。
[詳細] ページで、[サービス] セクションの [作成] をクリックし、サービスを設定します。
サービスの作成方法の詳細については、「サービスの作成」をご参照ください。
パラメーター
説明
Name
custom-metrics-pindex
などのカスタム名を指定できます。サービスタイプ
Server Load Balancerとパブリックアクセスを選択します。
ポートマッピング
[名前] 、[サービスポート] 、[コンテナポート] フィールドを設定します。 たとえば、Nameを
web
、Service Portを5000
、Container Portを5000
に設定します。ラベル
ラベルを追加します。 たとえば、キーを
app
に設定し、値をcustom-metrics-pindex
に設定します。 このラベルは、ServiceMonitorsによってセレクタとして使用されます。[作成] をクリックしてアプリケーションを作成します。
カスタムメトリックを設定します。 Prometheusのマネージドサービスがスクレイピングするエンドポイントを使用します。
最初に
Prometheusコンソールのマネージドサービス。[Prometheusのマネージドサービス] ページの左上隅で、クラスターがデプロイされているリージョンを選択し、対応するPrometheusインスタンスの名前をクリックしてインスタンスの詳細ページに移動します。
インスタンスの詳細ページの左側のナビゲーションウィンドウで、[サービスの検出] をクリックします。 次に、[設定] タブをクリックし、[設定] タブの [ServiceMonitor] をクリックします。
[ServiceMonitor] タブで、[ServiceMonitorの追加] をクリックします。 [ServiceMonitorの追加] ダイアログボックスで、ServiceMonitorを設定し、[OK] をクリックします。
カスタムメトリクスの設定方法の詳細については、「ACKサービスの検出」をご参照ください。
[ターゲット] タブに、PrometheusのManaged Serviceがスクレイピングするエンドポイントが表示されます。
説明注釈を追加してカスタムメトリックを作成する方法と比較して、この方法は、サービスの名前空間と名前を含むより多くの情報を提供します。
メトリックを選択し、[エンドポイント] 列のハイパーリンクをクリックして、メトリック値を増やします。
メトリクスの設定方法の詳細については、「データモデル」をご参照ください。
よくある質問
ack-arms-prometheusコンポーネントのバージョンを確認するにはどうすればよいですか?
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
On theアドオンページをクリックし、ログとモニタリングタブを検索し、ack-arms-プロメテウスコンポーネントを使用します。
バージョン番号はコンポーネントの下部に表示されます。 新しいバージョンが利用可能な場合は、右側の [アップグレード] をクリックしてコンポーネントを更新します。
説明[アップグレード] ボタンは、コンポーネントが最新バージョンに更新されていない場合にのみ表示されます。
Managed Service for PrometheusがGPUアクセラレーションノードを監視できないのはなぜですか?
この問題は、アンマネージPrometheusエージェントにのみ関連しています。
Managed Service for Prometheusは、テイントで構成されているGPU高速化ノードを監視できない場合があります。 次の手順を実行して、GPU高速化ノードの汚染を表示できます。
次のコマンドを実行して、GPUアクセラレーションノードの汚染を表示します。
GPUアクセラレーションノードにカスタムテイントを追加した場合、カスタムテイントに関する情報を表示できます。 この例では、
key
がtest-key
に設定され、value
がtest-value
に設定され、effect
がNoSchedule
に設定されたtaintがノードに追加されます。kubectl describe node cn-beijing.47.100.***.***
期待される出力:
Taints:test-key=test-value:NoSchedule
次のいずれかの方法を使用して、テイントを処理します。
次のコマンドを実行して、GPUアクセラレーションノードからテイントを削除します。
kubectl taint node cn-beijing.47.100.***.*** test-key=test-value:NoSchedule-
CPUアクセラレーションノードにポッドをスケジュールできるようにする許容範囲ルールを追加します。
# 1 Run the following command to modify ack-prometheus-gpu-exporter: kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter # 2. Add the following fields to the YAML file to tolerate the taint: #Other fields are omitted. # The tolerations field must be added above the containers field and both fields must be of the same level. tolerations: - key: "test-key" operator: "Equal" value: "test-value" effect: "NoSchedule" containers: # Irrelevant fields are not shown.
ack-arms-prometheusのリソース構成が残っているためにack-arms-prometheusの再インストールに失敗した場合はどうすればよいですか?
この問題は、アンマネージPrometheusエージェントにのみ関連しています。
Managed Service for Prometheusの名前空間のみを削除した場合、リソース設定は保持されます。 この場合、ack-arms-prometheusの再インストールに失敗する可能性があります。 残りのリソース設定を削除するには、次の操作を実行します。
arms-prom名前空間を削除するには、次のコマンドを実行します。
kubectl delete namespace arms-prom
次のコマンドを実行して、関連するClusterRolesを削除します。
kubectl delete ClusterRole arms-kube-state-metrics kubectl delete ClusterRole arms-node-exporter kubectl delete ClusterRole arms-prom-ack-arms-prometheus-role kubectl delete ClusterRole arms-prometheus-oper3 kubectl delete ClusterRole arms-prometheus-ack-arms-prometheus-role kubectl delete ClusterRole arms-pilot-prom-k8s kubectl delete ClusterRole gpu-prometheus-exporter
次のコマンドを実行して、関連するClusterRoleBindingsを削除します。
kubectl delete ClusterRoleBinding arms-node-exporter kubectl delete ClusterRoleBinding arms-prom-ack-arms-prometheus-role-binding kubectl delete ClusterRoleBinding arms-prometheus-oper-bind2 kubectl delete ClusterRoleBinding arms-kube-state-metrics kubectl delete ClusterRoleBinding arms-pilot-prom-k8s kubectl delete ClusterRoleBinding arms-prometheus-ack-arms-prometheus-role-binding kubectl delete ClusterRoleBinding gpu-prometheus-exporter
次のコマンドを実行して、関連するロールとRoleBindingsを削除します。
kubectl delete Role arms-pilot-prom-spec-ns-k8s kubectl delete Role arms-pilot-prom-spec-ns-k8s -n kube-system kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s -n kube-system