Slack に HTTP リクエストアクションを送信するには、Splunk AppDynamics でテンプレートを作成する必要があります。Splunk AppDynamics がイベントに応答してアクションをトリガーすると、Slack チャネルでアクションの詳細を表示できます。

このドキュメントには、Slack のドキュメントへの参照が含まれています。Splunk AppDynamics はいかなる権利も所有しておらず、そのようなサードパーティのドキュメントの正確性または完全性について責任を負いません。

はじめる前に

  1. Slack API ウィザードを使用して、Slack でアプリケーションを作成します。このアプリケーションは、Slack に送信された HTTP リクエストを受け入れます。
  2. Slack アプリケーションによって生成されたウェブフック URL をコピーし、後で使用するために安全に保管します。Splunk AppDynamics は、この URL をターゲットとして使用してアラートを Slack に送信します。

テンプレートの作成

  1. メニュー バーで、[Alert & Respond] をクリックします。
  2. [ HTTP Request Templates] をクリックします。
  3. テンプレートの名前を入力します。たとえば、「Send alerts to Slack」です。
  4. [Request URL] セクションで、次の手順を実行します。
    1. [POST ] を [Method] として選択します。
    2. [Raw URL] フィールドに Slack アプリケーションのウェブフック URL を入力します。
    3. [UTF-8 ] を [URL Encoding] として選択します。
  5. [Authentication] セクションで、[NONE ] を [Type] として選択します。相互 TLS 認証を有効にする場合は、[Also Turn on Mutual TLS] を選択します。相互 TLS の詳細については、「相互 TLS 認証の設定と有効化」を参照してください。
  6. [Payload] セクションで、次の手順を実行します。
    1. [application/json ] を [MIME Type] として選択します。
    2. [UTF-8 ] を [Payload Encoding] として選択します。
    3. テキストボックスに次のペイロードを入力します。

      #set( $sm = $!{latestEvent.summaryMessage.replace('"',"*")} )
      #set( $sm = $sm.replace("<b>", "*") )
      #set( $sm = $sm.replace("</b>", "*") )
      #set( $sm = $sm.replace("<br>", " ") )
      #set( $sm = $sm.replace("null"," ") )
         
      {
          "blocks": [
              {
                  "type": "section",
                  "text": {
                      #if( ${latestEvent.severity} == "ERROR" )
                          "type": "mrkdwn",
                          "text": ":red_circle: *New Alert from AppDynamics:* ${latestEvent.displayName}\n\n*Summary:*\n$sm"
                      #elseif( ${latestEvent.severity} == "WARN" )
                          "type": "mrkdwn",
                          "text": ":warning: *New Alert from AppDynamics:* ${latestEvent.displayName}\n\n*Summary:*\n$sm"
                      #else
                          "type": "mrkdwn",
                          "text": ":information_source: *New Alert from AppDynamics:* ${latestEvent.displayName}\n\n*Summary:*\n$sm"
                      #end
                  },
                      "accessory": {
                      "type": "image",
                      "image_url": "https://share-logos.s3-us-west-1.amazonaws.com/appd-s-logo.png",
                      "alt_text": "logo"
                  },
              },
              {
                  "type": "section",
                  "fields": [
                      {
                          "type": "mrkdwn",
                          "text": "*Application:*\n${latestEvent.application.name}"
                      },
                      {
                          "type": "mrkdwn",
                          "text": "*When:*\n${latestEvent.eventTime}"
                      },
                      {
                          "type": "mrkdwn",
                          "text": "*Tier:*\n${latestEvent.tier.name}"
                      },
                      {
                          "type": "mrkdwn",
                          "text": "*Severity:*\n${latestEvent.severity}"
                      },
                      {
                          "type": "mrkdwn",
                          "text": "*Node:*\n${latestEvent.node.name}"
                      },
                      {
                          "type": "mrkdwn",
                          "text": "*Triggered by:*\n${policy.name}"
                      },
                  ]
              },
              {
                  "type": "actions",
                  "elements": [
                      {
                          "type": "button",
                          "text": {
                              "type": "plain_text",
                              "emoji": true,
                              "text": "Go to Alert in AppDynamics"
                          },
                          #if( ${latestEvent.severity} == "ERROR" )
                              "style": "danger",
                          #elseif( ${latestEvent.severity} == "WARN" )
                              "style": "primary",
                          #end
                          "value": "click_me_123",
                          "url": "${latestEvent.deepLink}"
                      },
                      {
                          "type": "button",
                          "text": {
                              "type": "plain_text",
                              "emoji": true,
                              "text": "Start Webex Session"
                          },
                          "style": "primary",
                          "value": "click_me_123",
                          "url": "https://cisco.webex.com"
                      }
                  ]
              },
              {
                  "type": "divider"
              },
          ]
      }
      JSON
  7. [Settings] セクションで、[One Request Per Event] オプションを選択します。
  8. [Save] をクリックします。