Soracom

Users

ドキュメント
Home ドキュメント SORACOM Lagoon 3 Alert を管理する

Contact point を設定する

通知方法、通知先、および通知内容 (本文) を設定します。通知方法にあわせてタイトルや本文を指定できます。

Contact point は、編集ユーザー (Editor ロール) のみが設定できます。閲覧ユーザー (Viewer ロール) では設定できません。ユーザーの違いについては、Lagoon ユーザーのロールを設定する を参照してください。

  • Alert の概要については、Alert の概要 を参照してください。
  • 詳しくは、Grafana documentation の Manage contact points (英語) を参照してください。
  1. Lagoon コンソールにログイン して、[ (Alerting)][Contact points][+New contact point] の順にクリックします。

    「New contact point」画面が表示されます。

    Message templates については、Message template を作成する を参照してください。

  2. 以下の項目を設定します。

    項目説明
    [Name]Contact point の名前を入力します。
    [Contact point type]

    通知先のサービスを選択し、通知先にあわせて各項目を設定します。

    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 サポートのサポート対象外です。

  3. [Save contact point] をクリックします。

Email の設定項目

メールで通知するための Contact point を作成します。

  1. 「New contact point」画面の [Contact point type] で「Email」を選択します。

  2. 以下の項目を設定します。

    項目説明
    [Addresses]

    Alert 通知先のメールアドレスを指定します。複数のメールアドレスを入力する場合は、; で区切ります。

    • 登録可能なメールアドレスは最大 25 件です。
    • 通知先メールアドレスを多く登録した場合、アラートメールの送信が遅延する場合があります。
    [Optional Email settings]
    • [Single email]: [Addresses] に複数のメールアドレスを入力したときに、まとめて 1 通のメールを送信するか、宛先ごとに 1 通ずつメールを送信するかを設定します。

      たとえば、[Addresses] に 3 つのメールアドレスを入力した場合は、以下のように動作が変わります。

      • チェックを入れると、3 つのメールアドレスが To に設定された 1 通のメールが送信されます。
      • チェックを外すと、メールアドレスごとに 3 通のメールが送信されます。メールの受信者に対して、同時に送信されているメールアドレスを隠すときに便利です。
    • [Message]: メールの本文を入力します。自由にカスタマイズできますが、HTML タグを入力しても、HTML タグとしては解釈されません。空欄のままにするか、以下のように入力して、Grafana の default.message テンプレートを使用することを推奨します。

      {{ template "default.message" }}
      
    • [Subject]: メールの Subject を入力します。空欄のままにするか、以下のように入力して、Grafana の default.title テンプレートを使用することを推奨します。

      {{ template "default.title" . }}
      

    [Message] および [Subject] には、Message templates を利用できます。

    [Notification settings]
    • [Disable resolved message]: Alert が resolved になったときに通知するかを設定します。
      • チェックを入れると、通知しません。
      • チェックを外すと、通知します。

  3. [Save contact point] をクリックします。

Slack の設定項目

Slack に通知するための設定をします。Slack で通知する場合は、あらかじめ Slack App の Incoming Webhook の Webhook URL または Bot User OAuth Token を発行します。詳しくは、Slack App の Incoming Webhook を利用する を参照してください。

メッセージのユーザー名とアイコンは変更できません

Webhook URL を利用して Slack に通知する場合は、Contact point の設定でメッセージのユーザー名とアイコンを設定しても反映されません。ユーザー名とアイコンを変更する場合は、Bot User OAuth Token を利用してください。

Slack に通知するための Contact point を作成する

作成した Slack App または Webhook URL を利用して Slack で通知するための Contact point を作成します。

  1. 「New contact point」画面の [Contact point type] で「Slack」を選択します。

  2. 以下の項目を設定します。

    項目説明
    [Recipient] (*1)

    通知先のチャンネルまたはユーザーを指定します。

    • チャンネルに通知する場合: #<channel> または Slack のチャンネル ID。例: #generalCxxxxxxxxxx
    • ユーザーに通知する場合: ユーザー名 (@ を含む。また、表示名ではない) または Slack のユーザー ID。例: @demoUxxxxxxxxxx
    チャンネルに通知する場合は Slack App をチャンネルに追加してください

    Slack を起動して、以下の手順で Slack App をチャンネルに追加します。

    1. Slack で通知先のチャンネルを右クリックして、[チャンネル詳細を表示する] をクリックします。
    2. [インテグレーション][アプリを追加する] の順にクリックします。
    3. Slack App の [追加] をクリックします。
    [Token] (*1)Slack App の Bot User OAuth Token を入力します。Bot User OAuth Token を発行する手順について詳しくは、Slack App の Bot User OAuth Token を発行する を参照してください。
    [Webhook] (*2)Slack App の Webhook URL を入力します。Webhook URL を発行する手順について詳しくは、Slack App の Incoming Webhook の Webhook URL を発行する を参照してください。
    [Optional Slack settings]
    • [Username] (*1): メッセージのユーザー名を入力します。

    • [Icon emoji] (*1): メッセージのアイコンとして使用する絵文字を入力します。例: :smile:

    • [Icon URL] (*1): メッセージのアイコンとして使用する画像の URL を入力します。

    • [Mention Users]: 通知する際にメンションするユーザー名 (@ を含まない。また、表示名ではない) またはユーザー ID を入力します。例: demoUxxxxxxxxxx

    • [Mention Groups]: 通知する際にメンションするグループ ID を入力します。例: Sxxxxxxxxxx

    • [Mention Channel]: 通知する際に「チャンネルのアクティブなメンバー全員 (@here)」または「チャンネルのメンバー全員 (@channel)」にメンションできます。

      • Disabled: メンションしません。
      • Every active channel member: チャンネルのアクティブなメンバー全員にメンションします (@here)。
      • Every channel member: チャンネルのメンバー全員にメンションします (@channel)。
    • [Endpoint URL]: Slack の chat.postMessage と同じ仕様のカスタムエンドポイントの URL を入力すると、chat.postMessage が呼び出される代わりに、カスタムエンドポイントが呼び出されます。通常は、空欄のままにします。

    • [Title]: メッセージの Title を入力します。空欄のままにするか、以下のように入力して、Grafana の default.title テンプレートを使用することを推奨します。

      {{ template "default.title" . }}
      
    • [Description]: メッセージの Description を入力します。空欄のままにするか、以下のように入力して、Grafana の default.message テンプレートを使用することを推奨します。

      {{ template "default.message" . }}
      

    [Title][Description] には、Message templates や、Message templates で使用できる書式を利用できます。

    たとえば以下のように、Panel の URL とタイトルを | で区切って入力すると、"SAMPLE PANEL" という文字列に Panel へのリンクを設定できます。

    <https://jp-v3.lagoon.soracom.io/d/xxxxxxxxx/dashboard-name?orgId=yyy&viewPanel=zzz|SAMPLE PANEL>
    

    ただし、[Title][Description]、Message template のカスタマイズについては、SORACOM サポートのサポート対象外です。Message template について詳しくは、Grafana documentation の Message templating (英語) を参照してください。

    [Notification settings]
    • [Disable resolved message]: Alert が resolved になったときに通知するかを設定します。
      • チェックを入れると、通知しません。
      • チェックを外すと、通知します。
    • (*1) Bot User OAuth Token を利用してメッセージを送信する場合にのみ設定します。
    • (*2) Webhook URL を利用してメッセージを送信する場合にのみ設定します。

  3. [Save contact point] をクリックします。

LINE (LINE Notify) の設定項目

LINE Notify を利用して通知します。

LINE の Messaging API は利用できません。

LINE Notify のトークンを発行する

LINE Notify のトークンを発行する手順については、LINE Notify のトークンを発行する を参照してください。

LINE Notify のトークンは、パーソナルアクセストークンや、Personal Access Token と表記されることがあります。

LINE Notify で通知するための Contact point を作成する

LINE Notify で通知するための Contact point を作成します。

  1. 「New contact point」画面の [Contact point type] で「LINE」を選択します。

  2. 以下の項目を設定します。

    項目説明
    [Token]LINE Notify のアクセストークンを入力します。
    [Optional LINE settings]
    • [Title]: メッセージの Title を入力します。空欄のままにするか、以下のように入力して、Grafana の default.title テンプレートを使用することを推奨します。

      {{ template "default.title" . }}
      

      また、Message templates も利用できます。

    • [Description]: メッセージの Description を入力します。空欄のままにするか、以下のように入力して、Grafana の default.message テンプレートを使用することを推奨します。

      {{ template "default.message" . }}
      
    [Notification settings]
    • [Disable resolved message]: Alert が resolved になったときに通知するかを設定します。
      • チェックを入れると、通知しません。
      • チェックを外すと、通知します。

  3. [Save contact point] をクリックします。

Webhook の設定項目

[Contact point type] で「Webhook」を選択すると、通知が必要になったときに、Lagoon 3 が定義した JSON を任意の URL に送信できます。

JSON の例は、以下のとおりです。主なプロパティについては、Webhook で送信される 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",
        :
    }
  ],
    :
  "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"
}

Webhook の設定方法は以下のとおりです。

  1. 「New contact point」画面の [Contact point type] で「Webhook」を選択します。

  2. 以下の項目を設定します。

    項目説明
    [URL]JSON を送信するエンドポイントの URL を入力します。
    [Optional Webhook settings]
    • [HTTP Method]: HTTP メソッドを選択します。

    • [HTTP Basic Auhentication - Username][HTTP Basic Auhentication - Password]: JSON をエンドポイントの URL に送信する際に Basic 認証 が必要な場合は、Basic 認証のユーザー名とパスワードを入力します。

    • [Authorization Header - Scheme]: Authorization ヘッダーを追加する際のスキーム (例: Bearer) を指定します。

    • [Authorization Header - Credentials]: Authorization ヘッダーのスキームのあとに続ける認証情報を入力します。

    • [Max Alerts]: 1 つの JSON に含める Alert の上限を入力します。上限を設定しない場合は、0 を入力します。

    • [Title]: JSON の title に指定する Title を入力します。空欄のままにするか、以下のように入力して、Grafana の default.title テンプレートを使用することを推奨します。

      {{ template "default.title" . }}
      

      また、Message templates も利用できます。

    • [Description]: JSON の message に指定するメッセージを入力します。空欄のままにするか、以下のように入力して、Grafana の default.message テンプレートを使用することを推奨します。

      {{ template "default.message" . }}
      
    [Notification settings]
    • [Disable resolved message]: Alert が resolved になったときに通知するかを設定します。
      • チェックを入れると、通知しません。
      • チェックを外すと、通知します。

  3. [Save contact point] をクリックします。

Contact point を削除する

  1. Lagoon コンソールにログイン して、[ (Alerting)][Contact points] の順にクリックします。

  2. 削除する Contact point の [] をクリックします。

  3. [Yes, delete] をクリックします。

テストを行う

通知条件に関わらず、任意のタイミングで Contact point の設定内容を確認できます。

  1. 「New contact point」画面の [Test] をクリックします。

  2. [Notification message] で「Predefined」が選択されていることを確認して、[Send test notification] をクリックします。

    テスト Alert が通知されます。

Message template を作成する

Contact point のうち、Slack[Title][Body] などの一部の設定項目では、あらかじめ作成した Message template を利用できます。ここでは、Message template を作成する操作を説明します。

Message template のカスタマイズについては、SORACOM サポートのサポート対象外です。Message template について詳しくは、Grafana documentation の Message templating (英語) を参照してください。

  1. Lagoon コンソールにログイン して、[ (Alerting)][Contact points][+New template] の順にクリックします。

    「New message template」画面が表示されます。

  2. 以下の項目を設定します。

    項目説明
    [Template name]Message template の名前 (例: Slack alert) を入力します。ここに入力した名前は、「New contact point」画面の [Title][Body] に、{{ template "Slack alert" }}{{ template "Slack alert" . }} と入力することで参照できます。
    [Content]

    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 }}
    

    HTML タグは利用できません。

    Message template では、Go 言語のテンプレート言語を利用できます。たとえば、{{ printf "%#v" .Alerts }} を利用して以下のように設定すると、.Alerts の情報を確認できます。

    [This is a custom message]
    
    {{ printf "%#v" .Alerts }}
    

  3. [Save template] をクリックします。