Linuxサーバを運用する際に、重要になってくるのがプロセスの監視。
絶対落ちたらダメなプロセスを監視して、何かあった際にスムーズに復旧できるようにしておくことは非常に重要になってきます。
AWSの場合、cloudwatchで監視をすることはできますが、プロセス監視まですることが困難。
ましてや自動復旧ともなると、さらに困難になってきます。
そこで、オープンソースのプロセス監視ツール「monit」を使う方法をメモします。
monitは設定が簡単なので、導入するにあたり敷居が低いです。
monitのインストール方法
インストールも簡単。
yumのコマンドを叩くだけです。
# yum install monit
monitを使った監視の設定
monitを使った監視の設定をメモします。
pidファイルの監視
ネットで検索すると大体ヒットするのが、pidのファイルの死活監視をする方法です。
tomcatを監視する場合は、こんな感じの設定です。
pidファイル監視の設定
check process tomcat with pidfile /var/run/tomcat8.pid
start program = "/etc/init.d/tomcat8 start"
stop program = "/etc/init.d/tomcat8 stop"
if 5 restarts within 5 cycles then unmonitor
基本的にはこの方法で良いと思うのですが、pidファイルが無いソフトや、何らかの事情でpidファイルが残ったままソフトが停止した場合、この監視方法ではプロセスの停止を検知することができません。
プロセスの監視
上記とは違う方法として、プロセス自体を監視する方法もあります。
※この方法は、monitのバージョンが「」以上から使うことができるようになっています。
monitのバージョンを確認する方法
# monit -V
This is Monit version 5.2.5
Copyright (C) 2000-2011 Tildeslash Ltd. All Rights Reserved.
プロセス監視の設定
check process matching "tomcat"
start program = "/etc/init.d/tomcat8 start"
stop program = "/etc/init.d/tomcat8 stop"
if 5 restarts within 5 cycles then unmonitor
ちなみに、設定するプロセス名が正しいかどうか、確認するコマンドも用意されています。
# monit procmatch "tomcat"
List of processes matching pattern "tomcat":
------------------------------------------
/usr/lib/jvm/jre/bin/java -Djava.security.egd=file:/dev/./urandom -Djava.security.egd=file:/dev/./urandom -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -classpath :/usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat8 -Dcatalina.home=/usr/share/tomcat8 -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat8/temp -Djava.util.logging.config.file=/usr/share/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start
------------------------------------------
Total matches: 1
その他、monitを使ってできること
ちなみに、monitでは他にも以下のようなことができます。
今回はやりませんでしたが、もっと細かい項目の監視や、プロセス再起動と同時にメールを送るようなことも可能です。
- アラートメール送信
- CPU、メモリ監視
- タイムスタンプのチェック
- ロードアベレージ
コメント