RabbitMQ остановил приём сообщений: мало места на диске
disk resource limit alarm set on node, Free disk space is insufficient: RabbitMQ блокирует публикацию, сервисы Directum RX перестают обмениваться сообщениями. Как снять тревогу.
Что это значит
Свободного места на диске брокера стало меньше порога disk_free_limit. RabbitMQ в этом состоянии блокирует всех, кто публикует сообщения, чтобы не потерять уже принятые. Чтение продолжается. Для RX это выглядит так: задания не уходят, уведомления не приходят, сервисы пишут о недоступности брокера и могут перезапускаться.
Порог бывает задан числом (например 2 ГБ) или долей от памяти. Отдельная ловушка: том меньше или равен порогу. Тогда тревога не снимется никогда, даже на пустом диске.
Как проверить
rabbitmq-diagnostics status | grep -i -A3 "disk"
rabbitmqctl list_queues name messages | sort -k2 -n | tail
df -h /var/lib/rabbitmq
Сравните строки Free disk space и Free disk space low watermark. В интерфейсе управления тревога видна красным на странице узла.
Что сделать
- Освободить место или расширить том. Тревога снимется сама, как только свободного станет больше порога.
- Найти, что занимает диск: накопившиеся очереди без обработчика или журналы брокера.
- Проверить соотношение: том должен быть в несколько раз больше
disk_free_limit. Том 2 ГБ при пороге 2 ГБ неработоспособен. - Поставить наблюдение за свободным местом брокера. rxdoctor показывает это пунктом MQ-04.