インフラ

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

slack通知

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

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

シェルスクリプトで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、メモリ、ディスク)サーバの結合テスト・負荷テストをたまに作ることがあります。 新人の頃は、何を作ればよいのか分からない状態でした。 最近作れるようにな...