为 edge-message-processor.log 启用日志轮替

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

日志轮替(即轮替多个日志文件的使用和停用)可简化生成大量日志文件的系统的管理。日志轮替功能可实现日志文件的自动轮替、压缩、移除和邮寄。

在 Edge for Private Cloud 中,每个 apigee 组件上的部分主要日志文件都配置了默认轮替机制。例如,在消息处理器组件中,以下文件使用 logback 配置了默认轮替机制:

  • /opt/apigee/var/log/edge-message-processor/logs/system.log
  • /opt/apigee/var/log/edge-message-processor/logs/events.log
  • /opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
  • /opt/apigee/var/log/edge-message-processor/logs/configurations.log
  • /opt/apigee/var/log/edge-message-processor/logs/transactions.log

其他 edge-* 组件(名称以 edge- 开头)也存在类似的文件,例如 edge-management-serveredge-routeredge-postgres-serveredge-qpid-server

每个 edge-* 组件还会生成一个额外的日志文件,该文件是相应组件控制台的重定向输出。对于消息处理器组件,此文件称为 /opt/apigee/var/log/edge-message-processor/edge-message-processor.log。其他 edge-* 组件也会生成类似的文件。这些文件的轮替不是由 logback 库完成的,而是使用 logrotatecrontab 完成的。

准备工作

启用日志轮替

本部分适用于 Edge Private Cloud 版本 4.50.00 和 4.51.00。

日志轮替是一种机制,旨在简化生成大量日志文件的系统的管理。它支持自动轮替、压缩、移除和邮寄日志文件。

默认情况下,每个 apigee 组件上的部分主要日志文件都配置了默认轮替机制。 例如,在消息处理器组件中,以下文件使用默认轮替机制进行配置:

  • /opt/apigee/var/log/edge-message-processor/logs/system.log
  • /opt/apigee/var/log/edge-message-processor/logs/events.log
  • /opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
  • /opt/apigee/var/log/edge-message-processor/logs/configurations.log
  • /opt/apigee/var/log/edge-message-processor/logs/transactions.log

不过,apigee 组件中的其他日志文件未配置为使用默认轮替。 例如,默认情况下,apigee 组件消息处理器文件 edge-message-processor.log 上未配置日志轮替。

您可以使用 logrotatelogbacklog4j 等不同的实用程序/框架来启用日志轮替。本部分介绍了如何使用 logrotatecrontab/opt/apigee/var/log/edge-message-processor/edge-message-processor.log 文件配置日志轮替。

在消息处理器上为 edge-message-processor.log 启用日志轮替

本部分介绍了如何为边缘消息处理器上的 /opt/apigee/var/log/edge-message- processor/edge-message-processor.log 日志启用日志轮替。

以下步骤介绍了如何为 edge-message-processor.log 文件启用日志轮替:

  1. 在消息处理器机器上,通过编辑器打开 /opt/apigee/edge-message-processor/logrotate/logrotate.conf 文件。如果该文件不存在,请创建一个。 例如:
    vi /opt/apigee/edge-message-processor/logrotate/logrotate.conf
    
  2. 向文件中添加类似于以下代码段的内容:
    /opt/apigee/var/log/edge-message-processor/edge-message-processor.log {
        missingok
        copytruncate
        rotate 5
        size 10M
        compress
        delaycompress
        notifempty
        nocreate
        sharedscripts
        }
  3. 保存更改。
  4. 使用以下命令打开 apigee 用户的 crontab
    sudo crontab -u apigee -e
    
  5. 将以下 Cron 作业添加到 apigee 用户的 crontab
    0 0 * * * nice -n 19 ionice -c3 /usr/sbin/logrotate -s /opt/apigee/var/run/edge-message-processor/logrotate.status -f /opt/apigee/edge-message-processor/logrotate/logrotate.conf
  6. 保存 crontab,并在下次运行 cron 作业时监控日志轮替。

在消息处理器上验证 edge-message-processor.log 的日志轮替

  1. 安排的 Cron 作业运行后,日志文件将轮替。在上面的示例中,Cron 作业安排在每天凌晨 00:00 运行,以轮替 edge-message- processor.log 文件。
  2. 前往 /opt/apigee/var/log/edge-message-processor/ 目录,然后验证 edge-message-processor.log 文件是否已轮替。

    日志文件列表示例

    ls -ltrh | grep 'edge-message-processor'
    
    -rw-r--r--. 1 apigee apigee  17K Feb  7 00:00 edge-message-processor.log.1.gz
    -rw-r--r--. 1 apigee apigee 5.3K Feb  7 09:12 edge-message-processor.log

    上述输出表示 edge-message-processor.log 文件已轮替并保存为 GZ 文件。

  3. 如果您没有看到 edge-message-processor.log 文件正在轮替,请验证您是否已正确按照 在消息处理器上为 edge-message-processor.log 启用日志轮替中列出的所有步骤操作。 如果您漏掉了某个步骤,请正确重复所有步骤。
  4. 如果您仍然无法使日志轮替正常运行,请与 Apigee Edge 支持团队联系。