Menu Close
Settings Close

Language and Page Formatting Options

5.3. Service Telemetry Framework でのアラート

Prometheus でアラートルールを、Alertmanager でアラートルートを作成します。Prometheus サーバーのアラートルールは、アラートを管理する Alertmanager にアラートを送信します。Alertmanager は通知をオフにしたり、アラートを集約してメール (on-call 通知システムまたはチャットプラットフォーム) で通知を送信できます。

アラートを作成するには、以下のタスクを実行します。

  1. Prometheus でアラートルールを作成します。詳細は、「Prometheus でのアラートルールの作成」 を参照してください。
  2. Alertmanager でアラートルートを作成します。詳細は、「Alertmanager でのアラートルートの作成」 を参照してください。

追加リソース

Prometheus および Alertmanager のアラートまたは通知の詳細は https://prometheus.io/docs/alerting/overview/を参照してください。

Service Telemetry Framework (STF) で使用できるアラートのセットのサンプルを表示するには、https://github.com/infrawatch/service-telemetry-operator/tree/master/deploy/alertsを参照してください。

5.3.1. Prometheus でのアラートルールの作成

Prometheus はアラートルールを評価し、通知をトリガーします。ルール条件が返す結果がが空の場合には、条件は false になります。それ以外の場合は、ルールは true であるため、アラートがトリガーされます。

手順

  1. Red Hat OpenShift Container Platform にログインします。
  2. service-telemetry namespace に切り替えます。

    $ oc project service-telemetry
  3. アラートルールを含む PrometheusRule オブジェクトを作成します。Prometheus Operator はルールを Prometheus に読み込みます。

    $ oc apply -f - <<EOF
    apiVersion: monitoring.coreos.com/v1
    kind: PrometheusRule
    metadata:
      creationTimestamp: null
      labels:
        prometheus: default
        role: alert-rules
      name: prometheus-alarm-rules
      namespace: service-telemetry
    spec:
      groups:
        - name: ./openstack.rules
          rules:
            - alert: Metric Listener down
              expr: collectd_qpid_router_status < 1 1
    EOF
    1
    ルールを変更するには、expr パラメーターの値を編集します。
  4. Operator がルールを Prometheus に読み込んだことを確認するには、curl にアクセスできる Pod を作成します。

    $ oc run curl --generator=run-pod/v1 --image=radial/busyboxplus:curl -i --tty
  5. curl コマンドを実行して prometheus-operated サービスにアクセスし、メモリーに読み込まれるルールを返します。

    [ root@curl:/ ]$ curl prometheus-operated:9090/api/v1/rules
    {"status":"success","data":{"groups":[{"name":"./openstack.rules","file":"/etc/prometheus/rules/prometheus-default-rulefiles-0/service-telemetry-prometheus-alarm-rules.yaml","rules":[{"name":"Metric Listener down","query":"collectd_qpid_router_status \u003c 1","duration":0,"labels":{},"annotations":{},"alerts":[],"health":"ok","type":"alerting"}],"interval":30}]}}
  6. 出力に Pod から定義された ./openstack.rules が含まれるかなど、出力に PrometheusRule オブジェクトに読み込まれるルールが表示されることを確認するには、Pod を終了します。

    [ root@curl:/ ]$ exit
  7. curl Pod を削除して環境を消去します。

    $ oc delete pod curl
    
    pod "curl" deleted

追加リソース