3

サーバーの負荷が高くなると、Apache を正常に再起動すると、状況が制御下に戻るようです。そこで、次の構成で monit をセットアップしました。

set daemon 10
check system localhost
      if loadavg (1min) > 5 then exec "/etc/init.d/apache2 graceful"

そのため、10 秒ごとにサーバーの負荷をポーリングし、負荷が 5 を超えたら、Apache を適切に再起動します。しかし、それでは一時的に負荷が高くなり、デススパイラルに陥ってしまいます。私が望むのは、10 秒後に負荷が 5 以上であることを認識し、Apache を適切に再起動してから、5 分ほど待ってからその特定のメトリックを再度チェックすることです。

monitでこれを行う方法はありますか?

4

2 に答える 2

2

完全にモニター内ではありませんが、十分に近いです

set daemon 10
check system localhost
  if loadavg (1min) > 5 then unmonitor
  if loadavg (1min) > 5 then exec "/etc/init.d/apache2 graceful"
  if loadavg (1min) > 5 then exec "python /scripts/remonitor.py"

次に、次のような python スクリプトがあります。

import time, os

time.sleep(5*60)
os.system("monit monitor system")

したがって、これは次のようになります
。 1.「システム」の負荷が高くなりすぎたときに監視を解除し、死のスパイラルを防ぎます
2.Apacheを正常に再起動
します 3.「システム」を5分で再監視するスクリプトを開始します

于 2012-06-13T23:16:37.810 に答える