メトリクスに基づくアラート

このチュートリアルでは、以前の Go で書かれた HTTP サーバーのインストルメンテーション チュートリアルでインストルメントした ping_request_count メトリクスにアラートを作成します。

このチュートリアルの目的のために、ping_request_count メトリクスが 5 より大きい場合にアラートを発するようにします。アラートの原則について詳しく知るには、実際の ベストプラクティス を参照してください。

Alertmanager の最新リリースを、お使いのオペレーティングシステム用のものを こちら からダウンロードしてください。

Alertmanager は、emailwebhookpagerdutyslack などのさまざまなレシーバーをサポートしており、アラートが発信されたときに通知できます。レシーバーのリストとその設定方法については、こちら を参照してください。このチュートリアルでは webhook をレシーバーとして使用します。次に webhook.site にアクセスし、後で Alertmanager を設定するために使用する webhook URL をコピーしてください。

まず、webhook レシーバーで Alertmanager をセットアップしましょう。

alertmanager.yml

global:
  resolve_timeout: 5m
route:
  receiver: webhook_receiver
receivers:
    - name: webhook_receiver
      webhook_configs:
        - url: '<INSERT-YOUR-WEBHOOK>'
          send_resolved: false

alertmanager.yml ファイルの <INSERT-YOUR-WEBHOOK> を、先ほどコピーした webhook に置き換えて、次のコマンドで Alertmanager を実行してください。

alertmanager --config.file=alertmanager.yml

Alertmanager が起動したら、https://:9093 にアクセスしてアクセスできることを確認してください。

Alertmanager を webhook レシーバーで設定したので、Prometheus の設定にルールを追加しましょう。

prometheus.yml

global:
 scrape_interval: 15s
 evaluation_interval: 10s
rule_files:
  - rules.yml
alerting:
  alertmanagers:
  - static_configs:
    - targets:
       - localhost:9093
scrape_configs:
 - job_name: prometheus
   static_configs:
       - targets: ["localhost:9090"]
 - job_name: simple_server
   static_configs:
       - targets: ["localhost:8090"]

Prometheus の設定に evaluation_intervalrule_filesalerting セクションが追加されていることに注意してください。evaluation_interval はルールの評価間隔を定義し、rule_files はルールの定義が含まれる yaml ファイルの配列を受け入れ、alerting セクションは Alertmanager の設定を定義します。このチュートリアルの冒頭で述べたように、ping_request_count の値が 5 より大きい場合にアラートを発する基本的なルールを作成します。

rules.yml

groups:
 - name: Count greater than 5
   rules:
   - alert: CountGreaterThan5
     expr: ping_request_count > 5
     for: 10s

次に、次のコマンドで Prometheus を実行しましょう。

prometheus --config.file=./prometheus.yml

ブラウザで https://:9090/rules を開いてルールを確認してください。次に、インストルメントした ping サーバーを実行し、https://:8090/ping エンドポイントにアクセスして、ページを少なくとも 6 回リフレッシュしてください。ping カウントは、https://:8090/metrics エンドポイントにアクセスして確認できます。アラートのステータスを確認するには、https://:9090/alerts にアクセスしてください。条件 ping_request_count > 5 が 10 秒以上 true であると、stateFIRING になります。これで、webhook.site URL に戻ると、アラートメッセージが表示されるはずです。

同様に、Alertmanager は他のレシーバーと設定して、アラートが発信されたときに通知することができます。

このページの内容