hubotのcron使って簡単に死活監視から自動で再起動まで行う方法!

 - 

 -  >

 -  プログラミング

このブログは、最近AWSにサーバーを移したのですが、自前のサーバーでやっていると不具合やアクセス増加でApacheやmysqlが落ちて気付かずに放置してしまうのは怖いので、slackでよく使うbotであるhubotを利用して死活監視と自動での再起動を行っています。

slackからApache・mysql・linuxの再起動をできるようにしているので、やっぱり死活監視もslack上でできるようにしていたほうが楽です。

Monitor 1307227 960 720

hubotの作り方自体は他にもたくさんの記事があるので、そこを参考にして下さい。自分はherokuではなく、awsのamazone linuxに入れているので、最初はここを参考にしていました。
CentOSにHubotを導入してSlackと連携させる – Qiita

 

hubotでcron風に特定の時間に処理を実行させる方法 – Qiita
この記事を参考にcronの処理は書いています。

 

そして、これらのモジュールを使用しているので、事前にインストールする必要があります。

Timezoneは指定しなくても問題ないが、使う場合はtimeモジュールが必要とのこと。

Hubotで定期タスクを動かす – Qiitaより)

 

 

通知と再起動を一緒に

やり方としては、hubotでcronを実行し、1分に1回トップページにアクセスをし、タイトルをスクレイピングをし、データベースエラーになってたら、mysqlの再起動のコマンドを実行し、つながらなかったらApacheが落ちているので、Apache再起動のコマンドを実行するという流れです。コマンドの実行結果も返って来るので、もし再起動ができなかったら再度実行したり、OSの再起動を行うことでひとまずの対処できます。

再起動はhubotはこのブログと別のAWSサーバーにおいているので、そこからsshでログインして再起動用のシェルスクリプトを実行をしています。

また、詳しい要因はわからないのですが、このhubotを作るときにhubot-slackのバージョン指定を特に指定しないで作っていたのですが、hubot-slackのバージョンが4系だとcronだけが実行されないというエラーが発生していました。hubot-slackが4系で動かない場合は、3系にすればいちおう動きます。

 

Uptime Robotを併用して、確実な死活監視を!

あと、hubotだけではなく、bonitやUptime Robotも併用して死活監視は行っています。

自前で作っているhubotだけでは少し不安なので、外部サービスのUptime Robotも併用することで安心感が高まります。また、Uptime Robotもslackに通知を流せるので、slackに情報が集まる体制を簡単に作れます。(無料だと、最低の死活監視の間隔が5分なので、hubotは1分にしています。)

 

hubot・slack関連の記事はこの辺りが参考になりました。

Hubotで定期タスクを動かす – Qiita
hubotスクリプトの書き方とサンプル集 | mitc
CentOSにHubotを導入してSlackと連携させる – Qiita

 

Facebookでシェアする

Twitterでシェアする

はてなブックマークに追加

 更新をチェックする! follow us in feedly

カスタム検索

Popular Post

Copyright© 新卒フリーランサーのブログ!2016 All Rights Reserved.