Google Cloud Platform Pub/Sub 주제에서 New Relic으로 로그를 전달하는 두 가지 방법을 지원합니다.
옵션을 선택하세요
다음은 비즈니스 요구 사항에 가장 적합한 옵션을 결정하는 데 도움이 될 수 있습니다.
GCP 로그 전달 옵션 | 고려 사항 |
---|
헤더 없는 API | - 전송하는 각 로그 레코드에 대해 하나의 API 호출을 수행하기 때문에 적은 로그 볼륨에 가장 적합합니다.
- GCP 구독에 추가 비용이 발생하지 않습니다.
- 로그 볼륨이 증가하면 이 솔루션이 New Relic 계정의 할당량 제한에 도달할 수 있습니다.
|
데이터 흐름 작업 | - 로그 레코드를 New Relic으로 보내기 전에 일괄 처리로 그룹화하므로 더 큰 로그 볼륨에 가장 적합합니다.
- API 호출 수를 줄이고 할당량 사용량을 줄일 수 있습니다.
- 구내에서 Dataflow 작업 실행으로 인해 GCP 구독에 추가 비용이 발생할 수 있습니다.
|
헤더 없는 API를 사용하여 GCP 로그를 New Relic으로 보내려면:
GCP Pub/Sub 주제에 대한 수집 URL을 생성하여 시작합니다.
Integrations & Agents UI 로 이동하여 Logging 클릭하고 Google Cloud Platform 클릭합니다.
로그를 전달할 뉴렐릭 계정을 선택하고 Continue 클릭합니다.
선택 사항: 다음 단계에서 생성할 수집 URL로 전송되는 모든 로그 이벤트에 포함할 메타데이터(속성-값 쌍)를 구성합니다.
Generate URL 을(를) 클릭합니다.
새로 생성된 ingest URL ) 복사하여 안전한 곳에 보관하세요.
새 수집 URL을 사용하여 New Relic에 로그를 보내는 Pub/Sub 주제를 구성합니다.
다음으로 수집 URL이 사용할 GCP Pub/Sub 주제를 생성합니다.
GCP Pub/Sub 콘솔 로 이동합니다.
Create Topic
을(를) 클릭합니다.
의미 있는
Topic ID
입력한 다음 필요에 따라 다른 옵션을 구성합니다.
Create Topic
을(를) 클릭합니다.
Pub/Sub 주제를 생성했으면 해당 주제에 대한 구독을 생성합니다.
GCP Pub/Sub 콘솔 로 돌아갑니다.
이전에 만든 Pub/Sub 주제 를 클릭합니다.
아래로 스크롤하여 Subscriptions 탭을 선택한 다음 Create Subscription 클릭하고 Create a simple subscription 선택합니다.
Subscription ID 을 입력하세요. 그런 다음 Delivery Type 아래에서 Push 선택합니다.
Endpoint URL 필드에 이전에 생성한 수집 URL을 붙여넣습니다.
필요에 따라 나머지 설정을 구성하고 Create 클릭합니다.
설정을 완료하려면 로그를 New Relic으로 전달할 GCP Pub/Sub 주제에 대한 라우팅 싱크를 만드세요.
GCP 로그 라우터 콘솔 로 이동합니다.
Create Sink
을(를) 클릭합니다.
Sink name
및
Sink description
을 입력한 다음
Next
클릭합니다.
Select sink service
아래에서
Cloud Pub/Sub topic
선택하고 이전에 생성한 Pub/Sub 주제를 선택합니다.
필요에 따라 나머지 필터를 구성한 다음
Create sink
클릭하여 설정을 완료합니다.
Dataflow 작업 사용
Dataflow 작업을 사용하여 GCP 로그를 New Relic으로 보내려면 Dataflow 템플릿을 사용합니다. 시작하기 전에 로컬 컴퓨터에 다음 도구가 있는지 확인하십시오.
다음 명령어를 실행하고 프롬프트에 따라 GCP에 로그인하고 클라우드 프로젝트를 선택합니다.
마법사를 사용하여 사용할 클라우드 프로젝트를 선택하고 gcloud
또는 gsutil
을 사용하여 생성한 리소스에 대한 기본 컴퓨팅 지역 및 영역을 선택적으로 선택할 수 있습니다. 다음 명령에 대한 기본 프로젝트, 위치 또는 지역을 가정하지 않습니다.
다음 명령어를 사용하여 DataflowTemplates GitHub 리포지토리를 복제합니다.
$git clone https://github.com/newrelic-forks/DataflowTemplates.git
방금 만든 디렉터리를 입력합니다.
그런 다음 다음 섹션을 계속하여 추가 명령을 실행합니다.
Dataflow 전달자를 컴파일하고 실행하는 데 필요한 구성을 설정하려면 DataflowTemplates
디렉터리에서 다음 명령어를 실행하세요. 유일한 필수 값은 다음과 같습니다.
PROJECT_ID
BUCKET_NAME
NR_LICENSE_KEY
INPUT_SUBSCRIPTION_NAME
다른 기본값은 그대로 둘 수 있습니다.
PROJECT_ID=<your_project_id>
BUCKET_NAME=<a_nonexisting_gcs_bucket_name>
NR_LICENSE_KEY=<your_newrelic_license_key>
INPUT_SUBSCRIPTION_NAME=<your_pubsub_input_subscription_name>
SERVICE_ACCOUNT_NAME=nr-dataflow-forwarder-sa
SERVICE_ACCOUNT_KEY_FILENAME=service-account-key.json
JOB_NAME=nr-log-forwarder
다음 명령어를 실행하여 생성된 Dataflow 템플릿을 보관할 버킷을 GCP에 만듭니다.
$gsutil mb -p ${PROJECT_ID} -l ${REGION} gs://${BUCKET_NAME}
다음 명령을 실행합니다.
서비스 계정 만들기:
$gcloud iam service-accounts create ${SERVICE_ACCOUNT_NAME}
서비스 계정에 권한 부여:
$gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" --role="roles/owner"
서비스 계정 키 파일 생성:
$gcloud iam service-accounts keys create ${SERVICE_ACCOUNT_KEY_FILENAME} --iam-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
후속 명령에서 사용되므로 GOOGLE_APPLICATION_CREDENTIALS
환경 변수를 사용하여 서비스 계정 키 파일을 참조하십시오.
$export GOOGLE_APPLICATION_CREDENTIALS=${SERVICE_ACCOUNT_KEY_FILENAME}
다음 명령을 실행합니다.
> -Dexec.mainClass=com.google.cloud.teleport.templates.PubsubToNewRelic \
> -Dexec.cleanupDaemonThreads=false \
> --project=${PROJECT_ID} \
> --enableStreamingEngine \
> --stagingLocation=gs://${BUCKET_NAME}/staging/ \
> --gcpTempLocation=gs://${BUCKET_NAME}/temp/ \
> --templateLocation=gs://${BUCKET_NAME}/template/PubsubToNewRelic \
> --runner=DataflowRunner \
다음 명령어를 실행하여 Pub/Sub 주제에서 읽는 Dataflow 작업을 사용하여 로그 전달을 시작합니다.
$gcloud dataflow jobs run ${JOB_NAME} \
> --gcs-location=gs://${BUCKET_NAME}/template/PubsubToNewRelic \
> --parameters "inputSubscription=projects/${PROJECT_ID}/subscriptions/${INPUT_SUBSCRIPTION_NAME},licenseKey=${NR_LICENSE_KEY}"
이 명령에는 다음 두 값만 필요합니다.
유럽 계정은 값으로 https://log-api.eu.newrelic.com/log/v1
를 사용하여 logsApiUrl
매개변수도 추가해야 합니다.
$gcloud dataflow jobs run ${JOB_NAME} \
> --gcs-location=gs://${BUCKET_NAME}/template/PubsubToNewRelic \
> --parameters "inputSubscription=projects/${PROJECT_ID}/subscriptions/${INPUT_SUBSCRIPTION_NAME},licenseKey=${NR_LICENSE_KEY},logsApiUrl=https://log-api.eu.newrelic.com/log/v1"
다음은 Dataflow 로그 전달자 작업의 실행을 추가로 조정하는 데 사용할 수 있는 사용 가능한 옵션에 대한 참조입니다.
구성 매개변수 | 설명 |
---|
licenseKey Required.
| 뉴렐릭 . |
inputSubscription Required.
| 로그를 사용하는 데 사용되는 Cloud Pub/Sub 구독입니다. 다음 형식을 사용하십시오. projects/<project-id>/subscriptions/<subscription-name>
|
logsApiUrl
| Log API에 대한 New Relic의 URL입니다. 이는 Dataflow 파이프라인이 실행되는 VPC에서 라우팅됩니다. 기본: https://log-api.newrelic.com/log/v1
유럽 지역: https://log-api.eu.newrelic.com/log/v1
|
batchCount
| 단일 HTTP POST 요청에서 New Relic으로 보내기 전에 일괄 처리로 집계할 최대 로그 레코드 수입니다. 기본: 100 |
flushDelay
| 전체가 아닌 배치의 마지막 로그 레코드를 수신한 후 New Relic으로 플러시하기 전에 추가 로그(최대 batchCount )를 기다리는 시간(초)입니다. 기본: 2 |
parallelism
| 최대 병렬 요청 수입니다. 기본: 1 |
disableCertificateValidation
| SSL 인증서 유효성 검사를 비활성화합니다. 기본: false |
useCompression
| New Relic의 Logs API로 전송된 페이로드를 압축(GZIP으로)합니다. 기본: true |
tokenKMSEncryptionKey
| 토큰에 대한 KMS 암호화 키입니다. 다음 형식을 사용하십시오. projects/{gcp_project}/locations/{key_region}/keyRings/{key_ring}/cryptoKeys/{kms_key_name}
기본: null |
다음은 뭐지?
로그 UI를사용하여 플랫폼 전체에서 로깅 데이터를 탐색합니다.
로그 전달 사용 안함
로그 전달 기능을 비활성화하려면 Google Cloud Platform 문서 의 표준 절차를 따르세요. New Relic에서는 다른 작업을 수행할 필요가 없습니다.