Архив метки: RabbitMQ

Linux: редактирование systemd юнит-файлов, рестарт сервиса при падении и уведомление на почту

1 марта 2019
 

 Имеется RabbitMQ сервис, который изредка может упасть. Требуется: перезапускать его, если процесс был завершён с ошибкой отправлять почтовое уведомление об этом событии Настроим это всё через systemd-сервис файл самого RabbitMQ (хотя есть и другие варианты, например – с помощью monit, см. Monit: мониторинг и перезапуск NGINX). Нас интересуют две опции: RestartSec=: задержка при рестарте сервиса… Читать далее »

Docker: RabbitMQ: exec(): Unable to fork, Prometheus node_exporter и Docker limits

15 февраля 2019
 

 RabbitMQ перестал принимать новые сообщения, и при выполнении запроса – возвращает ошибки вида: exec(): Unable to fork write(): send of 12 bytes failed with errno=104 Connection reset by peer fwrite(): send of 19 bytes failed with errno=32 Broken pipe Собственно, по сообщениям видно, что проблема с памятью – exec() не может выполнить fork() и выделить… Читать далее »

RabbitMQ: примеры rabbitmqctl, rabbitmqadmin и хранение сообщений при рестарте сервера

5 декабря 2018
 

 Задача – запустить RabbitMQ сервер и создать сообщение, но таким образом, что бы оно сохранилось при рестарте сервера. Документация по хранению данных – тут>>>. В частности, в ней указано, что на диск будут сохранены любые типы сообщений, если RabbitMQ начинает особождать память (см. Memory Alarms), но нам требуется, что бы сообщения всегда синхронизировались в базу на… Читать далее »

RabbitMQ: использование диска и перенос базы данных

22 октября 2018
 

 Около 9 вечера мониторинг сообщил, что на одном из production-серверов забивается место. Причём забивалось оно очень быстро, и за пару часов “скушалось” 3 гига из 8 доступных на root-разделе. Забивался диск в каталоге базы RabbitMQ – /var/lib/rabbitmq/mnesia. Быстрый фикс – перенести его базу на отдельный диск. Создаём новый каталог: [simterm] root@bttrm-prod-console:/home/admin# cd /data/ && mkdir… Читать далее »

RabbitMQ: Ansible и Hostname mismatch: node believes its host is different.

8 августа 2018
 

 Имеется Ansible плейбук, где среди прочего выполняется установка и настройка RabbitMQ. При запуске задачи с использованием плагина rabbitmq_vhost возникает ошибка: [simterm] TASK [rabbitmq : Add RabbitMQ vhosts] **** fatal: [dev.mobilebackend.domain.world]: FAILED! => {“changed”: false, “cmd”: “/usr/sbin/rabbitmqctl -q -n rabbit list_vhosts name tracing”, “msg”: “Error:********@localhost’\n- home dir: /var/lib/rabbitmq\n- cookie hash: cWvPHXMU4l0V3ALUhc3MbA==”, “rc”: 69, “stderr”: “Error: unable… Читать далее »

Ansible: использование with_dict на примере модуля rabbitmq_user

11 июля 2018
 

 Требуется создать пользователей и пароли для RabbitMQ, используя плагин rabbitmq_user. При этом хочется не создавать несколько переменных и несколько задач, а всё выполнить в одном цикле, но у каждой переменной должно быть несколько полей и значений. Используем with_dict и словарь в переменных. В файле roles/roles/rabbitmq/vars/main.yml добавляем: rabbitmq_users: user1: password: “pass1” vhost: “/” configure_priv: .* read_priv:… Читать далее »

RabbitMQ: запуск, описание, примеры

6 июня 2018
 

 RabbitMQ – менеджер сообщений (message broker), написан на Erlang, ближайший аналог в AWS – SQS. Предназначен для передачи данных (сообщений) между несколькими сервисами : один сервис добавляет в очередь сообщение, другой – получает это сообщение. Ниже – пример установки, запуска и использования RabbitMQ. Установка На Arch Linux: [simterm] $ sudo pacman -S rabbitmq [/simterm] Debian/Ubuntu: [simterm]… Читать далее »