monitを導入して監視運用を自動化しました

基本的にサーバの監視と言えば、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

※set daemonの下にwith start delay 60と追記します。
 monitが起動後60秒は何もしないようになります。

diff /etc/monitrc.bak /etc/monitrc

** CentOS6系の場合はファイル名がmonit.confだったと思います。 **

③.続いてsshdを監視するコンフィグを定義(CentOS7系)
メインのコンフィグを触らずに/etc/monit.d/配下がインクルードされるのでこちらに監視を定義したファイルを追加していく方が効率いいと思います。
cd /etc/monit.d/
vi sshd

※このコンフィグでは、何をやってくれると言うかというと、sshdのプロセスが存在しなければsshdを再起動
 SSHポートへの接続が30秒タイムアウトしたら、sshdを再起動
 あとは、10回中、10回再起動の処理をした場合は監視が自動的に無効化されます。
 まぁ、再起動で復旧しないものをいつまでも再起動していたって意味ないですからね…

** CentOS6系なら、start programstop programsystemctlではなく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