플랫폼 로그를 리전의 IBM Cloud Logs Routing 인스턴스로 라우팅하도록 IBM Cloud Logs 서비스 구성하기
IBM Cloud Logs Routing 서비스를 사용하여 IBM Cloud 계정에서 플랫폼 로그를 IBM Cloud Logs 인스턴스의 대상 대상에 라우팅합니다. 지역 내 테넌트와 대상 대상을 구성해야 합니다.
테넌트는 리전 내에서 실행되는 IBM Cloud Logs Routing의 계정별 구성입니다. 테넌트 구성에는 최대 1개의 대상 정의가 포함됩니다. 대상은 로그가 라우팅되는 위치를 정의합니다.
각 지역의을 사용하려는 계정에서 테넌트를 IBM Cloud Logs Routing로 만들어야 합니다. 각 지역은 독립적이며 지역 간에는 데이터를 공유하지 않습니다.
목표
이 튜토리얼에서는 이렇게 합니다:
-
IBM Cloud Logs Routing 을 구성하여 플랫폼 로그를 리전 내 IBM Cloud Logs 인스턴스로 라우팅합니다.
-
플랫폼 로그가 IBM Cloud Logs 인스턴스로 라우팅되고 있는지 확인합니다.
시작하기 전에
다음 단계를 완료하십시오.
-
IBM® Cloud Logs Routing 에 대해 검토하여 개념을 이해하세요.
-
시작하기 에 설명된 대로 모든 필수 도구를 설치합니다.
-
API를 사용하여 테넌트에 대한 세부 정보를 얻으려면 관리 API를 사용하여 IBM Cloud Logs Routing에 연결할 수 있는지 확인합니다. 자세한 정보는 IBM® Cloud Logs Routing에 연결을 참조하십시오.
-
IBM Cloud Logs로 라우팅되는 플랫폼 로그에는 데이터를 관리하고 IBM Cloud Logs 인스턴스에서 기능을 구성하는 데 사용할 수 있는 메타데이터 필드가 포함되어 있습니다.
애플리케이션 이름은 로그를 생성하여 IBM Cloud Logs로 전송하는 환경입니다. 플랫폼 로그에는 애플리케이션 이름이
ibm-platform-log로 설정되어 있습니다.하위 시스템 이름은 로그 또는 메트릭을 생성하여 IBM Cloud Logs로 보내는 서비스 또는 애플리케이션입니다. 플랫폼 로그에는 하위 시스템 이름이
CRNserviceName:instanceID로 설정되어 있습니다. VPC 플랫폼 로그의 경우 필드가is:resourceType로 설정됩니다. -
계정에서 대상을 관리할 수 있는 권한을 설정합니다. 자세한 정보는 IAM 권한 부여를 참조하십시오.
플랫폼 로그를 라우팅하도록 IBM Cloud Logs Routing 서비스를 설정하려면 먼저 인증을 위한 IBM Cloud® Identity and Access Management (IAM) 액세스 토큰이 있어야 합니다. IBM Cloud CLI를 사용하여 이 정보를 얻습니다.
-
IBM Cloud 계정에 로그인하십시오. 페더레이션 ID를 사용하는 경우
--sso옵션을 포함하세요.ibmcloud login [--sso]출력에는 다음과 유사한 사용자 아이디가 포함됩니다:
Targeted account Jane Doe\'s Account (111111111112a21af53a2aeed19a1542a44) <-> 11111156 API endpoint: https://cloud.ibm.com Region: us-south User: Jane.Doe@ibm.com Account: Jane Doe\'s Account (111111111112a21af53a2aeed19a1542a44) <-> 11111156 Resource group: No resource group targeted, use 'ibmcloud target -g RESOURCE_GROUP' -
사용자에게 IBM Cloud Logs Routing 사용 권한을 부여하려면 위에서 생성된 출력에서 사용자 이름을 수집하세요. 이 예제에서는 Jane.Doe@ibm.com가 됩니다. 다음 명령에서
<username>을 사용자 아이디로 바꿉니다:ibmcloud iam user-policy-create <username> --roles Manager --service-name logs-router아이디에 직접 역할을 할당하는 대신 액세스 그룹에 역할을 할당하고 해당 액세스 그룹에 멤버로 아이디를 추가하는 것이 일반적인 전략입니다. 액세스 그룹에 대한 자세한 정보는 액세스 그룹 설정을 참조하십시오.
-
서비스 대 서비스 권한 부여 서비스 만들기
IBM Cloud® Identity and Access Management(IAM)를 사용하여 IBM Cloud Logs Routing에 IBM Cloud Logs 액세스 권한을 부여하는 권한을 만들어야 합니다.
UI를 통해 서비스 대 서비스 인증 생성하기
다음 단계를 완료하십시오.
-
IBM Cloud 콘솔에서 관리 > **액세스(IAM)**를 클릭하고 권한을 선택하십시오.
-
작성을 클릭하십시오.
-
소스 계정을 구성합니다. 이 계정을 선택합니다.
-
로그 라우팅를 소스 서비스로 선택합니다. 그런 다음 액세스 범위를 모든 리소스로 설정합니다.
-
대상 서비스로 클라우드 로그를 선택합니다. 그런 다음 액세스 범위를 모든 리소스로 설정하여 모든 IBM Cloud Logs 인스턴스에 대한 액세스 권한을 부여하거나 선택한 속성을 기반으로 한 리소스 > 서비스 인스턴스를 구성하여 단일 인스턴스에 액세스할 수 있도록 설정합니다.
이 유형의 권한 부여에는 다른 속성이 지원되지 않습니다.
-
서비스 액세스 섹션에서 발신자를 선택하여 대상 서비스에 액세스하는 소스 서비스에 액세스 권한을 할당합니다.
-
권한 부여를 클릭하십시오.
CLI를 사용하여 서비스 대 서비스 권한 부여 만들기
IBM Cloud Logs와 IBM® Cloud Logs Routing로 변환하여 IBM® Cloud Logs Routing 서비스가 테넌트에 로그를 보낼 수 있도록 하세요.
다음 단계를 완료하십시오.
-
IAM 무기명 토큰을 검색하여 환경 변수로 내보냅니다. 다음 명령을 실행하십시오.
IBM Cloud® Identity and Access Management (IAM) 액세스 토큰을 받아야 IBM® Cloud Logs Routing 서비스에 대한 요청을 인증할 수 있습니다. 자세한 정보는 액세스 토큰 검색을 참조하십시오.
예를 들어, 다음 CLI 명령을 실행하여 IAM 무기명 토큰을 검색하고 환경 변수로 내보낼 수 있습니다:
export IAM_TOKEN=`ibmcloud iam oauth-tokens --output json | jq -r '.iam_token'`토큰을 터미널에 표시하여 토큰이 올바르게 내보내졌는지 확인합니다.
echo $IAM_TOKEN출력은
Bearer로 시작하여 문자, 숫자, 기호가 포함된 문자열이 이어져야 합니다. -
권한 부여 정책을 만듭니다.
ibmcloud iam authorization-policy-create logs-router logs Sender
자세한 내용은 S2S 권한을 생성하여 IBM Cloud Logs 에 로그 전송 액세스 권한을 부여하기를 참조하세요.
IBM Cloud Logs 정보 검색하기
IBM Cloud Logs 인스턴스로 데이터를 라우팅하려면 로그가 전달될 대상에 대한 정보가 필요합니다. IBM Cloud Logs 인스턴스에는 다음 정보가 필요합니다:
- 인스턴스 CRN
- 수집(인그레스) 엔드포인트 및 포트
이 명령을 사용하여 URL 와 ID를 검색하십시오:
ibmcloud resource service-instances --service-name logs --long --output JSON | jq '[.[] | {name: .name, id: .id, region: .region_id, ingestion_endpoint: .extensions.external_ingress}]'
인스턴스가 여러 개 있는 경우 플랫폼 로그 수신에 사용할 인스턴스를 선택하고 나중에 사용할 수 있도록 정보를 저장합니다.
엔드포인트는 다음과 유사합니다:
ingestion_endpoint: 3a622101-7521-4002-bf91-8c26e17eedcf.ingress.eu-de.logs.cloud.ibm.com
ID는 다음과 유사합니다:
"crn:v1:bluemix:public:logs:eu-es:a/15ff25632a21af53a2aeed19a1542a44:3a622101-7521-4002-bf91-8c26e17eedcf::"
인스턴스에 대한 모든 정보를 얻으려면 다음을 실행하면 됩니다. ibmcloud resource service-instances --service-name logs --long --output JSON 이 명령은 모든 IBM Cloud Logs 인스턴스를 나열합니다. 다음 필드가 필요합니다: ID- 인스턴스의 CRN, extensions.external_ingress-
인그레스 엔드포인트, extensions.virtual_private_endpoints.endpoints.ports.port_max- 포트 값을 포함하는 필드입니다.
테넌트 및 대상 만들기
플랫폼 로그를 받으려면 IBM Cloud Logs Routing 서비스를 사용하여 테넌트를 만들어야 합니다.
플랫폼 로그를 수집하려는 지역에서 테넌트를 생성하고 IBM Cloud Logs 인스턴스로 라우팅해야 합니다.
API를 사용하여 테넌트 및 대상 만들기
명령줄에서 다음 cURL 요청을 실행합니다:
생성 요청은 지역과 대상에 테넌트를 만듭니다.
curl -X POST https://<MANAGEMENT-API-ENDPOINT>:443/v1/tenants \
-H "Content-Type: application/json" \
-H "Authorization: ${IAM_TOKEN}" \
-H 'IBM-API-Version: DATE' \
--data '{
"name": "TENANT_NAME",
"targets": [
{
"log_sink_crn": "CLOUD_LOGS_INSTANCE_ID",
"name": "TARGET_NAME",
"parameters": {
"host": "CLOUD_LOGS_INSTANCE_INGRESS_ENDPOINT",
"port": PORT
}
}
]
}'
여기서,
| 매개변수 | 설명 |
|---|---|
MANAGEMENT-API-ENDPOINT |
IBM® Cloud Logs Routing 서비스의 엔드포인트입니다. 자세한 정보는 엔드포인트를 참조하십시오. 예: https://management.eu-es.logs-router.cloud.ibm.com |
IAM_TOKEN |
이전에 획득한 IAM 토큰입니다. 위에서 설명한 대로 사용자 환경에서 내보낸 경우 자동으로 대체됩니다. |
DATE |
현재 날짜입니다. 예를 들어, 다음과 같습니다. 2024-03-01 |
TENANT_NAME |
테넌트의 이름입니다. 이름은 이 계정의 모든 테넌트에서 고유해야 하며 최대 35자까지 입력할 수 있습니다. 값에는 이러한 문자만 포함할 수 있습니다: a-z,0-9,-./ 예를 들어 eu-es-tenant 가 있습니다. |
TARGET_NAME |
대상 목적지의 이름입니다. 이름은 지역 내 모든 대상에서 고유해야 하며 최대 35자까지 입력할 수 있습니다. 값에는 이러한 문자만 포함할 수 있습니다: a-z,0-9,-./ 예를 들어 IBM Cloud Logs 인스턴스의 이름을 선택할 수 있습니다. 예를 들어 platformlogs-eu-es 가 있습니다. |
CLOUD_LOGS_INSTANCE_ID |
IBM Cloud Logs 인스턴스의 CRN입니다. |
CLOUD_LOGS_INSTANCE_INGRESS_ENDPOINT |
IBM Cloud Logs 인스턴스의 엔드포인트 |
PORT |
다음으로 설정 443 |
명령에는 이전에 수집한 값이 포함되어 있으므로 주의 깊게 검토하세요. 명령이 예상대로 작동하려면 필요한 대체어를 입력해야 합니다.
생성 요청이 성공하면 테넌트 메타데이터가 포함된 응답이 반환됩니다. 예를 들면 다음과 같습니다.
{
"id": "3517d2ed-9429-af34-ad52-34278391cbc8:",
"created_at": "2023-10-20T18:30:00.143156Z",
"updated_at": "2023-10-20T18:30:00.143156Z",
"crn": "crn:v1:bluemix:public:logs-router:eu-de:a/3516b8fa0a174a71899f5affa4f18d78:3517d2ed-9429-af34-ad52-34278391cbc8::",
"name": "tenant",
"etag": "\"822b4b5423e225206c1d75666595714a11925cd0f82b229839864443d6c3c049\"",
"targets": [
{
"id": "86432b-66a6-df12-7003-888a21a2b3",
"log_sink_crn": "crn:v1:bluemix:public:logs:eu-gb:a/91d1d1e42f9b684df920bbd06461c222:743e3b4f-72bc-4669-9fa6-0e6621d0b232::",
"name": "my-log-sink",
"etag": "\"c3a43545a7f2675970671ac3a57b8db067a1866b2222e1b950ee8da612e347c6\"",
"type": "logs",
"created_at": "2023-10-20T18:30:00.143156Z",
"updated_at": "2023-10-20T18:30:00.143156Z",
"parameters": {
"host": "743e3b4f-72bc-4669-9fa6-0e6621d0b232.ingress.eu-gb.logs.cloud.ibm.com",
"port": 443
}
}
]
}
UI를 사용하여 테넌트 만들기
다음 단계를 완료하십시오.
-
메뉴 아이콘
> 관찰 가능성을 클릭합니다.
-
로깅 > 라우팅를 클릭합니다.
-
대상 설정를 클릭합니다.
-
목록에서 IBM Cloud Logs 인스턴스를 선택합니다. IBM Cloud Logs Routing 로 라우팅되는 로그를 수신하려는 인스턴스입니다.
목록에서 IBM Cloud Logs 인스턴스를 선택하거나 특정 CRN을 지정할 수 있습니다.
IBM Cloud Logs 인스턴스는 구성하려는 계정과 동일한 계정에 있어야 합니다.
-
저장 을 클릭하십시오.
로그가 대상 대상으로 전송되었는지 확인하기
플랫폼 로그가 IBM Cloud Logs로 성공적으로 전송되는지 확인하려면 다음 단계를 수행하세요:
-
지역에서 플랫폼 로그를 수집할 대상으로 구성된 IBM Cloud Logs 인스턴스에 대한 IBM Cloud Logs 웹 UI 를 실행합니다. 이것은 대상을 설정하는 단계에서 선택한 인스턴스입니다.
-
사용자 지정 보기를 통해 로그를 봅니다. 자세한 정보는 로그 보기를 참조하십시오.
모든 플랫폼 로그는 JSON으로 생성됩니다. 인스턴스에서 ibm-플랫폼-로그의 값을 applicationName 로 선택하여 플랫폼 로그를 필터링할 수 있습니다.