2015年4月8日水曜日

HAProxyを監視するNagiosプラグイン

Clay Junell macbook air https://www.flickr.com/photos/slopjop/3342521518

http://exchange.nagios.org/directory/Plugins/Network-Connections,-Stats-and-Bandwidth/HAProxy-check/details
HAProxyを監視するNagiosプラグインです。
HAProxy配下のサーバのアップダウンや、セッション数にしきい値を設けてアラート出来ます。


以下、セットアップ方法です。

HAProxyのステータスを取得できるようにしておきます。
# vim /etc/haproxy/haproxy.cfg

#---------------------------------------------------------------------
# stats
#---------------------------------------------------------------------
listen stats 127.0.0.1:1919
    mode http
    stats uri /haproxy-status

# service haproxy reload
# curl '127.0.0.1:1919/haproxy-status?stats;csv'
ソースを取得。
# wget https://raw.githubusercontent.com/benprew/nagios-checks/master/check_haproxy.rb --no-check-certificate
動作確認。
# ruby check_haproxy.rb -u http://127.0.0.1:1919/haproxy-status -w 80 -c 90

    -u, --url URL                    Statistics URL to check (eg. http://demo.1wt.eu/)
    -p, --proxies [PROXIES]          Only check these proxies (eg. proxy1,proxy2,proxylive)
    -U, --user [USER]                Basic auth user to login as
    -P, --password [PASSWORD]        Basic auth password
    -w, --warning [WARNING]          Pct of active sessions (eg 85, 90)
    -c, --critical [CRITICAL]        Pct of active sessions (eg 90, 95)
    -h, --help                       Display this screen

正常時
$ ruby check_haproxy.rb -u http://127.0.0.1:1919/haproxy-status -w 80 -c 90
HAPROXY OK: 4 proxies found
mysql: UP active mysql1
mysql: UP active mysql2
redis: UP active redis1
redis: UP active redis2
異常時
$ ruby check_haproxy.rb -u http://127.0.0.1:1919/haproxy-status -w 80 -c 90
HAPROXY WARN: mysql: DOWN active mysql2
mysql: UP active mysql1
mysql: DOWN active mysql2
redis: UP active redis1
redis: UP active redis2

あとは、このスクリプトをnagiosに設定しておけばOKです。