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 を作成してから、Lagoon の Contact point を設定します。

Slack App を作成する

通知するための Slack App を作成します。

Slack App の作成方法について詳しくは、slack api の Create and configure apps with manifests (英語) を参照してください。

  1. Slack の 「Your Apps」画面 にアクセスして、[Create New App][From scratch] の順にクリックします。

    「Name app & choose workspace」画面が表示されます。

  2. [App Name] に作成する Slack App の名前を入力し、[Pick a workspace to develop your app in:] で通知先のワークスペースを選択して、[Create App] をクリックします。

    「Basic Information」画面が表示されます。

    Slack で通知するには、Bot User OAuth Token または Webhook URL のどちらか一方を発行して、Contact point を作成 します。

Bot User OAuth Token を発行する
  1. 「Basic Information」画面で、[Permissions] をクリックします。

  2. [Bot Token Scopes][Add an OAuth Scope] をクリックして、以下の Scope を選択します。

    • 「chat:write」: メッセージを送信する
    • 「chat:write.customize」: メッセージ送信時に Slack App の username と icon を変更する
    • 「files:write」: ファイルをアップロードする
  3. [Install to Workspace][許可する] の順にクリックします。

    Bot User OAuth Token が発行されます。

  4. [Bot User OAuth Token][Copy] をクリックします。

    Bot User OAuth Token がクリップボードにコピーされます。

Webhook URL を発行する
メッセージのユーザー名とアイコンは変更できません

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

  1. 「Basic Information」画面で、[Incoming Webhooks] をクリックします。

  2. [Activate Incoming Webhooks] のスイッチを On にします。

  3. [Add New Webhook to Workspace] をクリックします。

  4. Alert の通知先を選択して、[許可する] をクリックします。

    Webhook URL が発行されます。

  5. [Copy] をクリックして、Webhook URL をクリップボードにコピーします。

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 を入力します。
    [Webhook] (*2)Slack App の 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" . }}
      

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

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

      {{ template "default.message" . }}
      
    [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 のトークンは、パーソナルアクセストークンや、Personal Access Token と表記されることがあります。

  1. LINE Notify にアクセスし、[ログイン] をクリックして、LINE アカウントでログインします。

    画面の指示に従って操作してください。ログインに成功すると、[ログイン] の代わりにユーザー名が表示されます。

  2. ユーザー名をクリックし、[マイページ] をクリックします。

  3. [トークンを発行する] をクリックします。

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

    項目説明
    [トークン名を記入してください]トークン名を入力します。トークン名は、LINE Notify から通知される Alert の先頭に表示されます。
    [通知を送信するトークルームを選択してください]Alert の通知先を選択します。「1:1 で LINE Notify から通知を受け取る」を選択すると、LINE Notify から Alert が通知されます。
  5. [発行する] をクリックします。

    LINE Notify のトークンが発行されます。

  6. [コピー] をクリックして、クリップボードにコピーします。

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] をクリックします。