一、什么是Trace
Trace是Rabbitmq用于记录每一次发送的消息,方便使用Rabbitmq的开发者调试、排错。可通过插件形式
提供可视化界面
二、Trace实现概况
1、Trace启动后会自动创建系统Exchange:amq.rabbitmq.trace
2、每个队列会自动绑定该Exchange,绑定后发送到队列的消息都会记录到Trace日志
三、怎样使用Trace
1、启动Trace插件
a) 列出本机已安装的插件: rabbitmq-plugins list(请先定位到Rabbitmq服务安装目录)
rabbitmq-plugins enable rabbitmq_tracing
b) 启动Trace插件: rabbitmqctl trace_on ( 关闭Trace: rabbitmqctl trace_off )
2、查看捕获到的Trace信息
a) Management插件-->Admin-->Trace
b) 新增Trace,格式分别是Text(方便人类阅读)、Json(方便机器识别)
c) 发送消息,查看Trace拦截的信息
version: '3'
services:
redis:
image: redis:5.0.8
container_name: redis
environment:
TZ: "Asia/Shanghai"
volumes:
- ./redis/conf/redis.conf:/etc/redis/redis.conf
- ./redis/data:/data
command: ["redis-server", "--appendonly", "yes", "--requirepass","ld123456"]
ports:
- "6379:6379"
restart: always
networks:
- redis
nginx:
image: nginx:1.18.0
container_name: nginx
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/log:/var/log/nginx
- ./nginx/html/:/usr/share/nginx/html/
ports:
- 80:80
networks:
- nginx
restart: always
sentinel-dashboard:
image: sentinel-dashboard:1.8.1
container_name: sentinel-dashboard
ports:
- 8088:8088
restart: always
networks:
- sentinel-dashboard
rabbitmq:
image: rabbitmq:3.8.14-management
container_name: rabbitmq
restart: always
hostname: rabbitmq
ports:
- 5672:5672
- 15672:15672
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin
TZ: "Asia/Shanghai"
volumes:
- ./rabbitmq/lib:/var/lib/rabbitmq
- ./rabbitmq/log:/var/log
networks:
- rabbitmq
minio:
image: minio/minio:RELEASE.2020-10-28T08-16-50Z-29-g07d7dd632
container_name: minio
volumes:
- ./minio/data1:/data1
- ./minio/data2:/data2
- ./minio/data3:/data3
- ./minio/data4:/data4
- ./minio/data5:/data5
ports:
- "9000:9000"
restart: always
command: server /data1 /data2 /data3 /data4 /data5
environment:
MINIO_ACCESS_KEY: admin
MINIO_SECRET_KEY: admin123
logging:
options:
max-size: "1500M"
max-file: "10"
driver: json-file
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
networks:
- minio
networks:
redis:
driver: bridge
nginx:
driver: bridge
sentinel-dashboard:
driver: bridge
rabbitmq:
driver: bridge
minio:
driver: bridge