他に似たツールがあれば教えて欲しいです
ロードアベレージを監視して任意のコマンドを実行するコマンド - blog.nomadscafe.jp
いままで使ったことはなかったのですが、monit でできるはず、と思って実験。一般的には、負荷が上がったりプロセスが応答しなくなったら再起動、のような用途に使うツールです。
# /etc/monit/monitrc check system localhost start program = "/path/to/command" if loadavg (1min) > 2 then start
[追記] exec を使うほうがよいとのご指摘をコメントでいただきました。
check system localhost if loadavg (1min) > 2 then exec "/path/to/command"
これでロードアベレージの1分平均が2を超えた場合に /path/to/command が実行されます。
ログはこんな感じで出ました。
[JST Jul 26 15:48:00] error : 'localhost' loadavg(1min) of 2.4 matches resource limit [loadavg(1min)>2] [JST Jul 26 15:48:00] info : 'localhost' start: /path/to/command
トリガにするものはロードアベレージ以外にも、CPUやメモリ、ディスクの使用率、ファイルのサイズやタイムスタンプ、属性、TCPのポートに反応があるかなど。いろいろなものが使えます。
組み込みの Web UI もあって、状態をブラウザで見たり監視を止めたりもできると。 http://mmonit.com/monit/screenshots/
なかなか便利そうですね。