インフラ

Webhookを使ってシェルスクリプトで手軽にslack通知する

slack通知

こんにちは、ちゃりおです。

アラートとかをslackに通知するのとても便利ですよね。
今回はシェルスクリプトでslackに通知する方法についてです。

Contents

シェルスクリプトでslackに通知する

WebhookURLの取得

カスタムインテグレーションは非推奨なので、アプリケーションを作ります。

Slack カスタムインテグレーションが非推奨へ
Moving on from custom integrations

こちらのページのstart buildingからアプリケーションが作れます。

アプリケーションの名前とworkspaceを指定したら、Incoming Webhooksを有効にします。
slack有効化

下までスクロールして、「Add New Webhooks to Workspace」でwebhookを作成します。

add webhooks

任意のチャンネルを選んで作成すると、WebhookURLが追加されています。
(テスト用のworkspaceのため、チャンネルが#randomになっていますが、適したチャンネルを指定しましょう)

webhook

スクリプト

単純に通知するだけなら、curlするだけなのでシンプルに書けます。
少し書き足せば監視してアラートを通知みたいなのもできます。

#/bin/bash
# webhook_urlを置き換える
WEBHOOK_URL="https://hooks.slack.com/services/***************"
MESSAGE="alert通知です"
PAYLOAD="payload={\"attachments\": [{ \"color\": \"#D00000\", \"text\": \"$MESSAGE\"}] }"
curl -XPOST --data-urlencode "${PAYLOAD}" \
 "$WEBHOOK_URL" > /dev/null

実行するとこんな感じです。

slack_success

参考 Reference: Message payloads

色をつけたかったので、非推奨の「attachments」を使いました。
推奨は「blocks」みたいです。

まとめ

シェルスクリプトでSlackに通知をやってみました。
少し前の記事だとSlackの推奨が変わっていたりしました。

Slackはアップデートが多そうなので、記事の情報が古くなるまでが早いようです。
公式ドキュメントを確認の上、色々やっていきたいです。

入門 監視
監視に関わる人は一度は読みたい「入門 監視」こんにちは、ちゃりおです。 半分ほど、読んで積読していたのですがやっと読み終わりました。 印象的だったところを、紹介します。 ...
cloudwatchプロセス監視
SSMを使わずCloudwatchでEC2上のプロセス監視をしてみるこんにちは、ちゃりおです。 Cloudwatchでプロセス監視をしてみました。 procstatプラグインをつかうことで、以前より簡単...
インフラのテストで 使えるコマンド
インフラの結合テスト・負荷テストの時に使えるコマンド(CPU、メモリ、ディスク)サーバの結合テスト・負荷テストをたまに作ることがあります。 新人の頃は、何を作ればよいのか分からない状態でした。 最近作れるようにな...