Forrester Total Economic Impact™の調査によると、Edwin AIは複合組織において313%の投資対効果(ROI)を実現したことが判明しました。

続きを読む

LogicMonitor Edwin AI Grafana連携機能を使用すると、Grafana環境からEdwin AIにアラートイベントを受信できます。この連携機能により、カスタムWebhookを使用して、自動応答、アラートの強化、およびクロスプラットフォームのインシデント相関をリアルタイムで実現できます。

この統合機能は、Edwin共通イベントフォーマット(CEF)を使用した構造化JSONペイロードをサポートしており、テストメトリクス、ルールメタデータなどでイベントデータを充実させることができます。

Edwin AI Elastic Integration の構成要件

Edwin AIとGrafanaの連携を設定するには、以下のものが必要です。

  • Grafanaアカウントの統合ページへのアクセス
  • Edwin AIクライアントIDとクライアントシークレット。詳細については、以下を参照してください。 Edwin AI API 資格情報管理 .

Edwin AI Elastic Integration Webhookの設定

  1. GrafanaでWebhook通知を設定します。
    詳細については、を参照してください。 Webhook通知を設定する Grafanaより。
  2. 新しい連絡先には、以下の詳細を含めてください。
    • 名前を追加
    • 「Webhook」を選択してください。 接点タイプ ドロップダウンメニュー。
    • URL フィールド、入力 https://<accountname>.dexda.ai/integration/event/v1 
    • オプションのWebhook設定を選択し、以下を適用してください。
      • HTTPメソッド—POST
      • HTTP基本認証ユーザー名—Edwin APIクライアントID
      • HTTP基本認証パスワード—Edwin APIクライアントシークレット
      • カスタムペイロードテンプレートを入力してください(参照) カスタムペイロードテンプレートの例.)
  3. 作成した連絡先をアラートルールに直接関連付けるか、通知ポリシーを通じてアラートをその連絡先にルーティングします。
    詳細については、を参照してください。 アラートルールの作成と編集 and  Webhookにアラートルールを添付する Grafanaより。

ウェブフック通知により、イベントがEdwin AIに送信されるようになりました。

カスタムペイロードテンプレートの例

GrafanaでEdwin AIが使用する通知Webhookを作成する際には、カスタムペイロードテンプレートが必要です。

以下のペイロード例は、GrafanaのアラートデータをEdwin AI CEF構造に動的にマッピングします。

[
  {{- range $i, $a := .Alerts -}}
    {{- if $i }},{{ end }}
    {
      "cef": {
        "eventCi":
          {{- if (index $a.Labels "instance") -}}
            {{ index $a.Labels "instance" | data.ToJSON }}
          {{- else if (index $a.Labels "host") -}}
            {{ index $a.Labels "host" | data.ToJSON }}
          {{- else if (index $a.Labels "node") -}}
            {{ index $a.Labels "node" | data.ToJSON }}
          {{- else if (index $a.Labels "pod") -}}
            {{ index $a.Labels "pod" | data.ToJSON }}
          {{- else if (index $a.Labels "job") -}}
            {{ index $a.Labels "job" | data.ToJSON }}
          {{- else -}}
            "unknown"
          {{- end }},
        "eventObject":
          {{- if (index $a.Labels "resource") -}}
            {{ index $a.Labels "resource" | data.ToJSON }}
          {{- else if (index $a.Labels "device") -}}
            {{ index $a.Labels "device" | data.ToJSON }}
          {{- else if (index $a.Labels "mountpoint") -}}
            {{ index $a.Labels "mountpoint" | data.ToJSON }}
          {{- else if (index $a.Labels "job") -}}
            {{ index $a.Labels "job" | data.ToJSON }}
          {{- else if (index $a.Labels "alertname") -}}
            {{ index $a.Labels "alertname" | data.ToJSON }}
          {{- else -}}
            "Grafana Alert"
          {{- end }},
        "eventName":
          {{- if (index $a.Labels "alertname") -}}
            {{ index $a.Labels "alertname" | data.ToJSON }}
          {{- else -}}
            "Grafana Alert"
          {{- end }},
        "eventDescription":
          {{- if (index $a.Annotations "summary") -}}
            {{ index $a.Annotations "summary" | data.ToJSON }}
          {{- else if (index $a.Annotations "description") -}}
            {{ index $a.Annotations "description" | data.ToJSON }}
          {{- else if (index .CommonAnnotations "summary") -}}
            {{ index .CommonAnnotations "summary" | data.ToJSON }}
          {{- else if (index .CommonAnnotations "description") -}}
            {{ index .CommonAnnotations "description" | data.ToJSON }}
          {{- else -}}
            "Grafana alert notification"
          {{- end }},
        "eventDetails":
          {{- if (index $a.Annotations "description") -}}
            {{ index $a.Annotations "description" | data.ToJSON }}
          {{- else if (index $a.Annotations "summary") -}}
            {{ index $a.Annotations "summary" | data.ToJSON }}
          {{- else if (index .CommonAnnotations "description") -}}
            {{ index .CommonAnnotations "description" | data.ToJSON }}
          {{- else if (index .CommonAnnotations "summary") -}}
            {{ index .CommonAnnotations "summary" | data.ToJSON }}
          {{- else -}}
            ""
          {{- end }},
        "eventSeverity":
          {{- if eq $a.Status "resolved" -}}0
          {{- else if eq (index $a.Labels "severity") "fatal" -}}6
          {{- else if eq (index $a.Labels "severity") "critical" -}}5
          {{- else if eq (index $a.Labels "severity") "major" -}}4
          {{- else if eq (index $a.Labels "severity") "high" -}}4
          {{- else if eq (index $a.Labels "severity") "minor" -}}3
          {{- else if eq (index $a.Labels "severity") "warning" -}}2
          {{- else if eq (index $a.Labels "severity") "info" -}}1
          {{- else -}}4
          {{- end }},
        "eventTimestamp": {{ $a.StartsAt.UnixMilli }},
        "eventSource":
          {{- if (index $a.Labels "event_source") -}}
            {{ index $a.Labels "event_source" | data.ToJSON }}
          {{- else -}}
            "Grafana"
          {{- end }},
        "sourceRecord": {{ $a | data.ToJSON }},
        "class": "event",
        "version": "1.0"
      },
      "enrichments": {}
    }
  {{- end -}}
]

詳細については、を参照してください。 イベント記録

14日間フルアクセス LogicMonitor プラットフォーム