Apache、MySQL、Postfix のモニター設定

Apache、MySQL、Postfix のモニター設定

以下の設定で、本番サーバー上で Monit を有効にする予定です。私は Monit をまったくの初心者なので、他の方からヒントを聞きたいです。また、皆さんの経験に基づいて、監視スクリプトを強化するために考慮すべき他のディレクティブがあるかどうかも知りたいです。

私のサーバーは CentOS 5.6 です。

ありがとう!

#httpd----
check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed host 127.0.0.1 port 80
protocol http then restart
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if 5 restarts within 5 cycles then timeout

#mysqld----
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if 5 restarts within 5 cycles then timeout

#postfix----
check process postfix with pidfile /var/spool/postfix/pid/master.pid
start program = "/etc/init.d/postfix start"
stop program  = "/etc/init.d/postfix stop"
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if 5 restarts within 5 cycles then timeout

答え1

私の Postfix セクションには、monit 用の行が追加されています。

if failed port 25 protocol smtp then restart

Apache によって提供される内容に応じて、単純な HTTP 応答ではなく、リクエスト (例: request "/monit_token") でテストできます。リクエストは、単なる静的ファイルではなく、アプリに直接アクセスするものにすることができます。繰り返しますが、これは何を実行しているかによって異なります。

Postfix がインストールされているのであれば、Postfix がダウンした場合に Monit アラートが実際にボックスから送信される方法を検討する必要があります。私の場合は、set mailserver gmail-smtp-in.l.google.comメールを Gmail アカウントに送信して、アラート メールの受信に自分のメール サーバーの機能に依存しないようにしています。また、アラート メッセージを SMS ゲートウェイに転送する Gmail フィルターも用意しているので、テキストが届きます。

次のような構成もあります:

check file alerttest with path /.monit_is_running
  alert [email protected] with reminder on 1440 cycles

ファイルがないので/.monit_is_running、このアラートは常に 1 日に 1 回ほどトリガーされます。これは monit 自体のハートビートなので、monit が実行中であることがわかります (「誰がウォッチャーを監視するか」のようなもの)。これは、実際には Serverfault の誰かから得たアイデアですが、誰から得たかはすぐには思い出せません。

関連情報