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 部分中有一行用於監視:

if failed port 25 protocol smtp then restart

根據 Apache 提供的服務,您可以測試請求(例如,request "/monit_token")而不是普通的 HTTP 回應。該請求可以是直接存取您的應用程式的內容,而不僅僅是靜態檔案。同樣,這取決於你在做什麼。

既然您已經安裝了 Postfix,那麼您應該考慮在 Postfix 宕機的情況下,Monit 警報實際上將如何發出。就我而言,我正在執行set mailserver gmail-smtp-in.l.google.com並將郵件發送到 gmail 帳戶,這樣我就不會依賴自己的郵件伺服器的功能來向我發送警報電子郵件。我還有一個 Gmail 過濾器,可以將警報訊息轉發到 SMS 網關,因此我會收到一條簡訊。

我也有類似這樣的配置:

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

沒有文件/.monit_is_running,因此此警報將始終每天觸發一次。這是 monit 本身的心跳,所以我知道它正在運行(一種「誰監視觀察者」的事情)。實際上,這是我從 Serverfault 上的某個人那裡得到的想法,但我不記得是誰立即提出的。

相關內容