雑多なノート

プログラミング初心者がメモとかを書きます。基礎的なこともメモとして。偏食系のアニオタ。

MySQLの死と監視スクリプト

MySQLサーバーがいつの間にか落ちてた.理由はわからん.

というわけでWEBアプリとスマホアプリ用APIを動かしているサーバーのMySQLが落ちていた.
アプリ使ってくれている人からの問い合わせで気づいた.
最近忙しくて放置気味だったから全く気付かなかった.
ありがたいとともに申し訳ない.


ログ見てもそれらしい記述がなくて原因は不明なので,落ちたときにすぐ気づける体制を整えることにした.
本当は原因突き止めるべきなんだろうけど.

以下のスクリプトをcronで定期実行することによって今後MySQLが落ちたときはメールで通知が行くようにした.

# coding: utf-8                                                                                                                                        
import MySQLdb
import os
import traceback

#MySQL起動確認                                                                                                                                         
try :
    connection = MySQLdb.connect(db='DB_NAME',user='USER',charset='utf8mb4')
except :
    message = traceback.format_exc()
    f = open("error.mail","w")
    f.write("MySQLサーバーに接続できません\nTraceback:\n "+message)
    f.close()
    os.system('cat error.mail | mail -s "サーバーエラー" -r rabbit@vayacico.com ????????????@softbank.ne.jp')
    os._exit(0)

MySQLに接続して例外吐いたらメールを送るシンプルなスクリプト
本当はGmailに通知したかったけど迷惑メールチェックで弾かれるのか届かないので迷惑メールチェック弱そうなソフトバンクで受け取ることにした.
今後はAPI叩いて正当性確認する処理も追加したい.