Ознакомившись с интерфейсом управления (спасибо @jrhodin), я смог понять, как это сделать с помощью rabbitmqctl. Ключ в том, чтобы передать аргументы pid и name в список каналов
.
Сначала выполните list_consumers и получите pid потребителя:
$ sudo rabbitmqctl list_consumers | grep <имя-очереди>
Скопируйте pid (например, <[email protected]>)
Затем выполните list_channels и найдите pid:
$ sudo rabbitmqctl list_channels имя подключения pid | grep '<ваш-pid-здесь>'
Вывод покажет удаленный и локальный хост как часть имени канала. Если вы дополнительно хотите найти соединение, вы можете взять pid соединения (из приведенной выше команды) и найти его через list_connections.
Вот цикл, который выдает имена потребителей и каналов для заданной очереди:
для i в $(sudo rabbitmqctl list_consumers | grep <queue-name> | cut -f 2);
do echo -n "Потребитель: " $i;
echo -n "Канал:";
sudo rabbitmqctl list_channels pid имя | grep $ я | вырезать -f 2;
сделано
Пример вывода:
Потребитель: <[email protected]> Канал: xx.x.xx.159:8247 -> xxx.xx.xx.119:5671 (1)
Потребитель: <[email protected]> Канал: xx.x.xx.159:9002 -> xxx.xx.xx.119:5671 (1)
Потребитель: <[email protected]> Канал: xx.x.xx.159:7298 -> xxx.xx.xx.119:5671 (1)
Потребитель: <[email protected]> Канал: xx.x.xx.159:12113 -> xxx.xx.xx.119:5671 (1)
Потребитель: <[email protected]> Канал: xx.x.xx.159:14212 -> xxx.xx.xx.119:5671 (1)