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叩いて正当性確認する処理も追加したい.