5.3. Service Telemetry Framework でのアラート
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 を参照してください。
5.3.1. Prometheus でのアラートルールの作成 リンクのコピーリンクがクリップボードにコピーされました!
Prometheus はアラートルールを評価して通知を行います。ルール条件が空の結果セットを返す場合は、条件は偽となります。それ以外の場合は、ルールが真となり、アラートが発生します。
手順
- Red Hat OpenShift Container Platform にログインします。
service-telemetrynamespace に切り替えます。oc project service-telemetry
$ oc project service-telemetryCopy to Clipboard Copied! Toggle word wrap Toggle overflow アラートルールを含む
PrometheusRuleオブジェクトを作成します。Prometheus Operator は、ルールを Prometheus に読み込みます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ルールを変更するには、
exprパラメーターの値を編集します。
Operator がルールを Prometheus に読み込んだことを確認するには、
curlにアクセスできる Pod を作成します。oc run curl --generator=run-pod/v1 --image=radial/busyboxplus:curl -i --tty
$ oc run curl --generator=run-pod/v1 --image=radial/busyboxplus:curl -i --ttyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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}]}}[ 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}]}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力に Pod から定義された
./openstack.rulesが含まれるかなど、出力にPrometheusRuleオブジェクトに読み込まれるルールが表示されることを確認するには、Pod を終了します。[ root@curl:/ ]$ exit
[ root@curl:/ ]$ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow curlPod を削除して環境を消去します。oc delete pod curl
$ oc delete pod curl pod "curl" deletedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- アラートの詳細については、https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/alerting.md を参照してください。