Open2

監視ツールのSlack通知設定

naokinaoki

Sentry

無料プランの利用を想定したSlackとの連携設定の方法です。
AWS LambdaやGASなどを使い、SentryのWebhookを受け取りSlackに通知する処理を作成する必要があります。
ここではGASを使ったSlack通知の設定方法を紹介します。

  1. メニューからSettingsをクリック

  2. Integrationsをクリック

  3. Webhooksを選択

  4. Add To Projectをクリック
    Image from Gyazo

  5. Slack APIページで新規アプリを作成
    Image from Gyazo

  6. App Nameとアプリを追加するワークスペースを指定
    Image from Gyazo

  7. Incoming Webhooksを開き、有効化を行った後、Add New Webhook to Workspace をクリック
    Image from Gyazo

  8. 通知を作成するチャンネルを指定して、アクセス権限を許可する
    Image from Gyazo

  9. Webhook URLが生成されるのでコピーしておく
    Image from Gyazo

  10. 通知処理を行うGASスクリプトを作成

// SlackのWebhook URLを設定
var SLACK_WEBHOOK_URL = 'https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX';

function doPost(e) {
  var params = JSON.parse(e.postData.contents);
  var message = createSlackMessage(params);
  sendToSlack(message);
}

function createSlackMessage(params) {
  var title = params.event.title || 'エラー通知';
  var url = params.url || 'URL情報がありません';
  var level = params.event.level || 'error';

  var message = {
    "text": "Sentryエラー通知 :bell:",
    "attachments": [
      {
        "color": level === 'error' ? '#ff0000' : '#36a64f',
        "fields": [
          {
            "title": "Title",
            "value": title,
            "short": false
          },
          {
            "title": "URL",
            "value": url,
            "short": false
          }
        ]
      }
    ]
  };

  return JSON.stringify(message);
}

function sendToSlack(message) {
  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': message
  };

  UrlFetchApp.fetch(SLACK_WEBHOOK_URL, options);
}
  1. GASスクリプトの実行pathをWebhook URLに設定
    Image from Gyazo

以上でSentryとSlackの連携が完了します。

naokinaoki

Papertrail

  1. DashboardのSaved Serches上でアラートを作成するイベントのEditをクリック

  2. ChatのSlackを選択

  3. new Papertrail Integrationをクリック

  4. SlackにPapertrailインテグレーションを追加

  5. 生成されたWebhook URLとTimeZoneをCreateAlert上で設定してCreateAlertをクリック

以上でPapertrailとSlackの連携が完了します。