Edge 구성요소의 로그 순환 사용 설정

로그 순환은 여러 로그 파일을 순환하여 사용하거나 사용하지 않는 프로세스로, 많은 수의 로그 파일을 생성하는 시스템의 관리를 간소화합니다. 로그 순환을 사용하면 로그 파일의 자동 순환, 압축, 삭제, 메일 전송이 가능합니다.

프라이빗 클라우드용 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-management-server, edge-router, edge-postgres-server, edge-qpid-server와 같은 다른 edge-* 구성요소 (이름이 edge-로 시작)에도 유사한 파일이 있습니다.

이러한 각 edge-* 구성요소는 각 구성요소 콘솔의 리디렉션된 출력인 추가 로그 파일도 생성합니다. 메시지 프로세서 구성요소의 경우 이 파일을 /opt/apigee/var/log/edge-message-processor/edge-message-processor.log라고 합니다. 다른 edge-* 구성요소는 유사한 파일을 생성합니다. 이러한 파일의 순환은 logback 라이브러리가 아닌 logrotate 및 crontab를 사용하여 수행됩니다.

시작하기 전에

로그 순환 사용 설정

프라이빗 클라우드용 Edge 버전 4.52부터 edge-* 구성요소를 설치하면 이 로그를 순환하기 위한 crontab 항목이 apigee 사용자의 crontab에 자동으로 생성됩니다. 이 크론 작업은 기본적으로 매시간 실행되며 logrotate 유틸리티를 사용하여 로그를 순환합니다. 여러 edge-* 구성요소가 동일한 노드에 설치된 경우 (예: 올인원 설치 또는 라우터와 메시지 프로세서가 한 노드에 설치된 경우) 모든 구성요소에는 각 로그를 순환하기 위한 자체 크론 항목이 있습니다.

참고:

  • edge-* 구성요소를 설치하는 동안 logrotate 크론 작업을 자동으로 설정하지 않으려면 설치에 사용하는 자동 구성 파일에서 'ENABLE_LOGROTATE=n' 플래그를 설정합니다. 설치 중에 크론 작업을 설정하지 않은 경우 구성요소의 logrotate 크론을 사용 설정하는 단계에 따라 나중에 설정할 수 있습니다.
  • edge-router 구성요소의 경우 추가 logrotate 크론 작업도 기본적으로 구성됩니다. 이 크론은 Nginx에서 생성된 액세스 및 오류 로그를 순환합니다.

다음 예시에서는 수행할 수 있는 다양한 구성 및 관리 작업을 보여줍니다.

노드에서 크론 항목 보기

sudo crontab -u apigee -l

구성요소의 logrotate 크론 항목 보기

$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 크론 사용 설정

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

예를 들어 edge-message-processor의 logrotate 크론을 사용 설정하려면 다음을 실행합니다.

$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 크론을 사용 중지하려면 다음을 실행합니다.

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d

특정 logrotate 명령어의 크론 일정 변경

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

적절한 재정의 파일을 열고 다음 구성 재정의를 설정합니다. 아래 예시에서는 매시간 0분에 실행되도록 크론 작업을 재정의합니다.

conf_logrotate_cron_duration=0 * * * *

구성 재정의를 설정하려면 다음 안내를 따르세요.

  1. apigee 사용자가 파일을 읽을 수 있는지 확인합니다.
  2. 구성요소에 최신 크론 일정을 적용합니다.
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

예를 들어 최신 크론 일정을 edge-message-processor의 logrotate에 적용하려면 다음을 입력합니다.

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

변경사항이 적용되었는지 확인하려면 크론 항목을 확인하거나 구성요소의 logrotate 크론 항목을 확인합니다.

추가 logrotate 구성

크론 일정을 수정하기 위해 위 섹션에 나열된 단계와 마찬가지로 추가 구성을 수정할 수도 있습니다. 다음 표에서는 이러한 구성에 대해 설명합니다.

구성 설명
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 순환된 파일을 압축할지 여부입니다. 기본값: 'compress'
conf_logrotate_compress_type 압축 유형입니다. 기본값: 'delaycompress'. 최신 순환 파일의 압축을 다음 logrotate 주기로 연기합니다.
conf_logrotate_size 순환의 로그 크기 한도입니다. 기본값: '10M'

자체 로그 순환 메커니즘 및 cron 사용

<component>.log 순환 요구사항이 Apigee에서 제공하는 구성으로 충족되지 않는 경우 logrotate와 같은 도구를 사용하여 자체 로그 순환 메커니즘을 활용합니다. 예를 들어 Apigee에서 제공하는 구성을 사용하면 크기별로 로그를 순환할 수 있지만 날짜/시간 또는 기타 요인을 기준으로 로그를 순환할 수 있습니다. 이러한 경우 Apigee에서 제공하는 logrotate 크론을 사용 중지하고 필요에 따라 자체 크론 작업을 설정해야 합니다.

Apigee의 로그 순환 크론 항목을 참조해야 하는 경우 $APIGEE_ROOT//logrotate/logrotate.cron 파일에서 찾을 수 있습니다. 예를 들어 edge-message-processor의 경우 이 파일의 이름은 $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron입니다. 이 파일에는 크론 항목과 로그 순환을 위해 Apigee에서 실행하는 명령어가 모두 포함되어 있습니다. logrotate를 사용하고 싶지만 Apigee의 구성을 사용하지 않으려면 자체 logrotate 구성 파일을 만들고 유사한 logrotate 명령어를 사용하여 로그 순환을 수행하면 됩니다.