• Русский
  • Устранение неполадок RabbitMQ

    Используйте это руководство, если экземпляр RabbitMQ работает некорректно, клиенты не могут подключиться, очереди неожиданно растут или обновление либо миграция ведут себя не так, как ожидается.

    Для каждой проблемы сначала начните с симптома, подтвердите влияние, выполните предложенные проверки и только затем выберите способ устранения.

    Pod запущен, но cluster не healthy

    ItemGuidance
    SymptomPods находятся в состоянии Running или Ready, но workload по-прежнему завершается с ошибкой или количество broker nodes меньше ожидаемого.
    ImpactProducers, consumers или queue replicas могут не работать либо маршрутизироваться неравномерно.
    Common causesПроблемы peer discovery, проблемы со storage, неудачное cluster join или разделённая cluster membership.
    Checkskubectl get rabbitmqcluster <instance-name>, kubectl get pods -l app.kubernetes.io/name=<instance-name>, kubectl exec <pod> -- rabbitmqctl cluster_status
    RecommendationsСравните status.conditions с rabbitmqctl cluster_status. Если Pod readiness и broker membership расходятся, считайте cluster degraded, пока все ожидаемые broker nodes не появятся в cluster_status.

    Clients не могут пройти аутентификацию или авторизацию

    ItemGuidance
    SymptomClients сообщают об отказе в доступе, отказе в разрешении или не могут открыть channels.
    ImpactProducers не могут публиковать сообщения, а consumers — получать их.
    Common causesНеверный user, неверный password, отсутствующий virtual host или недостаточные permissions configure, write либо read.
    Checksrabbitmqadmin list users, rabbitmqadmin list vhosts, rabbitmqadmin list permissions, review конфигурации application
    RecommendationsУбедитесь, что application использует intended virtual host и dedicated user, и подтвердите, что permissions соответствуют required resource naming pattern.

    TLS Connections fail

    ItemGuidance
    SymptomОшибки TLS handshake, ошибки unknown CA или ошибки hostname verification.
    ImpactClients и operational tools не могут подключиться к RabbitMQ.
    Common causesОтсутствие доверия к CA, неверные SANs в certificate, отключённые plain listeners до обновления clients или неверный endpoint port.
    Checkskubectl explain rabbitmqcluster.spec.tls, kubectl exec <pod> -- rabbitmq-diagnostics listeners, проверка client-side TLS trust store
    RecommendationsПереиздайте certificates с требуемыми service и external names, распространите CA certificate и убедитесь, что clients используют amqps:// или HTTPS с правильным port.

    Publishing blocked or slow

    ItemGuidance
    SymptomPublishers замирают, throughput соединений падает или в application logs отображаются blocked connections.
    ImpactIngestion сообщений отстаёт или останавливается.
    Common causesMemory alarms, disk alarms или рост queue backlog.
    Checkskubectl exec <pod> -- rabbitmq-diagnostics status, rabbitmqadmin list queues name messages message_bytes consumers, platform monitoring dashboards
    RecommendationsСначала устраните disk или memory pressure. Затем выясните, почему consumers не успевают, и нужно ли добавить queue TTL или limits по длине.

    Queues растут, а consumers не успевают

    ItemGuidance
    Symptommessages_ready или messages_unacknowledged растёт в течение длительного времени.
    ImpactРастёт использование disk, может увеличиться publish latency, и consumers могут сильно отстать.
    Common causesСбои consumers, низкий prefetch, медленные downstream dependencies или retry loop.
    Checksrabbitmqadmin list queues name messages consumers arguments, метрики consumer application, проверка topology retry и DLQ
    RecommendationsВосстановите или масштабируйте consumers, проверьте retry logic и добавьте queue policies, такие как message-ttl, max-length или DLQ routing, если workload требует ограниченного backlog.

    Upgrade или migration застряли

    ItemGuidance
    SymptomОбновление version или Shovel migration не завершается ожидаемым образом.
    ImpactEnvironment остаётся в длительном change window.
    Common causesПроблемы health cluster до изменения, несовместимые plugins, недостаточное storage или недоступные source либо destination brokers.
    Checkskubectl get rabbitmqcluster <instance-name> -o yaml, kubectl exec <pod> -- rabbitmq-plugins list -e, kubectl exec <pod> -- rabbitmqctl shovel_status, kubectl exec <pod> -- rabbitmq-diagnostics status
    RecommendationsПеред продолжением ещё раз подтвердите baseline health, проверьте сетевую доступность и совместимость plugins и остановите change, если cluster не может поддерживать healthy membership.

    Management API или UI недоступны

    ItemGuidance
    SymptomManagement endpoint истекает по timeout или возвращает errors.
    Impactrabbitmqadmin, management UI и operational automation не могут использовать HTTP API.
    Common causesПроблемы exposure сервиса, несоответствие TLS, отключён management listener или broker перегружен.
    Checkskubectl get svc <instance-name>, kubectl get endpoints <instance-name>, kubectl exec <pod> -- rabbitmq-diagnostics listeners
    RecommendationsУбедитесь, что service type и port mapping соответствуют способу доступа, и проверьте, включены ли TLS-only listeners.