基本的にサーバの監視と言えば、ZabbixやNagiosを用いる方が多いのではないかと思います。
しかし、ブログ用途のWEBサーバを一つだけ監視するのにわざわざもう一つ監視用のサーバを構築するのは費用的にもしんどい面がありますよね。
そこで、サーバ自身が自分で監視して簡易な復旧対応が必要であれば対応をしてくれるのがmonitというソフトウェアです。
インストール自体も、epelにパッケージが公開されているのでyumコマンドでさくっとインストールできます。
epelのインストールは、省略するとしてmonitのインストールから簡単なコンフィグを紹介します。
monit導入について
①.monitのインストール
yum install --enablerepo=epel -y monit.x86_64
たったこの1行でインストールができます。
※64bit版なので、32bit版はyumのlistから見つけてください。
あと、epelのリポジトリがdisable(無効)になっていた場合のために明示的にenablerepoしてます。
②.monitのコンフィグを少し修正(CentOS7系)
デフォルトでも差し支えはないが、monitの起動直後にタイムラグを作るように記載します。
vi /etc/monitrc
1 2 3 |
set daemon 30 with start delay 60 |
※set daemonの下にwith start delay 60と追記します。
monitが起動後60秒は何もしないようになります。
diff /etc/monitrc.bak /etc/monitrc
1 2 3 4 5 6 7 8 9 10 11 |
--- /etc/monitrc.bak 2016-06-18 16:25:18.352199639 +0900 +++ /etc/monitrc 2016-06-18 16:25:41.118805520 +0900 @@ -17,6 +17,7 @@ ## Start Monit in the background (run as a daemon): # set daemon 30 # check services at 30 seconds intervals +with start delay 60 # with start delay 240 # optional: delay the first check by 4-minutes (by # # default Monit check immediately after Monit start) # |
** CentOS6系の場合はファイル名がmonit.confだったと思います。 **
③.続いてsshdを監視するコンフィグを定義(CentOS7系)
メインのコンフィグを触らずに/etc/monit.d/
配下がインクルードされるのでこちらに監視を定義したファイルを追加していく方が効率いいと思います。
cd /etc/monit.d/
vi sshd
1 2 3 4 5 6 7 |
check process sshd with pidfile "/var/run/sshd.pid" start program "/bin/systemctl start sshd" stop program "/bin/systemctl stop sshd" if failed port 22 protocol ssh with timeout 30 seconds then restart if 10 restarts within 10 cycles then unmonitor |
※このコンフィグでは、何をやってくれると言うかというと、sshdのプロセスが存在しなければsshdを再起動
SSHポートへの接続が30秒タイムアウトしたら、sshdを再起動
あとは、10回中、10回再起動の処理をした場合は監視が自動的に無効化されます。
まぁ、再起動で復旧しないものをいつまでも再起動していたって意味ないですからね…
** CentOS6系なら、start program
とstop program
をsystemctl
ではなくservice
で
対応してね **
④.monitを起動させます(CentOS7系)
systemctl start monit
** CentOS6系なら、service monit start
で起動して下さい **
●monitの状態を確認するには?
monit status
もしくはmonit summary
で確認できます。
●monitのコンフィグが正しいか確認するには?
monit -t
で確認できます。
●monitのコンフィグを再読み込み(reload)するには?
monit reload
で再読み込みができます。
参考サイト
https://mmonit.com/monit/documentation/monit.html