Application - RabbitMQ - Node Opspack

RabbitMQ is message-queueing software, commonly labeled as a message broker or queue manager, that provides a method of exchanging data between processes, applications, and servers. It is a software where queues can be defined and gives your applications a common platform to send/receive messages and a secure place for them to reside until the message is received.

Here are a few highlight features of RabbitMQ:

What You Can Monitor Copied

Opsview’s RabbitMQ Opspack is designed to pull important information from the RabbitMQ management API using your RabbitMQ credentials. If you are looking to build a hierarchy of your RabbitMQ infrastructure, we can help. Opsview can raise a notification, monitor using our time series graphs and even tie into a larger dashboard view for important services such as IO issues, memory utilization and more. Once downloaded, you can set notifications and thresholds within a few clicks.

Service Checks Copied

Service Check Description
check_mem_alarm Returns critical if the memory alarm has gone off
context_switches_details Rate at which context switching takes place on this node during last statistics interval
disk_free Disk free space in bytes, will go critical if the disk_free_alarm is true
fd_left Number of file descriptors remaining
fd_used Percentage of file descriptors used
io_read_avg_time Average wait time (ms) for each disk read operation in the last statistics interval
io_read_count Rate of read operations by the persister in the last statistics interval
io_seek_avg_time Average wait time (ms) for each seek operation in the last statistics interval
io_sync_avg_time Average wait time (ms) for each fsync() operation in the last statistics interval
io_write_avg_time Average wait time (ms) for each disk write operation in the last statistics interval
io_write_count Rate of write operations by the persister in the last statistics interval
mem_used Total memory used
running Whether or not this node is up.
sockets_left File descriptors available for use as sockets remaining
sockets_used Percentage of file descriptors used as sockets

Setup RabbitMQ for Monitoring Copied

Enabling the management API is done using the below command on the host to monitor:

rabbitmq-plugins enable rabbitmq_management

A new user for RabbitMQ with permissions - “monitoring” should be created, as node level data is required.

Example basic rabbitmq.config file:

[
    {rabbit,
        [
            %% if want to test, using user/pass
            %% guest/guest - and monitor from a non-loopback interface
            %% uncomment next line to allow connections from any ip
            {loopback_users, []},
            %% In milliseconds
            {collect_statistics_interval,    300000}
        ]
    },
    {rabbitmq_management,
        [
            %% should be set to basic or detailed
            {rates_mode,    basic},
            %% change port to query management api here
            {listener,        [{port,    15672}]},
            {sample_retention_policies,
                %% list of {maxAgeSeconds,sampleEveryNSeconds}
                [
                    {global,    [{30000,300}]},
                    {basic,        [{30000,300}]}
                ]
            }
        ]
    }
].

Note

For more details see Enabling the Management API.

Setup and Configuration Copied

Add the Host Template Copied

Add the Application - RabbitMQ Node Host Template to your Opsview Monitor host.

Note

For more information, refer to the documentation on Adding Host Templates to Hosts.

Add and configure variables required for this host Copied

Variable Description
RABBITMQ_CREDENTIALS Used for authenticating with the remote host. Override the Username, Password, Node Name and Port with your configuration details.

Note

For more information, refer to the documentation on Adding Variables to Hosts.

Apply Changes Copied

Apply Changes and the system will then be monitored:

View Service Checks

["Opsview On-Premises"] ["Opsview > Opspacks"] ["User Guide", "Technical Reference"]

Was this topic helpful?