メインコンテンツまでスキップ
Sumo Logic Japanese

Slack 用の Webhook 接続

Sumo Logic からアラートを HTTP POST リクエストとして Slack チャネルに送信できます。Webhook に関する Slack の要件の詳細については、その API ヘルプを参照してください。

webhook 接続には、Sumo Logic にデータの送信先を指示する HTTP エンドポイントが必要です。任意の数の接続をセットアップできます。

Slack 用の Webhook 接続の設定

  1. [Manage Data (データの管理)] > [Settings (設定)] > [Connections (接続)] に移動します。
  2. [Connections (接続)] ページで、[Add (追加)] をクリックします。
  3. [Slack] をクリックします。
  4. [Create Connection (接続の作成)] ダイアログに、接続の名前を入力します。
  5. (省略可能) 接続の説明を入力します。
  6. エンドポイントの URL を入力します。(詳細については、Slack API ヘルプをご確認ください)。
  7. (省略可能) 認証ヘッダーを入力します。認証トークンを含めることもできます。
  8. (省略可能) [Custom Headers (カスタム ヘッダー)]。最大 5 つのコンマ区切りのキーと値のペアを入力します。
  9. [Payload (ペイロード)] で、Slack に必要な形式で JSON オブジェクトを入力します。JSON オブジェクト内でパラメータとして使用できる変数の詳細については、「Webhook ペイロードの変数」を参照してください。 
  10. [Save (保存)] をクリックします。

ペイロード メッセージを形式する方法の詳細については、Slack のドキュメントの「Basic message formatting (基本的なメッセージの形式)」を参照してください。

Scheduled Search の結果の送信

これは、RawResultsJsonAggregateResultsJson など、使用可能な Webhook 変数のほとんどを送信するための JSON ペイロードの例です。未処理の結果または集計された結果を送信することはできますが、両方を送信することはできません。

{
    "text": "Sumo Logic Alert: *{{SearchName}}*",
    "attachments": [{
        "fields": [{
                "title": "Description",
                "value": "{{SearchDescription}}"
            },
            {
                "title": "Query",
                "value": "<{{SearchQueryUrl}}|{{SearchQuery}}>"
            },
            {
                "title": "Time Range",
                "value": "{{TimeRange}}"
            },
            {
                "title": "FieldName",
                "value": "{{Results.fieldname}}"
            },
            {
                "title": "Results",
                "value": "{{RawResultsJson}}"
            },             
            {
                "title": "Message",
                "value": "{{AggregateResultsJson}}"
            }
        ],
        "mrkdwn_in": ["text", "pretext"],
        "color": "#29A1E6"
    }]
}

CURL を使用した Slack への投稿

次の CURL コマンドを使用して Slack に投稿するとします。

curl -X POST --data-urlencode 'payload={"channel": "#mychannel", "username": "webhookuser", "text": "This is posted to #mychannel and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/A12...AqlwV1fJ0oiGpk

下線を引いた部分は、Slack 設定に必要なトークンです。変数は JSON オブジェクト形式に従う必要があります。これは、Slack の text パラメータを使用して Sumo Logic 変数を送信する JSON ペイロードの例です。

{
"text": "{{SearchName}} ran over {{TimeRange}} at {{FireTime}}",
"username": "Sumo Logic Alert"
}

これは、Slack の attachments パラメータを使用する JSON ペイロードの例です。

{
     "attachments": [
         {
             "pretext": "Sumo Logic Alert: *{{SearchName}}*",
             "fields": [
                 {
                     "title": "Description",
                     "value": "{{SearchDescription}}"
                 },
                 {
                     "title": "Query",
                     "value": "<{{SearchQueryUrl}}|{{SearchQuery}}>"
                 },
                 {
                     "title": "Time Range",
                     "value": "{{TimeRange}}"
                 }
             ],
             "mrkdwn_in": ["text", "pretext"],
             "color": "#29A1E6"
         }
     ]
 }

Scheduled Search の作成

次に、Slack チャネルへの投稿としてアラートを送信するために Scheduled Search を作成します。 

まったく新しい検索を作成することも、既存の保存済み検索または Scheduled Search に基づくこともできます。既存の検索を使用する場合、検索の現在のスケジュールが上書きされないようにクエリを新規検索として保存します。

手順については「Webhook 接続用の Scheduled Search」を参照してください。

  • この記事は役に立ちましたか?