Slack 用の Webhook 接続
Sumo Logic からアラートを HTTP POST リクエストとして Slack チャネルに送信できます。Webhook に関する Slack の要件の詳細については、その API ヘルプを参照してください。
webhook 接続には、Sumo Logic にデータの送信先を指示する HTTP エンドポイントが必要です。任意の数の接続をセットアップできます。
Slack 用の Webhook 接続の設定
- [Manage Data (データの管理)] > [Settings (設定)] > [Connections (接続)] に移動します。
- [Connections (接続)] ページで、[Add (追加)] をクリックします。
- [Slack] をクリックします。
- [Create Connection (接続の作成)] ダイアログに、接続の名前を入力します。
- (省略可能) 接続の説明を入力します。
- エンドポイントの URL を入力します。(詳細については、Slack API ヘルプをご確認ください)。
- (省略可能) 認証ヘッダーを入力します。認証トークンを含めることもできます。
- (省略可能) [Custom Headers (カスタム ヘッダー)]。最大 5 つのコンマ区切りのキーと値のペアを入力します。
- [Payload (ペイロード)] で、Slack に必要な形式で JSON オブジェクトを入力します。JSON オブジェクト内でパラメータとして使用できる変数の詳細については、「Webhook ペイロードの変数」を参照してください。
- [Save (保存)] をクリックします。
ペイロード メッセージを形式する方法の詳細については、Slack のドキュメントの「Basic message formatting (基本的なメッセージの形式)」を参照してください。
例
Scheduled Search の結果の送信
これは、RawResultsJson
や AggregateResultsJson
など、使用可能な 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」を参照してください。