・概要
サービス提供を伴うサーバを運用している限り、該当するプロセスについて監視をすることが必須となっている昨今ですが、これをとりあえずお手軽にやってみようスクリプトを作成します。
・やること
今回監視の対象としたのはデータベースである「mysql」としました。私が運用していたサーバでは「mariadb」を利用していましたが、動いているプロセスはmysqlなので、どちらでも適用できそうです。
やることは単純で、以下の通りとします。
・監視するプロセスは「mysql」
・監視間隔は5分
・実行スクリプトにはpythonを使用
では早速始めてみましょう。
・適用するスクリプト
今回作業ユーザは「root」を想定しています。環境に合わせて適宜変更ください。
以下のようにファイルを記述し、「mysql_check.py」として保存します。
#ライブラリのインポート
import os
#Linuxコマンドを実行するための引数指定
check1 = "mysqladmin ping"
check2 = "logger [Error]mysql was error. because process restart."
check3 = "systemctl restart mariadb"
#mysqlのプロセスチェック、0以外の数値はプロセスが落ちているので再起動を実行する処理
check0 = os.system(check1)
if check0 != 0:
os.system(check3)
os.system(check2)
定期監視させるために、cronへ登録します。
crontab -e
5 * * * * python /root/mysql_check.py
これで5分おきに監視が実行されるようになりました。
・まとめ
サーバ運用において、スモールスタートする時なんかには丁度良い監視方法だとおみます。
また、実運用に乗せる場合には必ず検証・評価は実施しておきましょう。