このトピックでは、Alibaba Cloud Managed Service for Prometheus でアラートルールを作成および管理する方法について説明します。
背景情報
PrometheusRule は、Prometheus Operator でアラートを管理するために使用されるカスタムリソース定義 (CRD) です。PrometheusRule は、Prometheus アラートルールまたは記録ルールのセットを定義します。Prometheus Operator がインストールされている Kubernetes クラスタでは、PrometheusRule を作成してアラートルールを作成できます。Monitoring as Code (MaC) の実装として、PrometheusRule は GitOps の研究開発および運用管理システムの構築に適しています。
Managed Service for Prometheus では、PrometheusRule を使用してアラートルールを作成および管理することもできます。Managed Service for Prometheus を使用すると、インタラクティブで視覚化されたインターフェースで Prometheus インスタンスのアラートを管理できます。また、Prometheus Operator で PrometheusRule を使用してアラートを作成および管理することもできます。
使用上の注意
Managed Service for Prometheus は、アラートルールを作成および管理するために次の方法をサポートしています。
方法 1: PrometheusRule をアラートルールテンプレートとしてインポートし、視覚化された方法で複数のアラートを作成または更新します。この方法は、グラフィカルユーザーインターフェース (GUI) の使用に慣れているユーザーに適しています。Managed Service for Prometheus コンソールで多数のアラートルールを効率的に管理できます。詳細については、方法 1: PrometheusRule をアラートルールテンプレートとしてインポートする を参照してください。
方法 2: Prometheus エージェントを有効にして、PrometheusRule ルールを自動的に同期します。この方法では、オープンソースのアラート設定を使用できます。この方法は、オープンソースの MaC ベースの運用管理システムの構築に慣れているユーザーに適しています。詳細については、方法 2: Prometheus エージェントを有効にして PrometheusRule アラートルールを同期する を参照してください。
デフォルトでは、Managed Service for Prometheus は Kubernetes クラスタから PrometheusRule ルールを読み取りません。ビジネス要件に基づいて、上記の方法のいずれかを使用してアラートルールを作成および管理できます。
方法 1: PrometheusRule をアラートルールテンプレートとしてインポートする
メリット
Managed Service for Prometheus は、複数のリージョンおよびクラスタでのアラート設定の効率を高めるために、アラートルールテンプレートを提供します。詳細については、アラートルールテンプレートの作成と管理 を参照してください。アラートルールテンプレートは、世界中のさまざまなクラスタに繰り返し適用できます。これにより、アラート設定の作業負荷が大幅に削減され、設定効率が向上します。
Managed Service for Prometheus では、PrometheusRule をアラートテンプレートとしてインポートし、そのアラートテンプレートを複数のクラスタに適用できます。この方法では、クラスタごとに PrometheusRule を作成する必要はありません。PrometheusRule をアラートルールテンプレートとしてインポートするには、次の手順を実行します。
手順
Managed Service for Prometheus コンソール にログインします。
左側のナビゲーションペインで、アラートルールテンプレート をクリックします。
Prometheus アラートルールテンプレート ページで、テンプレートのインポート をクリックします。
インポート ダイアログボックスに、PrometheusRule の spec コンテンツを貼り付けて、アラートルールテンプレートのインポート をクリックします。
次の図は、サンプル PrometheusRule の spec コンテンツ (アイコン 1) を示しています。
上記の spec コンテンツ (アイコン 1) を インポート ダイアログボックスに貼り付けて、アラートルールテンプレートのインポート をクリックします (次の図を参照)。
アラートルールテンプレートをインポートした後、Prometheus アラートルールテンプレート ページで テンプレートの適用 をクリックして、テンプレートを複数の Prometheus インスタンスに適用する必要があります。
方法 2: Prometheus エージェントを有効にして PrometheusRule アラートルールを同期する
シナリオ
GitOps などのシステムで MaC を使用してアラートルールを設定する場合。
Managed Service for Prometheus で監視されているクラスタのアラートルールを作成するために PrometheusRule を使用する場合。この場合、Prometheus エージェントのアラートパラメータを true に設定する必要があります。
手順
ACK コンソール にログインします。左側のナビゲーションペインで、クラスタ をクリックします。
クラスター ページで、管理するクラスターを見つけ、アプリケーション 列の アクション をクリックします。
デプロイメント ページで、Namespace ドロップダウンリストから arms-prom を選択します。名前 列で、名前が arms-prom で始まるデプロイメント (例: arms-prom-ack-arms-prometheus) を見つけます。次に、編集アクション 列の をクリックします。
ライフサイクル セクションの 編集 ページで、パラメーター フィールドの 開始 パラメーターを設定します。パラメーター フィールドに、
--alert=true
と入力します。次に、編集 ページの右上隅にある 更新 をクリックします。Prometheus エージェントが更新された後、3 ~ 5 分待ちます。その後、アラート ルールを表示Managed Service for Prometheus コンソールの 実行中 ページで、すべてのアラートが 状態になります。
クラスタで PrometheusRule が有効になっている場合は、Managed Service for Prometheus コンソールで同期されたアラートルールを変更しないことをお勧めします。多くの場合、予期しない結果が生じます。たとえば、アラートルール名を変更したり、アラートルールを削除したりできなくなる可能性があります。MaC メカニズムが損なわれる可能性もあります。この場合、変更されたルールは、GitOps などの外部運用管理システムに同期できません。
次の手順
Prometheus エージェントのアラートオプションを有効にすると、Managed Service for Prometheus は arms-prom ネームスペースに組み込みアラートルールのセットを作成します (次の図を参照)。組み込みアラートルールの詳細については、アラートルールの説明 を参照してください。
defaultAlert
パラメータを変更して、Prometheus エージェントの組み込みアラートルールを無効にすることができます。次の手順を実行します。
Managed Service for Prometheus は、Managed Service for Prometheus がデフォルトのアラートルールを自動的に作成するかどうかを指定できる defaultAlert
パラメータを提供します。このパラメータを true
に設定すると、Managed Service for Prometheus はデフォルトのアラートルールを自動的に作成します。このパラメータを false
に設定すると、Managed Service for Prometheus はデフォルトのアラートルールを自動的に作成しません。
Prometheus エージェントの
defaultAlert
パラメータをfalse
に設定します。ACK コンソール にログインします。左側のナビゲーションペインで、クラスタ をクリックします。
クラスタ ページで、管理するクラスタを見つけて、アプリケーションアクション 列の をクリックします。
デプロイメント ページで、Namespace ドロップダウンリストから arms-prom を選択します。名前 列で、名前が arms-prom で始まるデプロイメントを見つけて、アクション 列の 編集 (アイコン: 2) をクリックします。
ライフサイクル編集 ページの 開始パラメーター
--defaultAlert=false // デフォルトのアラートを無効にする
編集更新 セクションで、 パラメータの Parameter フィールドを設定します。 フィールドに、 と入力します。次に、 ページの右上隅にある をクリックします。
説明Prometheus エージェントが更新された後、3 ~ 5 分待ちます。Managed Service for Prometheus は、クラスタのデフォルトのアラートルールを作成しなくなります。
オプション: デフォルトのアラートルールを削除します。
Managed Service for Prometheus コンソール にログインします。
左側のナビゲーションペインで、インスタンス をクリックします。
Kubernetesクラスターを監視するPrometheusインスタンスの名前をクリックします。
左側のナビゲーションペインで、アラートルール をクリックします。Prometheus アラートルール ページで、削除するアラートルールを見つけて、削除アクション 列の OK をクリックします。表示されるメッセージで、 をクリックします。