Ротация журналов — процесс смены использования и прекращения использования нескольких файлов журналов — упрощает администрирование систем, генерирующих большое количество файлов журналов. Ротация журналов обеспечивает автоматическую ротацию, сжатие, удаление и отправку файлов журналов по почте.
В Edge для частного облака некоторые основные файлы журналов каждого компонента 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
Подобные файлы существуют и для других компонентов 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 . - Если вы не знакомы с конфигурациями
crontab
, прочитайте руководство по crontab .
Включить ротацию журналов
Начиная с Edge for Private Cloud версии 4.52, при установке компонента edge-*
в crontab
пользователя apigee
автоматически создается запись crontab
для ротации этого журнала. По умолчанию это задание cron запускается каждый час и использует утилиту logrotate
для ротации журналов. Если на одном узле установлено несколько компонентов edge-*
(например, при установке «все в одном» или если маршрутизатор и процессор сообщений установлены на одном узле), каждый компонент будет иметь собственную запись cron для ротации. соответствующие журналы.
Примечания:
- Если во время установки компонента
edge-*
вы не хотите автоматически настраивать задание cronlogrotate
, установите флаг «ENABLE_LOGROTATE=n» в файле автоматической конфигурации, который вы используете для установки. Если задание cron не задано во время установки, его можно настроить позже, выполнив действия, необходимые для включенияlogrotate
cron компонента . - Для компонента
edge-router
по умолчанию также настроено дополнительное задание cronlogrotate
. Этот cron чередует журналы доступа и ошибок, созданные Nginx.
Следующие примеры иллюстрируют различные конфигурации и административные операции, которые вы можете выполнять.
Просмотр записей cron на узле
sudo crontab -u apigee -l
Просмотр записи cron logrotate
компонента
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -s
Например, чтобы просмотреть cron logrotate
процессора Edge, запустите:
$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
Например, чтобы включить logrotate
cron Edge-message-processor, запустите:
$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
Например, чтобы отключить logrotate
cron Edge-message-processor, запустите:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d
Изменить расписание cron для конкретной команды logrotate
На узле, где вы хотите изменить расписание cron logrotate
, откройте файл переопределения конфигурации соответствующего компонента. Файлы переопределения конфигурации компонента 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 к logrotate
Edge-message-processor, введите:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e
Чтобы убедиться, что изменения были применены, либо проверьте записи cron, либо просмотрите запись cron logrotate
компонента.
Дополнительные конфигурации logrotate
Подобно шагам, перечисленным в разделе выше для изменения расписания cron, вы также можете изменить дополнительные конфигурации. В таблице ниже описаны эти конфигурации:
Конфигурация | Описание |
---|---|
conf_logrotate_bin_location | Расположение двоичного файла logrotate. По умолчанию: /usr/sbin/logrotate |
conf_logrotate_status_file | Файл состояния, фиксирующий статус выполнения logrotate — показывает наличие разрешений на чтение/запись для пользователя 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 | Сжимать ли повернутые файлы. По умолчанию: «сжать». |
conf_logrotate_compress_type | Тип сжатия. По умолчанию: «задержка сжатия». Откладывает сжатие последнего повернутого файла до следующего цикла logrotate. |
conf_logrotate_size | Ограничение размера журнала для ротации. По умолчанию: «10М» |
Используйте свой собственный механизм ротации журналов и cron.
Если ваши требования к ротации <компонент>.log не удовлетворяются конфигурациями, предоставленными Apigee, вы используете свой собственный механизм ротации журналов с помощью таких инструментов, как logrotate или других. Например, конфигурации, предоставляемые Apigee, позволяют вращать журналы по размеру, но вы хотите вращать журналы на основе даты/времени или других факторов. В таких случаях вам следует отключить cron logrotate
, предоставляемый Apigee, и при необходимости настроить свои собственные задания cron.
Если вам нужно обратиться к записи cron о ротации журналов Apigee, вы можете найти ее в файле $APIGEE_ROOT/ /logrotate/logrotate.cron
$APIGEE_ROOT/ /logrotate/logrotate.cron
. Например, в случае edge-message-processor
этот файл называется $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron
. Этот файл включает в себя как запись cron, так и команду, выполняемую Apigee для ротации журналов. Если вы хотите использовать logrotate
, но не хотите использовать конфигурации Apigee, вы можете создать свой собственный файл конфигурации logrotate
и использовать аналогичную команду logrotate
для ротации журналов.