Как отслеживать события жизненного цикла обмена RabbitMQ

Я работаю с набором продуктов, который использует RabbitMQ в качестве серверной части для обмена сообщениями служебной шины. Многие клиенты используют программное обеспечение (NeuronESB), которое должно автоматически настраивать обмены, очереди и каналы по мере необходимости. Где-то в системе обмены в Rabbit удаляются и не создаются заново, что приводит к неожиданным проблемам. Из-за размера системы и закрытого исходного кода по крайней мере одного из клиентов служебной шины проверка кода не увенчалась успехом для определения источника удаления этих обменов.

Я попытался использовать функциональность пожарного шланга Rabbit, но это обеспечивает только сообщения, отправляемые через Rabbit, а не внутренние действия, которые мне нужны.

Какие методы доступны для регистрации создания и удаления обменов в RabbitMQ? В идеале я хотел бы знать дату, время и IP-адрес клиента удаления, но даже простое получение даты и времени позволило бы мне сузить поиск журналов, чтобы помочь найти нарушителя.


person psaxton    schedule 27.11.2017    source источник
comment
Почему бы вам просто не установить разрешения на обмен таким образом, чтобы удаление было запрещено?   -  person theMayer    schedule 27.11.2017
comment
Я бы добавил, что не могу придумать законной причины, по которой конфигурация бирж не была бы относительно статична.   -  person theMayer    schedule 27.11.2017
comment
Вы смотрели журналы сервера RabbitMQ?   -  person Alex Buyny    schedule 27.11.2017
comment
@theMayer Я не уверен, как удалить разрешения на удаление, не удаляя все разрешения на настройку. Обмены создаются как долговечные и без автоматического удаления. Я согласен, конфигурация должна быть в значительной степени статична, но, к сожалению, мои зависимости этого не делают.   -  person psaxton    schedule 28.11.2017
comment
@AlexBuyny Я снова просматриваю журнал кроликов, но пока без особого успеха. Я пробовал искать ключевые слова для создания, удаления и обмена. Нет журналов, содержащих создание или удаление. Большинство журналов обмена относятся к тому, что обмен не найден после его удаления, но в журналах до него не указано, когда он был удален. Похоже, что эти события не регистрируются.   -  person psaxton    schedule 28.11.2017
comment
Разрешения устанавливаются вне объявления — я использовал rabbitmqctl для установки разрешений.   -  person theMayer    schedule 28.11.2017


Ответы (1)


Попробуйте плагин Events Exchange, который должен помочь.

Если по какой-то причине не работает, последнее средство, о котором я могу думать:

Получите тестовую среду с меньшим количеством клиентов/сообщений, если ваше приложение занято, затем проанализируйте свой трафик с помощью wireshark (оно может понимать amqp), чтобы отфильтровать запросы на удаление обмена.

person Alex Buyny    schedule 27.11.2017
comment
Должно быть, это новая функция - кажется очень полезной для мониторинга сервера в целом. - person theMayer; 28.11.2017
comment
Установил и активировал плагин обмена событиями - отличная информация. Я вижу создание и удаление обменов, как и было обещано. Он не предоставляет мне адрес клиента для инициации. Возможно, регистрация с помощью wireshark и использование временных меток событий помогут сузить круг поиска. - person psaxton; 28.11.2017