Contact point を設定する
通知方法、通知先、および通知内容 (本文) を設定します。通知方法にあわせてタイトルや本文を指定できます。
- Alert の概要については、Alert の概要 を参照してください。
- 詳しくは、Grafana documentation の Manage contact points (英語) を参照してください。
Lagoon コンソールにログイン して、 → → の順にクリックします。
「New contact point」画面が表示されます。
Message templates については、Message template を作成する を参照してください。
以下の項目を設定します。
項目 説明 Contact point の名前を入力します。 通知先のサービスを選択し、通知先にあわせて各項目を設定します。
Lagoon 3 では、以下の Contact point type の動作を確認しています。
- Email: メールで通知します。設定項目については、Email の設定項目 を参照してください。
- Slack: Slack で通知します。設定項目については、Slack の設定項目 を参照してください。
- LINE: LINE Notify で通知します。LINE Messaging API は利用できません。設定項目については、LINE (LINE Notify) の設定項目 を参照してください。
- Webhook: Webhook で通知します。設定項目については、Webhook の設定項目 を参照してください。
上記を除く Contact point type は、SORACOM サポートのサポート対象外です。
をクリックします。
Email の設定項目
メールで通知するための Contact point を作成します。
「New contact point」画面の
で「Email」を選択します。以下の項目を設定します。
項目 説明 Alert 通知先のメールアドレスを指定します。複数のメールアドレスを入力する場合は、
;
で区切ります。- 登録可能なメールアドレスは最大 25 件です。
- 通知先メールアドレスを多く登録した場合、アラートメールの送信が遅延する場合があります。
: に複数のメールアドレスを入力したときに、まとめて 1 通のメールを送信するか、宛先ごとに 1 通ずつメールを送信するかを設定します。
たとえば、
に 3 つのメールアドレスを入力した場合は、以下のように動作が変わります。- チェックを入れると、3 つのメールアドレスが To に設定された 1 通のメールが送信されます。
- チェックを外すと、メールアドレスごとに 3 通のメールが送信されます。メールの受信者に対して、同時に送信されているメールアドレスを隠すときに便利です。
: メールの本文を入力します。自由にカスタマイズできますが、HTML タグを入力しても、HTML タグとしては解釈されません。空欄のままにするか、以下のように入力して、Grafana のdefault.message
テンプレートを使用することを推奨します。{{ template "default.message" }}
: メールの Subject を入力します。空欄のままにするか、以下のように入力して、Grafana のdefault.title
テンプレートを使用することを推奨します。{{ template "default.title" . }}
Message templates を利用できます。および には、- チェックを入れると、通知しません。
- チェックを外すと、通知します。
: Alert が resolved になったときに通知するかを設定します。
をクリックします。
Slack の設定項目
Slack に通知するための設定をします。Slack で通知する場合は、あらかじめ Slack App を作成してから、Lagoon の Contact point を設定します。
Slack App を作成する
通知するための Slack App を作成します。
Slack App の作成方法について詳しくは、slack api の Create and configure apps with manifests (英語) を参照してください。
Slack の 「Your Apps」画面 にアクセスして、 → の順にクリックします。
「Name app & choose workspace」画面が表示されます。
に作成する Slack App の名前を入力し、 で通知先のワークスペースを選択して、 をクリックします。
「Basic Information」画面が表示されます。
Slack で通知するには、Bot User OAuth Token または Webhook URL のどちらか一方を発行して、Contact point を作成 します。
Bot User OAuth Token を発行する
「Basic Information」画面で、
をクリックします。の をクリックして、以下の Scope を選択します。
- 「chat:write」: メッセージを送信する
- 「chat:write.customize」: メッセージ送信時に Slack App の username と icon を変更する
- 「files:write」: ファイルをアップロードする
→ の順にクリックします。
Bot User OAuth Token が発行されます。
の をクリックします。
Bot User OAuth Token がクリップボードにコピーされます。
Webhook URL を発行する
メッセージのユーザー名とアイコンは変更できません
Webhook URL を利用して Slack に通知する場合は、Contact point の設定でメッセージのユーザー名とアイコンを設定しても反映されません。ユーザー名とアイコンを変更する場合は、Bot User OAuth Token を利用してください。
「Basic Information」画面で、
をクリックします。のスイッチを On にします。
をクリックします。
Alert の通知先を選択して、
をクリックします。Webhook URL が発行されます。
をクリックして、Webhook URL をクリップボードにコピーします。
Slack に通知するための Contact point を作成する
作成した Slack App または Webhook URL を利用して Slack で通知するための Contact point を作成します。
「New contact point」画面の
で「Slack」を選択します。以下の項目を設定します。
項目 説明 (*1) 通知先のチャンネルまたはユーザーを指定します。
- チャンネルに通知する場合:
#<channel>
または Slack のチャンネル ID。例:#general
、Cxxxxxxxxxx
- ユーザーに通知する場合: ユーザー名 (
@
を含む。また、表示名ではない) または Slack のユーザー ID。例:@demo
、Uxxxxxxxxxx
チャンネルに通知する場合は Slack App をチャンネルに追加してください
Slack を起動して、以下の手順で Slack App をチャンネルに追加します。
- Slack で通知先のチャンネルを右クリックして、 をクリックします。
- → の順にクリックします。
- Slack App の をクリックします。
(*1) Slack App の Bot User OAuth Token を入力します。 (*2) Slack App の Webhook URL を入力します。 (*1): メッセージのユーザー名を入力します。
(*1): メッセージのアイコンとして使用する絵文字を入力します。例::smile:
(*1): メッセージのアイコンとして使用する画像の URL を入力します。
: 通知する際にメンションするユーザー名 (@
を含まない。また、表示名ではない) またはユーザー ID を入力します。例:demo
、Uxxxxxxxxxx
: 通知する際にメンションするグループ ID を入力します。例:Sxxxxxxxxxx
: 通知する際に「チャンネルのアクティブなメンバー全員 (@here)」または「チャンネルのメンバー全員 (@channel)」にメンションできます。
- Disabled: メンションしません。
- Every active channel member: チャンネルのアクティブなメンバー全員にメンションします (@here)。
- Every channel member: チャンネルのメンバー全員にメンションします (@channel)。
chat.postMessage と同じ仕様のカスタムエンドポイントの URL を入力すると、chat.postMessage が呼び出される代わりに、カスタムエンドポイントが呼び出されます。通常は、空欄のままにします。
: Slack の
: メッセージの Title を入力します。空欄のままにするか、以下のように入力して、Grafana のdefault.title
テンプレートを使用することを推奨します。{{ template "default.title" . }}
また、Message templates も利用できます。
: メッセージの Description を入力します。空欄のままにするか、以下のように入力して、Grafana のdefault.message
テンプレートを使用することを推奨します。{{ template "default.message" . }}
- チェックを入れると、通知しません。
- チェックを外すと、通知します。
: Alert が resolved になったときに通知するかを設定します。
- (*1) Bot User OAuth Token を利用してメッセージを送信する場合にのみ設定します。
- (*2) Webhook URL を利用してメッセージを送信する場合にのみ設定します。
- チャンネルに通知する場合:
をクリックします。
LINE (LINE Notify) の設定項目
LINE Notify を利用して通知します。
LINE の Messaging API は利用できません。
LINE Notify のトークンを発行する
LINE Notify のトークンは、パーソナルアクセストークンや、Personal Access Token と表記されることがあります。
LINE Notify にアクセスし、 をクリックして、LINE アカウントでログインします。
画面の指示に従って操作してください。ログインに成功すると、
の代わりにユーザー名が表示されます。ユーザー名をクリックし、
をクリックします。をクリックします。
以下の項目を設定します。
項目 説明 トークン名を入力します。トークン名は、LINE Notify から通知される Alert の先頭に表示されます。 Alert の通知先を選択します。「1:1 で LINE Notify から通知を受け取る」を選択すると、LINE Notify から Alert が通知されます。 をクリックします。
LINE Notify のトークンが発行されます。
をクリックして、クリップボードにコピーします。
LINE Notify で通知するための Contact point を作成する
LINE Notify で通知するための Contact point を作成します。
「New contact point」画面の
で「LINE」を選択します。以下の項目を設定します。
項目 説明 LINE Notify のアクセストークンを入力します。
: メッセージの Title を入力します。空欄のままにするか、以下のように入力して、Grafana のdefault.title
テンプレートを使用することを推奨します。{{ template "default.title" . }}
また、Message templates も利用できます。
: メッセージの Description を入力します。空欄のままにするか、以下のように入力して、Grafana のdefault.message
テンプレートを使用することを推奨します。{{ template "default.message" . }}
- チェックを入れると、通知しません。
- チェックを外すと、通知します。
: Alert が resolved になったときに通知するかを設定します。
をクリックします。
Webhook の設定項目
Lagoon 3 が定義した JSON を、任意の URL に送信することで、通知するための Contact point を作成します。
JSON の例:
{
"receiver": "",
"status": "firing",
"alerts": [
{
"status": "firing",
"labels": {
"alertname": "TestAlert",
"instance": "Grafana"
},
"annotations": {
"summary": "Notification test"
},
"startsAt": "2023-01-05T13:56:58.83951157Z",
"endsAt": "0001-01-01T00:00:00Z",
"generatorURL": "",
"fingerprint": "57c6d9296de2ad39",
"silenceURL": "https://jp-v3.lagoon.soracom.io/alerting/silence/new?alertmanager=grafana&matcher=alertname%3DTestAlert&matcher=instance%3DGrafana",
"dashboardURL": "",
"panelURL": "",
"values": null,
"valueString": "[ metric='foo' labels={instance=bar} value=10 ]"
}
],
"groupLabels": {},
"commonLabels": {
"alertname": "TestAlert",
"instance": "Grafana"
},
"commonAnnotations": {
"summary": "Notification test"
},
"externalURL": "https://jp-v3.lagoon.soracom.io/",
"version": "1",
"groupKey": "{alertname=\"TestAlert\", instance=\"Grafana\"}2023-01-05 13:56:58.83951157 +0000 UTC m=+46429.179763008",
"truncatedAlerts": 0,
"orgId": 70,
"title": "[FIRING:1] (TestAlert Grafana)",
"state": "alerting",
"message": "**Firing**\n\nValue: [no value]\nLabels:\n - alertname = TestAlert\n - instance = Grafana\nAnnotations:\n - summary = Notification test\nSilence: https://jp-v3.lagoon.soracom.io/alerting/silence/new?alertmanager=grafana&matcher=alertname%3DTestAlert&matcher=instance%3DGrafana\n"
}
「New contact point」画面の
で「Webhook」を選択します。以下の項目を設定します。
項目 説明 JSON を送信するエンドポイントの URL を入力します。 : HTTP メソッドを選択します。
、 : JSON をエンドポイントの URL に送信する際に Basic 認証 が必要な場合は、Basic 認証のユーザー名とパスワードを入力します。
: Authorization ヘッダーを追加する際のスキーム (例:Bearer
) を指定します。: Authorization ヘッダーのスキームのあとに続ける認証情報を入力します。
: 1 つの JSON に含める Alert の上限を入力します。上限を設定しない場合は、0
を入力します。
: JSON のtitle
に指定する Title を入力します。空欄のままにするか、以下のように入力して、Grafana のdefault.title
テンプレートを使用することを推奨します。{{ template "default.title" . }}
また、Message templates も利用できます。
: JSON のmessage
に指定するメッセージを入力します。空欄のままにするか、以下のように入力して、Grafana のdefault.message
テンプレートを使用することを推奨します。{{ template "default.message" . }}
- チェックを入れると、通知しません。
- チェックを外すと、通知します。
: Alert が resolved になったときに通知するかを設定します。
をクリックします。
Contact point を削除する
Lagoon コンソールにログイン して、 → の順にクリックします。
削除する Contact point の
をクリックします。をクリックします。
テストを行う
通知条件に関わらず、任意のタイミングで Contact point の設定内容を確認できます。
「New contact point」画面の
をクリックします。で「Predefined」が選択されていることを確認して、 をクリックします。
テスト Alert が通知されます。
Message template を作成する
Contact point のうち、Slack の や などの一部の設定項目では、あらかじめ作成した Message template を利用できます。ここでは、Message template を作成する操作を説明します。
Message template のカスタマイズについては、SORACOM サポートのサポート対象外です。Message template について詳しくは、Grafana documentation の Message templating (英語) を参照してください。
Lagoon コンソールにログイン して、 → → の順にクリックします。
「New message template」画面が表示されます。
以下の項目を設定します。
項目 説明 Message template の名前 (例: Slack alert
) を入力します。ここに入力した名前は、「New contact point」画面の や に、{{ template "Slack alert" }}
や{{ template "Slack alert" . }}
と入力することで参照できます。Message template のコンテンツを入力します。
例:
{{ define "Slack alert" }} {{- if gt (len .Alerts.Firing) 0 }} :red_circle: *_# Firing #_* {{- range .Alerts.Firing }} # *Alert name:* {{ .Labels.alertname }} *Value:* {{ .ValueString }} *Labels:* {{ range .Labels.SortedPairs }}- _{{ .Name }}_: {{ .Value }} {{ end }} *Annotations:* {{- if gt (len .Annotations) 0 }} {{ range .Annotations.SortedPairs }}- _{{ .Name }}_: {{ .Value }} {{ end }} {{- else }} _None_ {{ end }} *Action*: <{{ .SilenceURL}}|Silence> {{- end }} {{- end }} {{- if gt (len .Alerts.Resolved) 0 }} :large_blue_circle: *_# Resolved #_* {{- range .Alerts.Resolved }} # *Alert name:* {{ .Labels.alertname }} *Value:* {{ .ValueString }} *Labels:* {{ range .Labels.SortedPairs }}- _{{ .Name }}_: {{ .Value }} {{ end }} *Annotations:* {{- if gt (len .Annotations) 0 }} {{ range .Annotations.SortedPairs }}- _{{ .Name }}_: {{ .Value }} {{ end }} {{- else }} _None_ {{ end }} *Action*: <{{ .SilenceURL}}|Silence> {{- end }} {{- end }} {{ end }}
をクリックします。