我有一個Apache + Haproxy + Mongrel羣集設置。我希望在我的Mongrel隊列長度變得太高時收到警報。監測雜種隊列長度
如何獲取當前的Mongrel隊列長度並使其可用於警報工具,如Monit和Nagios?
我知道Haproxy具有有關Mongrel隊列的信息,因爲它智能地將請求發送到羣集中最不忙碌的Mongrel。我想知道它是如何發現的?我需要一個類似的機制來產生警報和/或在這樣的情況到來時重新啓動雜種。
我有一個Apache + Haproxy + Mongrel羣集設置。我希望在我的Mongrel隊列長度變得太高時收到警報。監測雜種隊列長度
如何獲取當前的Mongrel隊列長度並使其可用於警報工具,如Monit和Nagios?
我知道Haproxy具有有關Mongrel隊列的信息,因爲它智能地將請求發送到羣集中最不忙碌的Mongrel。我想知道它是如何發現的?我需要一個類似的機制來產生警報和/或在這樣的情況到來時重新啓動雜種。
添加到您的HAProxy的配置
stats uri /haproxy/hastats
然後用lynx來獲得這樣的統計: (假設端口10000 HAProxy的運行 - 調整以適應)
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,並且您離開了!
New Relic的RPM產品(www.newrelic.com)保留有關Mongrel隊列長度的信息。他們有一個API,您可以使用它來近乎實時地反饋隊列長度並相應地調整負載平衡。
你可以在對API的更多信息:https://newrelic.tenderapp.com/faqs/docs/data-api
希望提供一些幫助。