📖 Scenario: You are managing a RabbitMQ server that handles messages for a small online store. To keep the server healthy, you want to set up alarms that notify you when memory or disk space usage is too high.
🎯 Goal: Learn how to configure memory and disk alarms in RabbitMQ to prevent server overload and ensure smooth message processing.
📋 What You'll Learn
Create a RabbitMQ configuration dictionary with default settings
Add memory alarm threshold configuration
Add disk alarm threshold configuration
Print the final configuration dictionary
💡 Why This Matters
🌍 Real World
Setting memory and disk alarms helps prevent RabbitMQ servers from crashing due to resource exhaustion, keeping message processing reliable.
💼 Career
DevOps engineers often configure such alarms to maintain system stability and avoid downtime in production environments.
Progress0 / 4 steps
1
Create the initial RabbitMQ configuration dictionary
Create a dictionary called rabbitmq_config with a key default_user set to "guest" and a key default_pass set to "guest".
RabbitMQ
Hint
Use curly braces {} to create a dictionary and add the keys with their exact string values.
2
Add memory alarm threshold configuration
Add a key memory_alarm to rabbitmq_config with the value "40MB" to set the memory alarm threshold.
RabbitMQ
Hint
Add the new key and value inside the dictionary with a comma after the previous entry.
3
Add disk alarm threshold configuration
Add a key disk_alarm to rabbitmq_config with the value "1GB" to set the disk alarm threshold.
RabbitMQ
Hint
Remember to add a comma after the previous key-value pair before adding the new one.
4
Print the final RabbitMQ configuration
Write a print statement to display the rabbitmq_config dictionary.
RabbitMQ
Hint
Use print(rabbitmq_config) to show the dictionary on the screen.
Practice
(1/5)
1. What is the main purpose of memory and disk alarms in RabbitMQ?
easy
A. To increase the speed of message delivery
B. To prevent RabbitMQ from running out of memory or disk space
C. To automatically delete old messages
D. To backup RabbitMQ data to the cloud
Solution
Step 1: Understand RabbitMQ resource management
Memory and disk alarms are designed to monitor resource usage to avoid crashes.
Step 2: Identify the role of alarms
They stop RabbitMQ from accepting more messages when resources are low, protecting stability.
Final Answer:
To prevent RabbitMQ from running out of memory or disk space -> Option B
Quick Check:
Memory and disk alarms protect resources = B [OK]
Hint: Alarms stop resource exhaustion to keep RabbitMQ stable [OK]
Common Mistakes:
Thinking alarms speed up message delivery
Confusing alarms with backup features
Assuming alarms delete messages automatically
2. Which rabbitmqctl command correctly clears a memory alarm?
easy
A. rabbitmqctl clear_memory_alarm --node node@hostname
B. rabbitmqctl clear_memory_alarm node
C. rabbitmqctl clear_memory_alarm --node=node@hostname
D. rabbitmqctl clear_memory_alarm
Solution
Step 1: Recall correct syntax for clearing alarms
The command requires the node name as an argument with the --node flag.
3. What will be the output of this command if a disk alarm is active on node rabbit@server1?
rabbitmqctl -n rabbit@server1 list_alarms
medium
A. Error: node not found
B. rabbit@server1 memory
C. []
D. rabbit@server1 disk
Solution
Step 1: Understand list_alarms command output
This command lists active alarms on the specified node in table format.
Step 2: Match alarm type with output
If a disk alarm is active, the output shows rabbit@server1 disk.
Final Answer:
rabbit@server1 disk -> Option D
Quick Check:
Active disk alarm shows rabbit@server1 disk [OK]
Hint: list_alarms shows active alarms in node\talarm table format [OK]
Common Mistakes:
Confusing memory alarm output with disk alarm
Expecting empty list when alarm is active
Assuming command errors if alarm exists
4. You run rabbitmqctl clear_disk_alarm rabbit@server1 but the disk alarm remains active. What is the most likely cause?
medium
A. The disk space is still below the threshold
B. The command syntax is incorrect
C. The node name is misspelled
D. RabbitMQ service is stopped
Solution
Step 1: Understand alarm clearing conditions
Clearing a disk alarm only works if disk space is above the configured threshold.
Step 2: Analyze why alarm persists
If disk space is still low, RabbitMQ keeps the alarm active despite the clear command.
Final Answer:
The disk space is still below the threshold -> Option A
Quick Check:
Alarm clears only if resource condition is met [OK]
Hint: Clear alarms only work if resource usage is back to normal [OK]
Common Mistakes:
Assuming command syntax error without checking disk space
Ignoring node name correctness
Not verifying RabbitMQ service status
5. You want to prevent RabbitMQ from raising a memory alarm until it uses 80% of available RAM instead of the default 40%. Which configuration change achieves this?
hard
A. Run rabbitmqctl set_memory_alarm_threshold 80
B. Set disk_free_limit = 80% in rabbitmq.conf
C. Set vm_memory_high_watermark = 0.8 in rabbitmq.conf
D. Increase system swap space to 80%
Solution
Step 1: Identify memory alarm threshold setting
The vm_memory_high_watermark setting controls memory alarm threshold as a fraction.
Step 2: Apply correct value for 80%
Setting vm_memory_high_watermark = 0.8 means alarm triggers at 80% memory use.
Final Answer:
Set vm_memory_high_watermark = 0.8 in rabbitmq.conf -> Option C