[blackbird-rabbitmq] blackbird で rabbitmq をモニタリングする

# blackbird rabbitmq plugin

この plugin では rabbitmq の API から様々な情報を取得し、backend にデータを送信します

手元の環境では下記の rabbitmq の version で確認してます


* rabbitmq 3.2
* rabbitmq 3.3
* rabbitmq 3.4

# Install

## blackbird 本体

[こちら](http://qiita.com/makocchi/items/9166016b2ad4cc43e83f)を参考に install してください

## Install rabbitmq plugin

setup.py で入れる方法と rpm で入れる方法があります

### setup.py で install

```bash
git clone https://github.com/Vagrants/blackbird-rabbitmq.git
cd blackbird-rabbitmq
python setup.py install
```

### rpm で install

```bash
yum install blackbird-rabbitmq --enablerepo=blackbird
```

# rabbitmq 側で management plugin を有効にする

rabbitmq の API は management plugin によって提供されますので有効化してください

```shell-session
$ sudo rabbitmq-plugins enable rabbitmq_management
```

いくつか依存で他の plugin も有効になると思います

```shell-session
$ sudo rabbitmq-plugins list
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status:   * = running on rabbit@makocchi
 |/
[e*] amqp_client                       3.4.2
[  ] cowboy                            0.5.0-rmq3.4.2-git4b93c2d
[  ] eldap                             3.4.2-gite309de4
[e*] mochiweb                          2.7.0-rmq3.4.2-git680dba8
[  ] rabbitmq_amqp1_0                  3.4.2
[  ] rabbitmq_auth_backend_ldap        3.4.2
[  ] rabbitmq_auth_mechanism_ssl       3.4.2
[  ] rabbitmq_consistent_hash_exchange 3.4.2
[  ] rabbitmq_federation               3.4.2
[  ] rabbitmq_federation_management    3.4.2
[E*] rabbitmq_management               3.4.2
[e*] rabbitmq_management_agent         3.4.2
[  ] rabbitmq_management_visualiser    3.4.2
[  ] rabbitmq_mqtt                     3.4.2
[  ] rabbitmq_shovel                   3.4.2
[  ] rabbitmq_shovel_management        3.4.2
[  ] rabbitmq_stomp                    3.4.2
[  ] rabbitmq_test                     3.4.2
[  ] rabbitmq_tracing                  3.4.2
[e*] rabbitmq_web_dispatch             3.4.2
[  ] rabbitmq_web_stomp                3.4.2
[  ] rabbitmq_web_stomp_examples       3.4.2
[  ] sockjs                            0.3.4-rmq3.4.2-git3132eb9
[e*] webmachine                        1.10.3-rmq3.4.2-gite9359c7
```

デフォルトでは port 15672 が Listen になると思います (version が古いと 55672)

# plugin の設定をする

config は `/etc/blackbird/conf.d/rabbitmq.cfg` にあります

```ini:/etc/blackbird/conf.d/rabbitmq.cfg
[rabbitmq]
module = rabbitmq

# default values
#
#api_user = guest
#api_pass = guest
#api_host = localhost
#api_port = 15672
#timeout = 3
#ssl = False
```

API で取得する際の user と pass を変更している場合は上記で設定してください

監視の間隔は 60 秒がデフォルトですが、変更したい場合は

```ini:/etc/blackbird/conf.d/rabbitmq.cfg
interval = 30
```

のように指定してください

設定が終わったら `blackbird` を再起動させます

```bash
sudo /etc/init.d/blackbird restart
```

# Zabbix 上でデータが入ってきているか確認する

Zabbix の Template は [github の repository](https://github.com/Vagrants/blackbird-rabbitmq/tree/master/templates)にあります
Zabbix に import して対象のサーバーに適用させて下さい

**Zabbix 上の host 名と blackbird が起動しているサーバーの host 名が違う場合は `/etc/blackbird/conf.d/rabbitmq.cfg` 上で hostname を設定してあげる必要があります**
Zabbix 上と合わせてください

```ini:/etc/blackbird/conf.d/rabbitmq.cfg
hostname = your_static_hostname
```

# ディスカバリについて

`vhost` と `queue` の名前はディスカバリで見つけてきます
また上記 Zabbix Template では `queue` の数が 2000 と 5000 を超えた時に Trigger が上がるようになっていますので、適宜閾値を変えてください
Zabbix Template 上の macro `{$TRG_RABBITMQ_QUEUE_CRIT}` と `{$TRG_RABBITMQ_QUEUE_WARN}` にて設定可能です