에지 구성요소에 로그 순환 사용 설정

로그 순환(사용하지 않을 때 여러 로그 파일을 순환하는 프로세스)으로, 대량의 로그 파일을 생성하는 시스템 관리가 간소화됩니다. 로그 순환을 사용하면 로그 파일의 자동 순환, 압축, 삭제, 메일링이 가능합니다.

Private Cloud용 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 라이브러리가 아니라 logrotatecrontab를 사용하여 실행됩니다.

시작하기 전에

로그 순환 사용 설정

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

참고:

  • edge-* 구성요소를 설치하는 동안 logrotate cronjob을 자동으로 설정하지 않으려면 설치에 사용하는 자동 구성 파일에 '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 크론을 보려면 다음을 실행합니다.

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

구성요소의 logrotate 구성 보기

구성요소의 logrotate 구성은 $APIGEE_ROOT/<component>/logrotate/logrotate.conf 파일에서 찾을 수 있습니다. 예를 들어 에지 메시지 프로세서의 경우 노드의 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 크론 사용 중지

$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

예를 들어 에지 메시지 프로세서의 logrotate에 최신 크론 일정을 적용하려면 다음을 입력합니다.

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

변경사항이 적용되었는지 확인하려면 크론 항목을 확인하거나 구성요소의 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 회전된 파일을 압축할지 여부입니다. 기본값: 'compress'
conf_logrotate_compress_type 압축 유형입니다. 기본값: 'Delaycompress'. 최근에 순환된 파일의 압축을 다음 logrotate 주기로 연기합니다.
conf_logrotate_size 순환의 로그 크기 제한입니다. 기본값: '10M'

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

Apigee에서 제공하는 구성으로 <component>.log의 순환 요구사항이 충족되지 않는 경우 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 명령어를 사용하여 로그 순환을 수행하면 됩니다.