파일에 분석 데이터 쓰기

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

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

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

파일 이름 및 위치

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

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

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

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. 모든 메시지 프로세서에 이 단계를 반복합니다.