gosoly

ゆっくりと趣味に浸る。

サーバーのアラートにBotkitを使う

f:id:ban367:20171211003241p:plain

CloudGarage Advent Calendar 2017 11日目です。

はじめに

CloudGarageにはモニタリング機能ないなぁ〜っと思ったので、Botkitを導入し有事の際はSlackに流してもらおうっという内容です。

今回はディスク容量のチェックを行います。
※個人的にawkコマンドの復習を兼ねてます。

やってることはシェルで監視して条件に引っかかった時にslackに飛ばしているだけです。

サーバー設定

  • Ubuntu-16.04-64bit
  • ポート:全開放

面倒なので、ひとまずポートは全開放。

下ごしらえ

apt-get update
apt-get upgrade

とりあえず更新。

SlackへBotユーザーの追加

チーム名を置き換えて以下のURLへアクセス

https://<チーム名>.slack.com/apps

検索エリアにBotsっと入力しBotsの設定へ移動

そのままbotユーザーを作成しAPIトークンをメモ

Node.js、npmのインストール

デフォルトのバージョンが古いので新しいバージョンの取得

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

nodeのインストール

apt-get install -y nodejs

npmのインストール

apt-get install -y npm

npmの更新

npm update -g npm

Botkitのインストール

インストール用に適当なディレクトリを作成して移動

mkdir ~/slackbot;cd $_

インストール

npm init -y
npm install botkit --save

プログラム設置

ボットのプログラム(index.js)を設置
下記に本題のプログラムを紹介

起動

token=<slackのAPIトークン> node index.js

ディスク容量の通知

監視用にcronのnpmをインストール

npm install --save botkit cron

以下のプロウラムを先程のindex.jsとして保存し実行

プログラム内容

5分ごとにディスクの容量を確認し、使用率80%を超えている際にbot-testチャンネルへ通知を行います。

かんたんに動作テスト。

f:id:ban367:20171210235535p:plain:w400

こんな感じで80%を超えると動作するたびにマッスルマッスル言い出します。

クーロンでシェルスクリプトを回しているだけですので、コピペしていただければ色んなパターンをそのまま増やせると思います。

まとめ

Botkitを使うと、結構かんたんにボットが作れる(小並感)
以前はHubotも使ってみたが、個人的にはBotkitの方に一票を入れたい。

また自動起動とかの設定はしていないので、本格的に監視を行う際にはforeverあたりで設定を作ってあげると、もっと幸せになれます。

以上で11日目の記事とさせていただきます。
お次は、@FITNCCさんです。よろしくお願いします!

P.S.
長いコード貼り付ける際にはGitHubのGist便利ですね(笑)