ガチャつくブログ

IT系のお勉強のために、やってみたことをアウトプットしていきます。

MENU

Microsoft Teams でガチャつく - サーバーのDisk容量監視をサクッと -

f:id:tmt-tty:20191207153527p:plain

はじめに

ども、ガチャつく野郎2.0(@_tamitom)です。

TeamsのIncoming Webhookを使用して、サーバーの監視通知をサクッと実装したいと思います。

Disk容量がしきい値(80%とか)を超えたらTeamsの特定のチャネルに投稿する様にします。

 

ガチャつき方

TeamsのIncoming Webhookを使用します。

有効化については下記の記事にまとめていますので、参考にしてください。

www.gachatsuku.com

 

Webhookが設定できたら、後はサーバー側でWebhookURLにPOSTする仕組みをShell scriptで実装していきます。

下記のShell scriptを用意します。

※今回は /dev/vda1 を監視していますが、環境に合わせて変更してください。

※[ Webhook URL ]にTeamsで設定したWebhookのURLを入れてください。

 

diskcheck.sh

#!/bin/sh

# ディスク使用率閾値(%)
shikii_1=80

# Teams投稿用データ
postdata=`hostname &&  date && df -h | grep /dev/vda1`

# ディスクチェック処理
used_1=` df -h | grep /dev/vda1 | awk '{ print $5 }' | sed -e '$s/.$//' `

# 閾値チェック
if [ $used_1 -gt $shikii_1 ]
  then
    curl -X POST -H 'Content-Type: application/json' --data '{"text":"'"$postdata"'"}' [ Webhook URL ]
fi

 

このShell script を定期的に実行する様にcronを設定します。

毎時0分に実行する様にしています。

# crontab -e

#diskcheck
0 * * * * /home/user/diskcheck.sh

 

これで設定完了です。

しきい値を超えた場合は、下記の様な通知がTeamsに届きます。

 

f:id:tmt-tty:20191207152645p:plain

 

終わりに

今まで監視といえばメールでの通知が一般的だと思いますが、SMTPサーバを用意しなければならないなど、まぁまぁ手間がかかります。

http通信さえできれば、Webhookでサクッと受けられて通知ができるので、便利な時代になったなぁと思います。

取り敢えず監視しときたい、、ぐらいのレベルであればこれぐれいで良いのかなぁと。