Typetalk(タイプトーク)

システムアラートボットを作ってTypetalkに自動でお知らせ

Typetalkボット-システムアラート

仕様や画面は現行バージョンと異なる可能性があります。
Typetalkの最新版についてはこちらからご確認ください。

運用中のシステムで異常が発生した時はいち早く知りたいもの。システムのメモリ使用率などの監視はソフトウェアを管理する開発者にとって、重要なタスクの1つです。そんなシステム監視をもっと楽にするために、本記事では「システムアラート」を通知する Typetalk ボットの作成方法をご紹介します。

Typetalk API を使うことで簡単に作成できるボットを活用して、システムアラートをTypetalkで受け取りましょう。

Typetalk API を用いて作成したシステムアラートボット

システムアラート を通知するボットの作成手順

 1. アラートを受け取るトピックの設定画面でボットを作成

このボットはメッセージを投稿する必要があるため、 Typetalk の API スコープの「 topic.post 」にチェックを入れてください。

Typetalk の API スコープ にチェックを入れます

2. ボットにアラートメッセージを投稿させるためのスクリプトを作成

シェルやPerlなどを使用し、システムの情報を読み取ってPOSTリクエストを送るスクリプトを作成します。

ソースコードの例:

#!/usr/bin/env bash

while read LINE
do
  TOTAL=`echo $LINE | perl -lne 'print $1 if /^Mem:\s*?([0-9]+)\s*?([0-9]+)/'`
  USED=`echo $LINE | perl -lne 'print $2 if /^Mem:\s*?([0-9]+)\s*?([0-9]+)/'`
  DIV=`echo "scale=3; $USED / $TOTAL * 100" | bc`
  INT=${DIV%.*}

  if [ $INT -gt 80 ]; then
    curl -d "message=メモリ使用率は $DIV パーセントです!" 'https://typetalk.com/api/v1/topics/$TOPIC_ID?typetalkToken=$TYPETALK_TOKEN'
  fi
done < <(free -tm | grep "Mem:")

3. Cron などの定期実行用ツールを使用してスクリプトを定期実行

手順2で作成したスクリプトを定期的に実行することで、システムの情報をTypetalkのトピックに投稿します。スクリプトを定期実行する方法は色々ありますが、crontabに追記してスケジューリングさせるのが最も手軽な方法の一つでしょう。

Typetalk ボット まとめ

システムアラートボットの作成手順は以上です。この記事の例に沿ってTypetalkボットを設定することで、メモリ高負荷の通知を Typetalk のトピックで受け取れます。

Typetalk API を活用することで、自分の目的にあわせた形でTypetalkの機能をカスタマイズできます。システムアラート以外の他の用途でもぜひ試してみてください。

Typetalk APIの活用事例はこちら