首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用monit监控delayed_job

如何使用monit监控delayed_job
EN

Stack Overflow用户
提问于 2009-08-04 08:30:23
回答 11查看 33.9K关注 0票数 74

网上有没有关于如何用Monit监控delayed_job的例子?

我能找到的所有东西都使用God,但我拒绝使用上帝,因为长时间运行的Ruby进程通常很糟糕。(上帝邮件列表中最新的帖子是什么?God Memory Usage Grows Steadily。)

更新: delayed_job现在提供了基于此问题的sample monit config

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-08-16 23:20:50

这就是我是如何让它工作的。

  1. 除了被积极维护外,还使用了collectiveidea fork of delayed_job,这个版本有一个很好的script/delayed_job守护进程,你可以和monit一起使用。铁路广播有关于这个版本的delayed_job (ASCIICasts version)的a good episode。这个脚本还有其他一些很好的特性,比如能够运行多个worker。我不会在这里讨论这一点。
  2. 安装monit。我是从源码安装的,因为Ubuntu的版本太过时了。我跟随these instructions获取了Ubuntu包中附带的标准init.d脚本。我还需要使用./configure --sysconfdir=/etc/monit进行配置,所以我选择了标准的Ubuntu配置目录。
  3. 编写了一个monit脚本。这是我想出来的:

check process delayed_job with pidfile /var/www/app/shared/pids/delayed_job.pid

start program = "/var/www/app/current/script/delayed_job -e production start"

stop program = "/var/www/app/current/script/delayed_job -e production stop"

我将其存储在我的资源控制系统中,并在/etc/monit/monitrc文件中使用include /var/www/app/current/config/monit指向它。

  1. 配置monit。
  2. These instructions写了一个任务,让它停止和启动。monit start delayed_jobmonit stop delayed_job是您想要运行的。我也会在部署时重新加载monit,以获取任何配置文件更改。

我遇到的问题:

要运行script/delayed_job,必须安装

  1. daemons gem。例如,您必须使用-e production将Rails环境传递给script/delayed_job
  2. 我使用的是Ruby企业版,所以我需要让monit从那个副本开始。由于Ubuntu中的sudo handles the PATH方式,我最终将/usr/bin/ruby/usr/bin/gem与REE版本进行了符号链接。

在调试monit时,我发现停止init.d版本并从th命令行运行它很有帮助,这样您就可以得到错误消息。否则,很难弄清楚为什么会出问题。

代码语言:javascript
复制
sudo /etc/init.d/monit stop
sudo monit start delayed_job

希望这能帮助下一个想要用monit监控delayed_job的人。

票数 97
EN

Stack Overflow用户

发布于 2009-11-12 22:55:31

无论如何,您可以始终使用/usr/bin/env和monit来设置环境。这在当前版本的delayed_job 1.8.4中尤其重要,该版本不推荐使用环境(-e)选项。

代码语言:javascript
复制
check process delayed_job with pidfile /var/app/shared/pids/delayed_job.pid
start program = "/usr/bin/env RAILS_ENV=production /var/app/current/script/delayed_job start"
stop  program = "/usr/bin/env RAILS_ENV=production /var/app/current/script/delayed_job stop"

在某些情况下,您可能还需要使用env设置路径。

票数 8
EN

Stack Overflow用户

发布于 2009-08-04 15:44:05

我不知道用Monit,但我已经写了一个couple Munin plugins来监控队列大小和平均作业运行时间。我在那个补丁中对delayed_job所做的更改也可能会让你更容易编写Monit插件,如果你坚持这样做的话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1226302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档