温馨提示×

RabbitMQ在Ubuntu上的日志管理如何操作

小樊
36
2025-12-16 22:00:37
栏目: 智能运维

Ubuntu 上 RabbitMQ 日志管理实操指南

一 日志位置与快速查看

  • 默认日志目录为:/var/log/rabbitmq/。常见文件:
    • rabbit@.log:RabbitMQ 应用日志
    • rabbit@_upgrade.log:升级过程日志
    • 若启用 SASL,还可能出现 -sasl.log(Erlang 运行时日志)
  • 快速查看与跟踪:
    • 查看主日志:sudo less /var/log/rabbitmq/rabbit@$(hostname).log
    • 实时跟踪:sudo tail -f /var/log/rabbitmq/rabbit@$(hostname).log
    • 列出目录:ls -l /var/log/rabbitmq/
  • 通过管理插件查看:启用 rabbitmq_management 后,访问 http://:15672,在 Admin → Logs 可在线查看节点日志片段(适合无法直连服务器时)。

二 配置日志路径与输出方式

  • 配置文件位置:
    • 新版(3.7+)使用 /etc/rabbitmq/rabbitmq.conf(经典配置可用 advanced.config)
    • 环境变量文件:/etc/rabbitmq/rabbitmq-env.conf
  • 常用配置项(rabbitmq.conf):
    • 修改日志目录:log.dir = /data/logs/rabbitmq
    • 修改日志文件名:log.file = rabbit.log
    • 日志级别:log.file.level = debug|info|warning|error|critical|none
    • 按分类设置级别(示例仅对连接降噪):
      • log.connection.level = warning
  • 环境变量方式(优先级高于配置文件):
    • rabbitmq-env.conf 中设置:RABBITMQ_LOG_BASE=/vol/pic/log/rabbitmq
  • 输出到控制台(便于容器或前台调试):
    • log.console = true
    • log.console.level = debug
    • 特殊值:RABBITMQ_LOGS=- 将所有日志输出到标准输出(通常与 systemd 日志配合)
  • 说明:
    • 3.7.0 起使用 Lager 日志库;可同时启用多种输出(文件、控制台、Syslog),并为不同输出设置不同级别。

三 日志轮转与保留策略

  • 内置基于文件大小/时间的轮转(rabbitmq.conf):
    • 按大小:log.file.rotation.size = 10485760(10 MB)
    • 按日期:log.file.rotation.date = $D0(每日 0 点)、$H00(每小时)
    • 保留个数:log.file.rotation.count = 5
  • 系统级 Logrotate(Debian/RPM 包默认已配置):
    • 配置文件:/etc/logrotate.d/rabbitmq-server
    • 典型策略为按周轮转并压缩,可按需调整频率与保留份数,以配合磁盘容量规划。

四 按类别与输出定制日志

  • 日志分类(示例):connection、channel、queue、mirroring、federation、upgrade、default
  • 为特定分类指定日志文件与级别(示例):
    • 将联合日志单独写入文件:log.federation.file = rabbit_federation.log
    • 降低连接日志级别:log.connection.level = warning
    • 关闭升级日志:log.upgrade.level = none
  • 不同输出可设置不同级别(示例):
    • 控制台输出更详细(debug),文件输出保持 info:
      • log.console.level = debug
      • log.file.level = info

五 消息内容级别的追踪与审计

  • 启用 rabbitmq_tracing 插件后,可在管理界面 Admin → Tracing 创建跟踪,或将 amq.rabbitmq.trace / amq.rabbitmq.log 交换器绑定到队列,以记录指定 vhost 的消息收发细节。
  • 命令行控制:
    • 启用/关闭全局追踪:rabbitmqctl trace_on / trace_off
    • 指定 vhost:rabbitmqctl trace_on -p
  • 注意:开启 trace 会显著影响性能与磁盘写入,排查完成后请及时关闭。

0