温馨提示×

Linux RabbitMQ如何进行日志管理

小樊
37
2026-01-03 07:00:48
栏目: 智能运维

Linux 上 RabbitMQ 日志管理实操指南

一 日志位置与类型

  • 默认日志目录:/var/log/rabbitmq/。常见文件:
    • [email protected][hostname].log:RabbitMQ 应用日志(启动、连接、插件、告警等)。
    • [email protected][hostname]-sasl.log:Erlang SASL 日志(节点启动失败、崩溃、Erlang 运行时错误等)。
  • 若使用 systemd,也可通过 journalctl 查看服务日志(适用于 CentOS 7+ 等):例如 sudo journalctl -u rabbitmq-server -f

二 查看与实时监控

  • 直接查看文件:
    • 实时跟踪:sudo tail -f /var/log/rabbitmq/[email protected][hostname].log
    • 分页查看:less /var/log/rabbitmq/[email protected][hostname].log
  • 按级别实时跟踪(示例仅显示 error):sudo tail -f /var/log/rabbitmq/[email protected][hostname].log | grep -E '\[error\]|ERROR'
  • 使用 systemd(若以服务运行):sudo journalctl -u rabbitmq-server -f

三 日志级别与输出路径配置

  • 配置文件路径(经典配置):/etc/rabbitmq/rabbitmq.config;环境变量文件:/etc/rabbitmq/rabbitmq-env.conf
  • 设置日志级别(示例仅输出连接模块的 warning 及以上):
    • /etc/rabbitmq/rabbitmq.config
      [
        {rabbit, [
          {log_levels, [{connection, warning}]}
        ]}
      ].
      
  • 调整日志目录(示例改为 /data/log/rabbitmq):
    • /etc/rabbitmq/rabbitmq-env.conf
      RABBITMQ_LOG_BASE=/data/log/rabbitmq
      
  • 可用的日志级别:none、error、warning、info、debug;常用日志类别:channel、connection、federation、mirroring

四 日志轮转与清理

  • 手动轮换(会关闭并重新打开日志文件,便于归档):
    • rabbitmqctl rotate_logs suffix(suffix 为自定义后缀,如 20260103
  • 定时轮转(示例:每日 0 点按日期切分)
    • crontab -e 增加:0 0 * * * /usr/sbin/rabbitmqctl rotate_logs .$(date +\%Y\%m\%d)
  • 清理旧日志(按保留天数删除,示例保留 7 天)
    • find /var/log/rabbitmq -name "*.gz" -mtime +7 -delete
    • find /var/log/rabbitmq -name "[email protected]*" ! -name "*.gz" -mtime +7 -delete
  • 建议配合 logrotate 统一管理(保持与 rotate_logs 一致的后缀策略,避免重复轮转)。

五 运行时日志与审计

  • 通过内置 topic 交换器 amq.rabbitmq.log 订阅实时日志:
    • 路由键:error、warning、info(对应不同级别),也可使用 # 收集全量。
    • 用法:在管理插件中创建队列,绑定到 amq.rabbitmq.log,按需设置绑定键为 error/warning/info/#,即可实时接收日志事件。
  • 消息追踪(用于定位消息投递路径,非系统运行日志,谨慎开启):
    • Firehose:rabbitmqctl trace_on / trace_off(向 amq.rabbitmq.trace 发送 publish/deliver 事件,性能有影响,用完即关)。
    • 管理插件:rabbitmq-plugins enable rabbitmq_tracing,在 Web 管理端配置 Tracing 规则,将匹配消息写入日志文件。

0