【问题标题】:How can I make Monit run Sidekiq?如何让 Monit 运行 Sidekiq?
【发布时间】:2016-09-15 08:42:00
【问题描述】:

即使我在技术上知道该怎么做,我也会问这个问题。毕竟我已经在其他 3 台服务器上设置了这个环境。然而,在这个全新的 RHEL6 安装上,它却是难以置信的、难以置信的顽固。

这是我的/etc/monit.d/sidekiq_uploader.monitrc 文件中的一个条目:

# sidekiq worker 0
check process sidekiq_uploader_0
  with pidfile /var/run/sidekiq/uploader/sidekiq_0.pid
  start program = "/home/deploy/scripts/sidekiq uploader start production 0" with timeout 180 seconds
  stop program = "/home/deploy/scripts/sidekiq uploader stop production 0" with timeout 180 seconds
  group uploader_sidekiq

很简单,对吗?不工作。创建pid文件,在Rails项目log目录下创建日志文件,然后什么都没有。

也许最令人沮丧的是,我可以将上面的启动和停止命令剪切并粘贴到命令行中,并且它们完美地运行

/var/monit/log,一遍又一遍:

[EDT May 18 12:37:29] info     : Awakened by User defined signal 1
[EDT May 18 12:37:29] info     : 'sidekiq_uploader_0' start: /home/deploy/scripts/sidekiq
[EDT May 18 12:37:29] info     : 'sidekiq_uploader_0' start action done
[EDT May 18 12:37:59] error    : 'sidekiq_uploader_0' process is not running
[EDT May 18 12:37:59] info     : 'sidekiq_uploader_0' trying to restart

这是 Rails 日志中的唯一条目:

# Logfile created on 2016-05-18 12:37:21 -0400 by logger.rb/47272

至少没有帮助。当我只是在命令行运行启动命令时:

在 Rails /log 目录中创建日志,并创建 Rails production.log 文件。然后 sidekiq 日志文件包含:

# Logfile created on 2016-05-18 12:37:21 -0400 by logger.rb/47272
2016-05-18T17:45:13.303Z 24843 TID-oxfx4u7ko INFO: Booting Sidekiq 4.0.2 with redis options {:url=>"redis://redis:6379", :namespace=>"uploader"}
2016-05-18T17:45:14.061Z 24843 TID-oxfx4u7ko INFO: Running in ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
2016-05-18T17:45:14.061Z 24843 TID-oxfx4u7ko INFO: Sidekiq Pro 3.0.1 / Sidekiq Enterprise 1.1.0, commercially licensed.
2016-05-18T17:45:14.064Z 24843 TID-oxfx4u7ko INFO: Starting processing, hit Ctrl-C to stop
2016-05-18T17:45:14.126Z 24843 TID-oxfxm4ix8 INFO: Gained leadership of the cluster

【问题讨论】:

  • 你为什么使用 monit 而不是 Upstart?
  • 只是因为这是我所知道的,而且我过去已经成功了。
  • 我个人不是 monit 的粉丝。您可以使用 Sidekiq Enterprise 中的多进程支持来监控内存并重新启动臃肿的子进程:github.com/mperham/sidekiq/wiki/… 另请参阅我的 Inspeqtor 项目。
  • 谢谢 Mike,听起来我需要升级我的企业版。 big time 在我们的安装中,重新启动臃肿的孩子会派上用场。

标签: ruby-on-rails sidekiq monit


【解决方案1】:

由于某些未知原因,我不得不将 Monit 配置文件中的命令更改为:

start program = "/bin/bash -c '/home/deploy/scripts/sidekiq uploader start production 0 &>/home/deploy/sidekiq_0.out'" with timeout 180 seconds
stop program = "/bin/bash -c '/home/deploy/scripts/sidekiq uploader stop production 0'" with timeout 180 seconds

我不知道为什么,但现在可以了。

【讨论】:

    猜你喜欢
    • 2012-11-06
    • 2020-06-18
    • 2018-09-05
    • 1970-01-01
    • 2016-01-03
    • 2022-12-03
    • 2020-12-14
    • 2016-01-01
    • 1970-01-01
    相关资源
    最近更新 更多