监控Mongrel队列长度

时间:2009-01-20 21:37:48

标签: ruby-on-rails monitoring mongrel

我有Apache + Haproxy + Mongrel群集设置。我想在Mongrel队列长度过高时收到警报。

如何获取当前的Mongrel队列长度并使其可用于Monit和Nagios等警报工具?

我知道Haproxy有关于Mongrel队列的信息,因为它智能地向群集中最不忙的Mongrel发送请求。我想知道它是怎么发现的?我需要一种类似的机制来在这种情况到来时生成警报和/或重启mongrel。

2 个答案:

答案 0 :(得分:1)

将此添加到您的haproxy配置

        stats uri /haproxy/hastats

然后使用lynx获取如下统计信息: (假设haproxy在端口10000上运行 - 调整以适应)

 lynx --dump http://my-server:10000/haproxy/hastats

每个haproxy配置文件中的每个服务器条目都会有一行,告诉你它是上升还是下降,它的队列有多长,如下所示:

            Server                 Queue             Sessions                    Errors
  Name    Weight Status Act. Bck. Curr. Max. Curr. Max. Limit  Cumul.   Conn. Resp. Sec. Check Down
primary     1      UP    Y    -      0    0    68  386     - 134385861   207   699    0  7028  150
secondary    1      UP    Y    -      0    0    71  248     - 134464984   216   551    0  7129   98

现在您只需要一个脚本来获取当前队列(第6列)并将其提供给nagios,然后您就离开了!

答案 1 :(得分:0)

New Relic的RPM产品(www.newrelic.com)维护有关Mongrel队列长度的信息。它们有一个API,您可以使用它来获得接近队列长度的实时反馈并相应地调整负载平衡。

您可以在https://newrelic.tenderapp.com/faqs/docs/data-api

获取有关API的更多信息

希望这能提供一些帮助。