2018.07.18

Savamoni.の監視をSlackに通知する/WebAPIを利用する

難易度
2
カテゴリー
サーバー設定初心者向け

Webhook

お久しぶりです、株式会社ネットアシストの魚浦と申します。

前回の記事では、弊社無料サーバー監視ツールSavamoni. で、サーバーの異常検知がメールで確認できるまで、設定を行いました。

今回はさらにWebhookの機能を利用し、主に社内ツールで使われることが多いSlackへの通知設定方法と、Savamoni. Web API の紹介をさせていただこうと思います。

Savamoni.のメール通知について

以前紹介したSavamoni.の設定手順ではメールでの通知のみとなりますが、例えば複数の人数で検知を確認したい場合や、メールが「プッシュ」できない場合、異常検知に気づくまで時間がかかってしまう場合があるかと思います。
もちろんメールの受信を頻繁に行っても良いのですが、Savamoni.のWebhook機能とSlackを連携させる事により、この問題を解決しようと思います。

SlackからWebhookの利用設定を行う

ではまず、SlackからWebhookと連携するURLを取得するために、https://slack.com/services/new/incoming-webhookにアクセスしましょう。
すると「着信 Web フック」の設定画面が表示されると思います。

着信 Web フック画面

「チャンネルへの投稿」の設定画面から、通知したいチャンネルを選択し、「着信 Web フック インテグレーションの追加」をクリックします。
(今回は事前に専用の「# savamoni」チャンネルを作成し、複数人数で確認できるようにしています。)
チャンネルへの投稿画面

すると、Webhook URL が作成されるので、対象URLコピーしておきます。
Webhook URL

Savamoni.からWebhookの利用設定を行う

続けて、Savamoni.側からWebhookの利用設定を行います。
Savamoni.へログイン後、監視サーバーの画面から、監視設定編集ボタンをクリックします。サービス稼動状況一覧
監視サーバー画面に遷移しますので、ページ下部の「監視機能:Webhook通知を使う」をクリックします。
監視サーバー画面

さらに「監視機能:Webhook通知を使う」をクリックするとWebhook URL入力用画面が開くので、先ほどコピーしたWebhook設定用のURLをペーストします。
URLペースト画面

ここで一度「テスト送信」ボタンをクリックし、Slackに通知が来る事を確認しましょう。

Savamoni.からの通知が表示されました!
通知に成功したら、「保存」ボタンをクリックし、設定を保存しましょう。
これでSavamoni.とSlackの連携が完了しました!非常に簡単ですね。

サーバーの異常検知を確認する

では早速、実際に異常検知がSlackに通知されるか確認しましょう。
サーバー側でApacheを停止してみます。

[root@gmo-blog ~]# systemctl stop httpd

Slack上で異常検知の通知が来ました!
異常検知の通知

また、同時にスマートフォン版のSlackでも通知が来ました。

これでPCの前で待機せず、いつでもサーバーの状態が確認できますね。

Savamoni.で利用可能なWeb APIの紹介

これでSavamoni.の通知がSlack上から確認できるようになりましたが、Savamoni.に他にも利用可能なWebAPIが存在します。

詳しくは紹介ページと、サービス仕様書PDFを確認いただけますが、以下の機能がWebAPI経由で利用いただけます。

  • ・監視追加
  • ・監視削除
  • ・監視設定変更
  • ・監視停止
  • ・監視再開
  • ・監視設定検索。
  • ・監視設定一覧取得

では早速、簡単な利用手順と利用サンプルを紹介したいと思います。

Savamoni.WebAPIの利用手順

Savamoni.のWebAPIは、以下の手順で利用いただけます。

①リクエストヘッダに「X-SavaMoni-Auth」を設定する
②指定する値は「ログインメールアドレス=パスワード」をBase64でエンコードしたもの
③指定されたURLに、GETまたはPOSTでアクセスする

今回は、「監視設定一覧の取得」と、「監視停止」「監視再開」を試して見たいと思います。

Savamoni.WebAPIで監視停止・再開を行う

では、Savamoni.のログイン情報をBase64でエンコードします。
これがリクエストヘッダに設定する値になります。

# echo 'example@netassist.ne.jp=password'|openssl enc -e -base64
ZXhhbXBsZUBuZXRhc3Npc3QubmUuanA9cGFzc3dvcmQK

また、仕様書から「監視設定一覧の取得」のURLとHTTPメソッドを確認すると、
URLは「https://savamoni.com/apiv1/monitor/」、メソッドは「GET」なので、curlコマンドで確認してみます。

# curl -H 'X-SavaMoni-Auth:ZXhhbXBsZUBuZXRhc3Npc3QubmUuanA9cGFzc3dvcmQK' https://savamoni.com/apiv1/monitor/
{"status":"ok","apiStatusCode":200,"data":{"message":"Found","count":1,"watches":[{"watchId":"12345","watchName":"*****.jp ","watchAdress":"****.jp ","watchServices":"1,21,22,80,110,143,443,587","isWatchStarted":true,"agentKey":"*****"}]}}

JSON形式で値が返ってきました!
監視サーバーの数、監視ホストのID、ホスト名や監視サービスの一覧が出力されている事が確認できます。

では今度は「監視停止」と「監視再開」を試します。
仕様書を確認すると、監視開始のURLは「https://savamoni.com/apiv1/monitor/stop/watchId」、監視停止は「https://savamoni.com/apiv1/monitor/start/watchId」、メソッドは共に「PATCH」となっています。
またURL上の「wathid」は先ほど取得したJSONの値から「watches」にある値を指定します。

# curl -X PATCH -H 'X-SavaMoni-Auth:ZXhhbXBsZUBuZXRhc3Npc3QubmUuanA9cGFzc3dvcmQK' https://savamoni.com/apiv1/monitor/stop/12345
{"status":"ok","apiStatusCode":204,"data":{"message":"Stop Monitoring"}}

OKの値が返って来ました!

稼働状況

実際のSavamoni.の画面から確認しても、監視が停止されている事が分かります。

 

 

 

では同様に監視を再開してみます。

# curl -X PATCH -H 'X-SavaMoni-Auth:ZXhhbXBsZUBuZXRhc3Npc3QubmUuanA9cGFzc3dvcmQK' https://savamoni.com/apiv1/monitor/start/12345
{"status":"ok","apiStatusCode":203,"data":{"message":"Start Monitoring"}}

稼働状況

Savamoni.の画面からも監視再開が確認できました!こちらも非常に簡単ですね。

 

 

 

WebAPIを利用する事でSavamoni.の管理画面へログインする事なく、複数のサーバーへの監視設定や、監視の一斉停止・再開等も可能になります。
さらに便利にSavamoni.をご利用いただけるかと存じますので、ぜひWebAPIの機能も、お試しいただけますと幸いです。

おわりに

2回にわたり、GMOクラウドアカデミーブログをお借りし、弊社Savamoni.を紹介させていただきましたが、いかがでしょう、有償の監視サービスにも負けないサービスとご理解いただけたのではないでしょうか。
登録はメールですぐ可能となっておりますので、記事をお読みいただきましたら、ぜひ登録ページからまでお越しください。

また1点だけ、記事上ではお伝えしていない注意点がございます。
弊社有人監視サービスでは、電話・メールでのサポートを承っておりますが、Savamoni.のサポートは「お問い合わせフォームのみ」となり、電話でのサポートは致しておりませんので、ご了承をいただけますと幸いです。
最後までお読みくださり、ありがとうございました!

この記事を書いた人

株式会社ネットアシスト魚浦 隆志

株式会社ネットアシスト
監視運用チーム所属社員
https://www.netassist.ne.jp/
復旧優先を合言葉に、安定したサーバー運用を目指しています。
Nginxとスプラトゥーン2が好きなエンジニアです。

GMOクラウドアカデミーYouTubeチャンネルはこちらから

アカデミー用バナー

メルマガ会員募集中!

アカデミーの最新情報や会員限定のお得な情報をお届けします。

メルマガ登録はこちら