RabbitMQ (Windows)

Version 4

    This template retrieves the replication status of a RabbitMQ server installed on a Windows node.

     

    Prerequisites: WinRM must be installed and properly configured on the target server and WMI access to the target server.

    Credentials: RabbitMQ installation user.

    This template was tested on RabbitMQ 3.3.4.

     

    Note: Before using this template, the correct argument should be set in all script monitors. All monitors require the following arguments:
    path_to_rabbitmqctl
    where
    path_to_rabbitmqctl - This is full path to rabbitmqctl command.

    Below is an example using the Scripts Arguments field:
    C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.3.4\sbin\rabbitmqctl.bat


    Monitored Components

    Memory Usage

    The returned values are as follows:

         Total – This component returns the total memory usage of RabbitMQ.

         Connections – This component returns the connections memory usage. This includes memory used by incoming connections and channels, and outgoing ones if the appropriate plugins are loaded. It also includes memory used by the SSL system.

         Queues – This component returns the memory usage by individual queue processes. Note that queues will swap their contents out to disk when under memory pressure. Message bodies do not show up here but in Binaries.

         Plugins – This component returns the plugins memory usage. Note that RabbitMQ will count some per-connection memory here for protocol plugins such as STOMP and MQTT.

         Other Process Memory – This component returns the other process memory usage. This is memory belonging to processes not counted above, and memory assigned to "processes" by the Erlang VM, but not to any one process. Memory that has recently been garbage collected can show up here briefly.

         Mnesia – This component returns the Mnesia memory usage. Mnesia keeps an in-memory copy of all its data (even on disk nodes). Typically this will only be large when there are a large number of queues, exchanges, bindings, users or virtual hosts.

         Management Database – This component returns the management database memory usage. In a cluster, this will only be present on one node.

         Message Store Index – This component returns the message store index memory usage. The default message store implementation keeps an in-memory index of all messages, including those paged out to disk.

         Other ETS Tables – This component returns the other ETS tables memory usage.

         Binaries – This component returns the memory usage by shared binary data in the Erlang VM. In-memory message bodies show up here.

     

    RabbitMQ Status

    The returned values are as follows:

         Free Disk Space– This component returns free disk space on RabbitMQ drive.

         File Descriptors Used– This component returns the number of used file descriptors.

         Sockets Used– This component returns the number of used sockets.

         Processes Used– This component returns the number of used processes.

         Uptime – This component returns the RabbitMQ uptime.

     

    Messages in Queues

    The returned values are as follows:

         Ready Messages– This component returns the number of messages ready to be delivered to clients in all queues.

         Unacknowledged Messages– This component returns the number of messages delivered to clients but not yet acknowledged in all queues.

         Total Messages– This component returns the sum of ready and unacknowledged messages (queue depth) in all queues.

         Queues– This component returns the total number of all queues.

     

    Connections

    The returned values are as follows:

         Starting– This component returns the number of connections in the Starting state.

         Tuning– This component returns the number of connections in the Tuning state.

         Opening– This component returns the number of connections in the Opening state.

         Running– This component returns the number of connections in the Running state.

         Blocking – This component returns the number of connections in the Blocking state.

         Blocked– This component returns the number of connections in the Blocked state.

         Closing – This component returns the number of connections in the Closing state.

         Closed – This component returns the number of connections in the Closed state.

         Total – This component returns the total number of connections.

     

    Exchanges

    The returned values are as follows:

         Direct– This component returns the number of Direct type exchanges.

         Fanout– This component returns the number of Fanout type exchanges.

         Headers– This component returns the number of Headers type exchanges.

         Topic– This component returns the number of Topic type exchanges.

         Total – This component returns the total number of exchanges.

     

    Bindings

    This component returns the number of active bindings.

     

    Channels

    This component returns the number of active channels, the logical containers executing most AMQP commands. This includes channels that are part of ordinary AMQP connections, and channels created by various plug-ins and other extensions.

     

    Consumers

    This component returns the number of consumers, i.e. subscriptions to a queue's message stream.

     

    TCP Port: amqp

    This component monitor tests the ability of an AMQP to accept incoming sessions. AMQP (Advanced Message Queuing Protocol) is a networking protocol that enables conforming client applications to communicate with conforming messaging middleware brokers. It monitors TCP port 5672.

     

    TCP Port: clustering

    This component monitor tests the ability of a RabbitMQ clustering to accept incoming sessions. It monitors TCP port 25672.

     

    Configuring Windows Remote Management (WinRM)

    1. 1. If not already done so, install PowerShell 2.0 and WinRM on the SAM and target servers. Powershell 2.0 can be found here: http://support.microsoft.com/kb/968930.
    2. 2. On the SAM server, open a command prompt as an administrator. To do this, perform the following step:
    • Go to the Start menu and right-click the cmd.exe and then select Run as Administrator.
    1. 3. Enter the following in the command prompt:
             winrm quickconfig
      winrm set winrm/config/client @{TrustedHosts="*"}
    2. 4. On the target server, open a command prompt as an Administrator and enter the following:
             winrm quickconfig
      winrm set winrm/config/client @{TrustedHosts="IP_ADDRESS"}

    where IP address is the IP address of your SAM server.

     

    Portions of this document are based on the following articles: https://www.rabbitmq.com/memory-use.html, http://www.rabbitmq.com/man/rabbitmqctl.1.man.html.

    Last updated: 2/04/2016

     

    RabbitMQ.png