日志轮替 - 轮播和停止多个日志文件的过程。 可以简化系统管理, 会生成大量日志文件。日志轮替启用自动轮替、压缩 删除和邮寄日志文件。
在适用于私有云的 Edge 中,每个 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-server
,
edge-router
、edge-postgres-server
和 edge-qpid-server
。
edge-*
组件还会生成一个额外的日志文件,该文件会被重定向
相应组件控制台的输出。对于消息处理器组件,
此文件称为 /opt/apigee/var/log/edge-message-processor/edge-message-processor.log
。
其他 edge-*
组件会生成类似的文件。这些文件的不会执行轮替
logback 库,而是使用 logrotate
和 crontab
。
准备工作
- 如果您不熟悉
logrotate
配置,请阅读 logrotate manual。 - 如果您不熟悉
crontab
配置,请阅读 crontab 手册。
启用日志轮替
从适用于私有云的 Edge 版本 4.52 开始,安装 edge-*
组件的 crontab
条目,表示
在 apigee
用户的 crontab
中自动创建轮替此日志。此 Cron 作业的运行频率:
并使用 logrotate
实用程序轮替日志。如果有多个 edge-*
组件安装在同一节点上(例如,在一体式安装中,或者
路由器和消息处理器安装在一个节点上),每个组件都有自己的 Cron 条目
轮替其各自日志。
注意:
- 在安装
edge-*
组件期间,您不希望 自动设置一个logrotate
cronjob,请在您使用的静默配置文件中设置标志“ENABLE_LOGROTATE=n” 以进行安装。如果未在安装过程中设置 Cron 作业,您可以对其进行设置 按照以下步骤 启用组件的logrotate
Cron。 - 对于组件
edge-router
,还需要另外执行一个logrotate
Cron 作业 也会进行默认配置此 Cron 会轮替 Nginx 生成的访问日志和错误日志。
以下示例展示了各种配置和管理操作 您可以执行哪些操作。
查看节点上的 Cron 条目
sudo crontab -u apigee -l
查看组件的 logrotate
Cron 条目
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -s
例如,如需查看 Edge-message-processor 的 logrotate
Cron,请运行以下命令:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -s
查看组件的logrotate
配置
组件的 logrotate
配置可在该文件中找到
$APIGEE_ROOT/<component>/logrotate/logrotate.conf
。
例如,对于 Edge-message-processor,节点的 logrotate
配置可以是
在$APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf
中找到。
启用组件的 logrotate
Cron
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e
例如,如需启用 Edge-message-processor 的 logrotate
Cron,请运行以下命令:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e
停用组件的 logrotate
Cron
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -d
例如,如需停用 Edge-message-processor 的 logrotate
Cron,请运行以下命令:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d
更改特定 logrotate
命令的 Cron 时间表
在要更改 logrotate
Cron 时间表的节点上,打开相应的
组件的配置替换文件。edge-*
组件的配置替换文件
如下表所示:
组件 | 配置替换文件 |
---|---|
edge-message-processor |
$APIGEE_ROOT/customer/application/message-processor.properties |
edge-management-server |
$APIGEE_ROOT/customer/application/management-server.properties |
edge-router |
$APIGEE_ROOT/customer/application/router.properties |
edge-postgres-server |
$APIGEE_ROOT/customer/application/postgres-server.properties |
edge-qpid-server |
$APIGEE_ROOT/customer/application/qpid-serverproperties |
打开相应的替换文件,并设置以下配置替换。 下面的示例 将 Cron 作业替换为每小时的第 0 分钟运行。
conf_logrotate_cron_duration=0 * * * *
如需设置配置替换,请执行以下操作:
- 确保
apigee
用户可以读取该文件。 - 将较新的 Cron 时间表应用于组件:
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e
例如,如需将较新的 Cron 时间表应用于 Edge-message-processor 的 logrotate
,请输入:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e
要验证更改是否已应用,请检查 Cron 条目或查看组件的
logrotate
Cron 条目。
其他 logrotate
配置
与上一节中列出的修改 Cron 时间表的步骤类似,您可以 还可以修改其他配置。下表介绍了这些配置:
配置 | 说明 |
---|---|
conf_logrotate_bin_location |
日志轮替二进制文件的位置。默认:/usr/sbin/logrotate |
conf_logrotate_status_file |
状态文件,捕获日志轮替的运行时状态 - 显示具有读/写权限
适用于 apigee 位用户。默认值:$APIGEE_ROOT/var/run/<component>/logrotate.status |
conf_logrotate_logs |
要轮替的日志。可以包含通配符。默认:
$APIGEE_ROOT/var/log/<component>/<component>.log
|
conf_logrotate_rotate |
轮替计数。默认值:“5” |
conf_logrotate_compress |
是否压缩轮播文件。默认值:“compress” |
conf_logrotate_compress_type |
压缩类型。默认值:“delaycompress”。推迟压缩 的最新旋转文件到下一个日志轮播周期。 |
conf_logrotate_size |
轮替的日志大小限制。默认:“10M” |
使用您自己的日志轮换机制和 Cron
如果配置无法满足轮替 <component>.log 的要求
您可以利用自己的日志轮替机制,通过日志轮替等工具来实现
等。例如,Apigee 提供的配置允许您按大小轮替日志,
您希望根据日期/时间或其他因素轮替日志。在这种情况下,您应该
停用 Apigee 提供的 logrotate
Cron 作业,并根据需要设置您自己的 Cron 作业。
如果您需要参考 Apigee 的日志轮替 Cron 条目,可在文件中找到它
$APIGEE_ROOT/
。例如,如果
edge-message-processor
,此文件称为
$APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron
。此文件
包含 Cron 条目和 Apigee 为日志轮替执行的命令。如果您
想要使用logrotate
但不想使用 Apigee 的配置,则可以创建
拥有 logrotate
配置文件并使用类似的 logrotate
命令执行日志轮替。