4.2. アラート
Prometheus でアラートルールを、Alertmanager でアラートルートを作成します。Prometheus サーバーのアラートルールは、アラートを管理する Alertmanager にアラートを送信します。Alertmanager は通知をオフにしたり、アラートを集約してメール (on-call 通知システムまたはチャットプラットフォーム) で通知を送信できます。
アラートを作成するには、以下のタスクを実行します。
- Prometheus でアラートルールを作成します。詳細は、「「Prometheus でのアラートルールの作成」」を参照してください。
- 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 を参照してください。
4.2.1. Prometheus でのアラートルールの作成
Prometheus はアラートルールを評価して通知を行います。ルール条件が空の結果セットを返す場合は、条件は偽となります。それ以外の場合は、ルールが真となり、アラートが発生します。
手順
- Red Hat OpenShift Container Platform にログインします。
service-telemetry
namespace に切り替えます。oc project service-telemetry
アラートルールを含む
PrometheusRule
オブジェクトを作成します。Prometheus Operator は、ルールを Prometheus に読み込みます。oc apply -f - <<EOF apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: creationTimestamp: null labels: prometheus: stf-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 # To change the rule, edit the value of the expr parameter. EOF
Operator でルールが Prometheus にロードされていることを確認するには、
curl
にアクセスできる Pod を作成します。oc run curl --generator=run-pod/v1 --image=radial/busyboxplus:curl -i --tty
curl
を実行してprometheus-operated
サービスにアクセスし、メモリーにロードされたルールを返します。[ root@curl:/ ]$ curl prometheus-operated:9090/api/v1/rules {"status":"success","data":{"groups":[{"name":"./openstack.rules","file":"/etc/prometheus/rules/prometheus-stf-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}]}}
出力に Pod から定義された
./openstack.rules
が含まれるかなど、出力にPrometheusRule
オブジェクトに読み込まれるルールが表示されることを確認するには、Pod を終了します。[ root@curl:/ ]$ exit
curl
Pod を削除して環境を消去します。$ oc delete pod curl pod "curl" deleted
関連情報
アラートの詳細については、https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/alerting.md を参照してください。