我使用ruby 1.9.2p280部署Rubyonrails Web應用程序,使用apache乘客和delayed_job作爲後臺作業的rubyonrails 3.07。使用monit監控工具設置Delayed_job
我想監視我的乘客以及delayed_job後臺工作。
我找不到任何一步一步的指導。
非常感謝你
我使用ruby 1.9.2p280部署Rubyonrails Web應用程序,使用apache乘客和delayed_job作爲後臺作業的rubyonrails 3.07。使用monit監控工具設置Delayed_job
我想監視我的乘客以及delayed_job後臺工作。
我找不到任何一步一步的指導。
非常感謝你
添加以下.monitrc文件,如下一提,並運行命令monit reload
加載配置。
/etc/monit/web.monitrc
check process apache with pidfile /var/run/apache2.pid
start program = "/etc/init.d/apache2 start"
stop program = "/etc/init.d/apache2 stop"
if cpu > 80% for 5 cycles then restart
if totalmem > 300.0 MB for 5 cycles then restart
if children > 250 then alert
if failed port 80 with timeout 10 seconds then restart
if 3 restarts within 5 cycles then timeout
mode manual
group web
/etc/monit/delayed_job.monitrc
check process delayed_job with pidfile /mnt/<project>/tmp/pids/delayed_job.pid
start program = "/usr/bin/delayed_job_start"
stop program = "/usr/bin/delayed_job_stop"
mode manual
group delayed_job
的/ usr /斌/ delayed_job_start
#!/bin/sh
cd /mnt/<project> && RAILS_ENV=production ruby script/delayed_job start
對不起,我正在問apache,而不是nginx。我找不到任何幫助,例如:如果cpu使用率> 80%5個週期,然後重新啓動。這是什麼意思5個週期? – Dongo 2011-12-26 04:24:38
用apache更新了答案。週期數= monit檢查狀態的次數。當monit發現apache進程的CPU使用率連續5次檢查時大於85%時,它將重新啓動apache。 – 2011-12-26 10:39:15
只是一個更真實的快速問題,我找不到apache2的pid文件?我的系統中沒有/var/run/apache2.pid。怎麼了 ?當使用monit時,我必須停止我的系統中的apache2守護進程並讓monit啓動它嗎?非常感謝你的幫助 – Dongo 2011-12-27 02:21:19
根據我對DelayedJob的經驗,除非必須,否則我建議不要使用它。如果您正在部署到Heroku,請使用它,因爲這是可用的。但是,如果您可以設置自己的cron作業,那麼只需將表格中的記錄寫入表中,並詳細說明需要完成的操作,然後創建一個執行掛起操作的模塊或類方法。設置一個cron作業來讀取表格並執行掛起的動作:'rails runner「SomeModule.some_method」'。我不確定這是什麼意思你想要的監控,但你可能會更好沒有使用DelayedJob。 – 2011-12-25 04:14:02
我想監視我的web服務器進程和delayed_job進程。如果它們達到某個內存點或CPU時間百分比,那麼它們應該自動重新啓動。 delayed_job和乘客的內存消耗會隨着時間的推移而增加,最終可能會導致交換使用率高,導致它們無響應。 – Dongo 2011-12-26 04:22:31
@Steve爲什麼自己寫的類比「delayed_job」處理得更好?爲什麼要使用小時來開發而不是使用那裏的東西並且被廣泛使用? – 2013-03-22 11:11:30