[PYTHON] [blackbird-rabbitmq] Monitor rabbitmq with blackbird

blackbird rabbitmq plugin

This plugin gets various information from rabbitmq's API and sends the data to backend

In the environment at hand, check with the version of rabbitmq below

Install

blackbird body

Please install by referring to here

Install rabbitmq plugin

You can either use setup.py or rpm.

install with setup.py

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

install with rpm

yum install blackbird-rabbitmq --enablerepo=blackbird

Enable management plugin on rabbitmq side

The rabbitmq API is provided by the management plugin, so please enable it.

$ sudo rabbitmq-plugins enable rabbitmq_management

I think some dependencies will enable other plugins as well

$ 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

I think port 15672 will be Listen by default (55672 if version is older)

Set plugin

config is in /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

If you have changed the user and pass when getting with API, please set above

The default monitoring interval is 60 seconds, but if you want to change it

ini:/etc/blackbird/conf.d/rabbitmq.cfg


interval = 30

Please specify as

Reboot blackbird when you're done

sudo /etc/init.d/blackbird restart

Check if data is coming in on Zabbix

Zabbix Template can be found in github repository Please import to Zabbix and apply to the target server

** If the host name on Zabbix and the host name of the server on which blackbird is running are different, you need to set the hostname on /etc/blackbird/conf.d/rabbitmq.cfg ** Please match with Zabbix

ini:/etc/blackbird/conf.d/rabbitmq.cfg


hostname = your_static_hostname

About discovery

Find the names of vhost and queue in discovery Also, in the above Zabbix Template, Trigger will increase when the number of queue exceeds 2000 and 5000, so please change the threshold as appropriate. It can be set with macro {$ TRG_RABBITMQ_QUEUE_CRIT} and {$ TRG_RABBITMQ_QUEUE_WARN} on Zabbix Template.

Recommended Posts

[blackbird-rabbitmq] Monitor rabbitmq with blackbird
[blackbird-redis] Monitor Redis with blackbird
[blackbird-nginx] Monitor Nginx with blackbird
[blackbird-aerospike] Monitor Aerospike with blackbird
[blackbird-xfs] Monitor xfs with blackbird
[blackbird-mysql] Monitor mysql with blackbird
[blackbird-memcached] Monitor Memcached with blackbird
[blackbird-fio-status] Monitor ioDrive (Fusion-IO) with blackbird
[blackbird-named] Monitor Bind (named) with blackbird
[blackbird-ntp] Monitor ntpq information (offset, jitter, etc.) with blackbird
Monitor Tomcat process with Zabbix-agent
Monitor Python web apps with Prometheus
Monitor Python application performance with Dynatrace ♪
Monitor ISC DHCP status with ZABBIX