316 字
2 分钟

Deploying Single-Node RabbitMQ + Exporter with Docker

Resource List#

HostIP
rabbitmq10.0.0.1
SoftwareVersion
docker20.10.12
docker-compose1.23.1
rabbitmq3.8.34

I. Installing Docker#

1. Use a domestic yum repository#

Terminal window
# yum install -y yum-utils device-mapper-persistent-data lvm2
# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2. Uninstall old versions of docker#

Terminal window
## If docker is already installed on the host and it's not the version you want, uninstall it first.
# yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
container*

3. Install Docker 20.10#

Terminal window
# yum -y install docker-ce-20.10.12-3.el7 docker-ce-cli-20.10.12-3.el7

4. Configure registry mirror#

Terminal window
# mkdir /etc/docker
# vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://xxxxxxxxx.mirror.aliyuncs.com"]
}

5. Start docker#

Terminal window
# systemctl start docker
# systemctl enable docker
# systemctl status docker

II. Installing Docker-compose#

1. Install Docker-compose#

Terminal window
## github.com may time out; you can use the following URL, download locally, then upload to the server
# curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# curl -k "https://dl.cactifans.com/zabbix_docker/docker-compose" -o /usr/bin/docker-compose
# chmod a+x /usr/bin/docker-compose

2. Check docker-compose version#

Terminal window
# docker-compose version

III. Deploying the Services#

1. docker-compose.yaml resource definition#

Terminal window
version: '3'
services:
rabbitmq:
image: rabbitmq:3.8.34-management
hostname: rabbitmq
container_name: rabbitmq
deploy:
resources:
limits:
cpus: '1'
memory: 2G
ports:
- "15672:15672"
- "15692:15692"
- "5672:5672"
# rabbitmq-exporter port
- "9419:9419"
volumes:
- /data/rabbitmq/:/var/lib/rabbitmq
- /etc/localtime:/etc/localtime
restart: always
rabbitmq_exporter:
image: kbudde/rabbitmq-exporter:1.0.0-RC19
container_name: rabbitmq_exporter
environment:
RABBIT_USER: admin
RABBIT_PASSWORD: admin
depends_on:
- rabbitmq
network_mode: "service:rabbitmq"
restart: always

2. Deploy the services#

Terminal window
# docker-compose up -d
# docker-compose ps -a

3. Initialize RabbitMQ account information#

# cat init_rabbitmq.sh
#!/bin/bash
# reset first node
echo "1、Reset first rabbitmq node."
docker exec rabbitmq /bin/bash -c 'rabbitmqctl stop_app'
docker exec rabbitmq /bin/bash -c 'rabbitmqctl reset'
docker exec rabbitmq /bin/bash -c 'rabbitmqctl start_app'
# add user and userrole
echo "2、Starting to create user."
docker exec rabbitmq /bin/bash -c 'rabbitmqctl add_user admin admin'
echo "3、Set tags for new user."
docker exec rabbitmq /bin/bash -c 'rabbitmqctl set_user_tags admin administrator'
echo "4、Grant permissions to new user."
docker exec rabbitmq /bin/bash -c "rabbitmqctl set_permissions -p '/' admin '.*' '.*' '.*'"
echo "5、Delete guest user"
docker exec rabbitmq /bin/bash -c "rabbitmqctl delete_user guest"
Terminal window
# bash init_rabbitmq.sh
Deploying Single-Node RabbitMQ + Exporter with Docker
https://catcat.blog/en/docker-install-rabbitmq-exporter.html
作者
猫猫博客
发布于
2023-05-14
许可协议
CC BY-NC-SA 4.0