Prometheus

Prometheusアラートルールの基本構造と設計方法 | 実務例付き

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Prometheusアラートルールの基本構造と設計の考え方

Prometheusを活用する際、アラートルールの作成は安定した運用に不可欠です。しかし「exprの書き方がよくわからない」「レコルダブルの役割がよく理解できない」といった悩みを持つDevOpsエンジニアやシステム管理者は少なくありません。本記事では、ステップバイステップでアラートルールを設計する方法と、実務で使える例を解説します。

レコルダブル・エクスプレッション・ラベルの役割

アラートルールの基本構造には3つの必須要素があります。

項目 役割
record アラートが記録されるレコード名(例: alert:HighCPUUsage
expr Prometheusクエリ(PromQL)で定義された条件式
labels エラーの追跡に使用するメタデータ(例: severity:warninginstance:app1

特にrecordはアラートを管理するために重要です。例えば、alert:HighCPUUsageという名前で記録することで、後の通知や監視がスムーズになります。また、labelsには「どのサーバー」「どのような問題」かを示す情報を入れることで、トラブルシューティングの効率化につながります。


シンプルなアラートルールの例で構文を理解する

以下は、CPU使用率が90%を超えた場合にアラートを発火させる基本的な例です。

この例では、exprにPromQLで定義したCPU使用率の計算式が入り、90%を超えた場合にアラートを生成します。また、「severity」というラベルで警戒レベルを示しています。このように、基本構造を理解することで、他のアラートルールも同様の手順で作成できます。


実務で活用する代表的なアラートケース

DevOps現場では「CPU使用率が90%を超えた」「ディスク容量が80%を超えている」といった異常を監視し、迅速な対応が必要です。以下に、こうした実務シーンで使えるアラートルールの例とその設計方法を解説します。

CPU使用率90%を超えた場合のアラート

CPU負荷が高くなると、アプリケーションのレスポンス遅延やサービス停止のリスクが高まります。このケースでは、5分間平均して90%以上になることを条件にアラートを発火させます。

  • for: 5m:条件が5分間維持された場合にアラートを発火(一時的なピークだけでは通知しない)
  • severity: warning:重要度を指定(warning、criticalなど)

このようにしきい値と継続時間を設定することで、過剰なアラートの発生を防ぐことができます。


ディスク容量80%超過時の通知設定

ディスク容量が満たされると、データ書き込みが失敗したり、クラッシュする可能性があります。このケースでは、80%を超えると即座にアラートを発火させるようにします。

  • critical:このアラートは即時対応が必要な緊急性を示す

また、複数のディスクデバイスについて同時に監視したい場合は、group by (device)unlessなどのPromQLでフィルタリングを行うことで、不要なアラートを抑制できます。


アラートグループ化と通知チャネルの設定ポイント

アラートルールを作成するだけでは、過剰にアラートが送られたり、同様の問題に対して複数回通知されたりする可能性があります。そこでアラートのグループ化通知経路(Slackやメールなど)への設定を工夫することが重要です。

複数メトリクスを1つのアラートに集約する方法

たとえば、CPU使用率とディスク容量が同時に異常になった場合、それぞれのアラートルールで通知されることがあります。これを防ぐには、groupsexpr複数の条件をまとめたアラートを作成します。

  • or:CPUまたはディスクのいずれかが異常ならアラートを発火

このように複数のメトリクスを1つのルールで管理できると、通知の負荷が減ります


Slack/メールなどへの通知経路構成

アラートはただ作るだけでなく、実際の通知が届くようにする必要があります。これはAlertmanager(Prometheusの通知用ツール)と連携して設定します。

  1. Prometheus側でアラートルールを定義し、labelsに通知先を指定
  2. AlertmanagerにSlackやメールなどの通知先を登録
  3. アラートが発火すると、Alertmanagerから通知される

このようにすることで、1つのエラーに対して複数の通知経路(Slack + メール)で同時に送信するなど、柔軟な設定が可能です。


ルールファイルの作成・テスト方法

アラートルールをYAML形式で定義し、Prometheusに読み込ませる必要があります。また、そのルールファイルが正しく動作するか確認するために事前テストが必要です

YAML形式のルールファイル構成例

以下は、複数のアラートルールを含むルールファイルの例です:

このファイルはprometheus.ymlに以下のように読み込みます:


Prometheus公式ツールでの事前テスト手順

ルールを作成した後、PrometheusのRule Evaluation Time(評価時間)を確認し、正しく動作するかテストしましょう。手順は以下の通りです:

  1. UIで「Status」→「Rules」にアクセス
  2. ルールが表示されていることを確認
  3. 各ルールに対して「Evaluate Now」を選択して即時評価
  4. 結果を確認し、アラートが正しく発火しているかを検証

このようにして事前にテストすることで、運用中に問題が起こるリスクを回避できます。


自社環境に応じたアラートルールテンプレートダウンロード

アラートルールの設計は、自社のインフラやアプリケーションの特性により異なります。例えば、Webサーバーとデータベースサーバーでは、監視対象となるメトリクスが異なるため、テンプレートをカスタマイズして使用することが推奨されます

利用できるテンプレート例

  • アプリケーションサーバー向けのアラートルール
  • CPU使用率(しきい値90%)
  • メモリ使用量(しきい値85%)

  • データベースサーバー向けのアラートルール

  • ストレージ使用率(しきい値75%)
  • DB接続数が上限に達するときのアラート

  • Linuxサーバー向けのアラートルール

  • ディスク容量(しきい値80%)
  • CPU温度異常検知

カスタマイズと最適化のポイント

テンプレートを導入する際は、以下のような点に注意してください:

  • 自社環境で実際に使われているメトリクスに合わせてアラートルールを修正
  • 既存の監視ツール(ZabbixやNagiosなど)との連携設定も考慮
  • サーバーごとに異なるしきい値を設定する場合、instanceでフィルタリング

テンプレートダウンロードはこちら

自社環境に最適なアラートルールテンプレートは以下からDL可能です。既存のルールをカスタマイズする際は、メトリクス名としきい値を確認し、必要に応じてPromQLを調整してください。

※ダウンロードリンクはこちら(※仮リンク)
- アラートルールテンプレートDLページ

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Prometheus