GrafanaでContact PointsとPoliciesをプロビジョニングするようにする

インフラストラクチャ

概要

GrafanaでContact Pointsがプロビジョニングがいつの間にかできるようになっていたので、プロビジョニングを設定してみる。

環境

設定方法

雑メモなのでDocker Composeを使ったビルド周りの説明は割愛する。bmf-san/gobel-exampleを参照。

provisioning/alerting配下にcontact-points.ymlとpolilcies.ymlを追加する。ファイル名は任意で良い。

└── provisioning
    └──alerting
            ├── alert-rules.yml
            ├── contact-points.yml
            └── policies.yml

Contact Points

下記はwebhookでSlackに通知する設定例。

apiVersion: 1

contactPoints:
  - orgId: 1
    name: Slack
    receivers:
      - uid: abc1234
        type: slack
        settings:
          recepient: alert-slack-channel-name
          url: [webhook url]
        disableResolveMessage: false

uidはプロビジョニングする場合は自分で採番可能であるので何でもOK。

recepientはSlack通知先チャンネル名。

urlはwebhook urlを設定。tokenを使う形にもできる。

cf. grafana.com - #provision-contact-points

Policies

Policiesもプロビジョニングするようにしないとデフォルトで用意されているものが利用されてしまうため、プロビジョニングしたContact Pointsの設定を反映し、Alertの通知を行うためにはPolliciesのプロビジョニングも必要になる。(他にもやりようがあるのかは詳しく 調べなかった。)

下記はSlackという名前でContact Pointsを作った場合の設定例。

apiVersion: 1

policies:
  - orgId: 1
    receiver: Slack

receiverはContact Points名を指定する。

設定内容は最低限のみ。

cf. grafana.com - #provision-notification-policies

このような形でプロビジョニングすれば任意のContact PointsにAlertの通知が飛ぶように設定ができる。

所感

今まで手動で設定していたので楽になった。


関連書籍