Alertmanager

Alertmanagerのアラート処理のカスタマイズ

Alertmanagerは、Prometheusで発生しているアラートを構成済の受信者に送信します。PrometheusRulesにより、メトリックの値に基づいてアラートがトリガーされます。Alertmanagerでは、構成に応じて、これらのアラートのグループ化、ルーティングおよび通知の無効化が行われます。Alertmanagerでは、電子メール、Slack、PagerDutyおよびその他の一般的な通知サービス用に受信者を統合できます。

Alertmanagerの有効化

まず、Verrazzanoカスタム・リソースのPrometheusオペレータ・コンポーネントにAlertmanagerを構成して、有効化します。

apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
  name: custom-prometheus
spec:
  components:
    prometheusOperator:
      overrides:
        - values:
            alertmanager:
              enabled: true

AlertmanagerConfigの作成

次に、AlertmanagerConfigを作成して、Alertmanagerがアラートを送信する受信者を構成します。AlertmanagerConfigを作成するには、Verrazzanoコンソールにアクセスし、次の場所に移動します:

「Monitoring」 > 「Alerting」 > 「AlertmanagerConfigs」

Alertmanagerにより、デプロイされているのと同じネームスペース(デフォルトではverrazzano-monitoring)で、AlertmanagerConfigsが自動的に検出されます。

Alertmanagerの構成の詳細は、Alertmanagerのドキュメントを参照してください。

PrometheusRuleのデプロイ

Alertmanagerを有効にし、AlertmanagerConfigに受信者とルートを構成したら、アラートをトリガーするルールをデプロイできます。TestAlertRuleを作成するには、次のコマンドを実行します。このPrometheusRuleでは、Prometheusポッドの最後の構成のリロードが失敗した場合にアラートが送信されます。

$ kubectl apply -f - <<EOF
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  labels:
    release: prometheus-operator
  name: prometheus-operator-test
  namespace: verrazzano-monitoring
spec:
  groups:
    - name: test
      rules:
        - alert: TestAlertRule
          annotations:
            description: Test alert rule
            runbook_url: test-runbook-url
            summary: Test alert rule
          expr: |-
            prometheus_config_last_reload_successful{job="prometheus-operator-kube-p-prometheus",namespace="verrazzano-monitoring"} == 0
          for: 10m
          labels:
            severity: critical
EOF

独自のPrometheusRulesを作成して、追加のアラートを構成できます。Verrazzanoではデフォルトで、いくつかのアラート・ルールが構成され、PrometheusまたはThanos Rulerで確認できます。

詳細は、「Deploying Prometheus Rules」を参照してください。「Thanos Rulerによるアラート」も参照してください。