파일에 분석 데이터 쓰기

기본적으로 메시지 프로세서에서 수집한 분석 데이터는 처리를 위해 Qpid 및 Postgres에 업로드됩니다. 그런 다음 Edge UI에서 분석 데이터를 볼 수 있습니다.

또는 분석 데이터를 디스크에 쓰도록 메시지 프로세서를 구성할 수 있습니다. 그런 다음 분석을 위해 데이터를 자체 분석 시스템에 업로드할 수 있습니다. 예를 들어 Google Cloud BigQuery에 데이터를 업로드할 수 있습니다. 그런 다음 BigQuery 및 TensorFlow에서 제공하는 강력한 쿼리 및 머신러닝 기능을 활용하여 자체 데이터 분석을 수행할 수 있습니다.

두 옵션을 모두 사용할 수도 있습니다. 즉, 분석 데이터를 Qpid/Postgres에 업로드하고 데이터를 디스크에 저장할 수 있습니다.

파일 이름 및 위치

기본적으로 디스크 파일에 분석 데이터 쓰기를 사용 설정하면 파일이 다음 디렉터리에 기록됩니다.

/opt/apigee/var/log/edge-message-processor/ax/tmp

Edge는 1분 간격으로 데이터 파일의 /tmp 아래에 새 디렉터리를 만듭니다. 디렉터리 이름의 형식은 다음과 같습니다.

org~env~yyyyMMddhhmmss

예를 들면 다음과 같습니다.

myorg~prod~20190909163500
myorg~prod~20190909163600

각 디렉터리에는 해당 간격의 개별 데이터 파일이 포함된 .gz 파일이 있습니다. .gz 파일 이름의 형식은 다음과 같습니다.

4DigitRandomHex_StartTime.StartTimePlusInterval_internalHostIP_hostUUID_writer_index.txt.gz

Edge는 uploadToCloud 메시지 프로세서 구성 속성의 설정에 따라 정기적으로 디렉터리와 이 디렉터리에 포함된 .gz 파일을 /tmp에서 다음 디렉터리 중 하나로 이동합니다.

  • uploadToCloud = false: 파일이 /opt/apigee/var/log/edge-message-processor/ax/staging 폴더로 이동함
  • uploadToCloud = true: (기본값): 파일이 /opt/apigee/var/log/edge-message-processor/ax/failed로 이동합니다.

/staging 또는 /failed 디렉터리에서 데이터의 압축을 풀어 분석 데이터 파일을 가져옵니다.

구성 속성

다음 속성을 사용하여 분석 데이터를 디스크에 쓰도록 메시지 프로세서를 구성합니다. 이러한 속성은 모두 선택사항입니다.

속성 설명
conf_analytics_analytics.saveToDisk

메시지 프로세서가 분석 데이터를 디스크 파일에 쓰도록 구성하려면 true로 설정합니다.

기본값은 false입니다.

conf_analytics_analytics.sendToQueue

메시지 프로세서가 Qpid/Postgres에 데이터를 업로드하도록 구성하려면 true로 설정합니다. Qpid/Postgres에 분석 데이터 쓰기를 사용 중지하려면 false로 설정합니다.

기본값은 true입니다.

conf_analytics_analytics.baseDataDirectoryPath

분석 데이터 파일이 기록되는 기본 경로를 지정합니다.

기본값은 /opt/apigee/var/log/edge-message-processor/ax.입니다.

conf_analytics_analytics.allocatedDiskSpaceInMBytes

분석 파일에 할당된 디스크 공간을 메가바이트 단위로 지정합니다.

기본값은 3072입니다. 분석 데이터 파일에 할당된 디스크 공간을 초과하면 메시지 프로세서가 분석 데이터 저장을 중지하고 로그 파일에 오류 메시지를 작성합니다.

conf_analytics_analytics.uploadToCloud

분석 파일의 최종 위치를 제어합니다.

  • false: 파일이 /opt/apigee/var/log/edge-message-processor/ax/staging 폴더로 이동함
  • true (기본값): 파일이 /opt/apigee/var/log/edge-message-processor/ax/failed로 이동합니다.

참고: 이 속성은 uploadToCloud라고 하지만 데이터가 클라우드에 업로드되지 않습니다. 모든 분석 데이터는 설치에 로컬로 유지됩니다.

이러한 속성을 설정하려면 다음 단계를 따르세요.

  1. 편집기에서 message-processor.properties 파일을 엽니다. 파일이 없으면 만듭니다.

    vi /opt/apigee/customer/application/message-processor.properties
  2. 원하는 대로 속성을 설정합니다.

    # Enable writing analytics data to disk.
    conf_analytics_analytics.saveToDisk=true
    # Disable writing analytics data to Qpid/Postgres.
    conf_analytics_analytics.sendToQueue=false
    
    # Specify base directory for analytics data files.
    conf_analytics_analytics.baseDataDirectoryPath=/opt/apigee/var/smg
    
    # Set the disk space available for analytics files.
    conf_analytics_analytics.allocatedDiskSpaceInMBytes=3072
    # Move final analytics data to files to the /staging directory.
    conf_analytics_analytics.uploadToCloud=false
  3. 변경사항을 저장합니다.
  4. 속성 파일이 'apigee' 사용자의 소유인지 확인합니다.

    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. axgroup-001 분석 그룹의 consumer-type 속성 값을 ax로 설정합니다.

    curl -X POST -H "Content-Type:application/json" \
    "http://ms-ip:8080/v1/analytics/groups/ax/axgroup-001/properties?propName=consumer-type&propValue=ax" \
    -u sysAdminEmail:sysAdminPWord

    기본적으로 분석 그룹의 이름은 axgroup-001입니다. Edge 설치 구성 파일에서 AXGROUP 속성을 사용하여 분석 그룹의 이름을 설정할 수 있습니다. 분석 그룹의 이름을 모르는 경우 관리 서버 노드에서 다음 명령어를 실행하여 표시합니다.

    apigee-adminapi.sh analytics groups list \
      --admin sysAdminEmail --pwd sysAdminPword --host localhost

    이 명령어는 name 필드에 분석 그룹 이름을 반환합니다.

  6. 메시지 프로세서를 다시 시작합니다.

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    다시 시작하면 메시지 프로세서가 분석 데이터를 데이터 파일에 기록합니다.

  7. 모든 메시지 프로세서에 대해 이 단계를 반복합니다.