1.14. STS 지원 클러스터에서 Amazon CloudMonitor로 로그 전달
Amazon CloudMonitor는 관리자가 AWS(Amazon Web Services)에서 리소스 및 애플리케이션을 관찰하고 모니터링할 수 있도록 지원하는 서비스입니다. AWS STS(Security Token Service)를 사용하는 IRSA(Service Accounts) 역할에 대한 AWS의 IAM(Identity and Access Management) 역할을 활용하여 OpenShift Logging에서 CloudMonitor로 로그를 안전하게 전달할 수 있습니다.
CloudMonitor의 인증은 다음과 같이 작동합니다.
- 로그 수집기는 서비스 계정 토큰을 AWS의 OpenID Connect(OIDC) 공급자에 제공하여 STS(Security Token Service)에서 임시 AWS 인증 정보를 요청합니다.
- AWS는 토큰을 검증합니다. 나중에 신뢰 정책에 따라 AWS는 로그 수집기에서 사용할 액세스 키 ID, 시크릿 액세스 키, 세션 토큰을 포함하여 수명이 짧은 임시 인증 정보를 발행합니다.
AWS의 Red Hat OpenShift Service와 같은 STS 지원 클러스터에서 AWS 역할은 필요한 신뢰 정책으로 사전 구성됩니다. 이를 통해 서비스 계정에서 역할을 가정할 수 있습니다. 따라서 IAM 역할을 사용하는 STS를 사용하여 AWS의 시크릿을 생성할 수 있습니다. 그런 다음 시크릿을 사용하여 CloudMonitor 출력으로 로그를 전달하는 ClusterLogForwarder 사용자 정의 리소스(CR)를 생성하거나 업데이트할 수 있습니다. 다음 절차에 따라 역할이 사전 구성된 경우 시크릿 및 ClusterLogForwarder CR을 생성합니다.
- 기존 AWS 역할을 사용하여 CloudMonitor의 시크릿 생성
- STS 지원 클러스터에서 Amazon CloudMonitor로 로그 전달
신뢰 정책으로 AWS IAM 역할이 사전 구성되지 않은 경우 먼저 필요한 신뢰 정책으로 역할을 생성해야 합니다. 시크릿, ClusterLogForwarder CR 및 역할을 생성하려면 다음 절차를 완료합니다.
1.14.1. AWS IAM 역할 생성 링크 복사링크가 클립보드에 복사되었습니다!
서비스 계정에서 AWS 리소스에 안전하게 액세스하기 위해 가정할 수 있는 AWS(Amazon Web Services) IAM 역할을 생성합니다.
다음 절차에서는 AWS CLI를 사용하여 AWS IAM 역할을 생성하는 방법을 보여줍니다. 또는 CCO(Cloud Credential Operator) 유틸리티 ccoctl 을 사용할 수 있습니다. ccoctl 유틸리티를 사용하면 ClusterLogForwarder 사용자 정의 리소스(CR)에 필요하지 않은 IAM 역할 정책에 많은 필드가 생성됩니다. 이러한 추가 필드는 CR에서 무시합니다. 그러나 ccoctl 유틸리티는 IAM 역할을 구성하는 편리한 방법을 제공합니다. 자세한 내용은 구성 요소에 대한 단기 인증 정보가 있는 수동 모드를 참조하십시오.
사전 요구 사항
- AWS에 대해 활성화되어 구성된 STS(Security Token Service)가 활성화된 Red Hat OpenShift Logging 클러스터에 액세스할 수 있습니다.
- AWS 계정에 대한 관리자 액세스 권한이 있습니다.
- AWS CLI가 설치되어 있어야 합니다.
프로세스
CloudMonitor에 로그를 쓸 수 있는 권한을 부여하는 IAM 정책을 생성합니다.
다음 콘텐츠를 사용하여
cw-iam-role-policy.json과 같은 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 이전 정책 정의를 기반으로 IAM 정책을 생성합니다.
aws iam create-policy \ --policy-name cluster-logging-allow \ --policy-document file://cw-iam-role-policy.jsonaws iam create-policy \ --policy-name cluster-logging-allow \ --policy-document file://cw-iam-role-policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 정책의
Arn값을 확인합니다.
로깅 서비스 계정에서 IAM 역할을 가정할 수 있는 신뢰 정책을 생성합니다.
다음 명령을 실행하여 이전에 정의한 신뢰 정책을 기반으로 IAM 역할을 생성합니다.
aws iam create-role --role-name openshift-logger --assume-role-policy-document file://cw-trust-policy.json
$ aws iam create-role --role-name openshift-logger --assume-role-policy-document file://cw-trust-policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 역할의
Arn값을 확인합니다.다음 명령을 실행하여 역할에 정책을 연결합니다.
aws iam put-role-policy \ --role-name openshift-logger --policy-name cluster-logging-allow \ --policy-document file://cw-role-policy.json$ aws iam put-role-policy \ --role-name openshift-logger --policy-name cluster-logging-allow \ --policy-document file://cw-role-policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 역할 및 권한 정책을 확인합니다.
aws iam get-role --role-name openshift-logger
$ aws iam get-role --role-name openshift-loggerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
ROLE arn:aws:iam::123456789012:role/openshift-logger ASSUMEROLEPOLICYDOCUMENT 2012-10-17 STATEMENT sts:AssumeRoleWithWebIdentity Allow STRINGEQUALS system:serviceaccount:openshift-logging:openshift-logger PRINCIPAL arn:aws:iam::123456789012:oidc-provider/<OPENSHIFT_OIDC_PROVIDER_URL>
ROLE arn:aws:iam::123456789012:role/openshift-logger ASSUMEROLEPOLICYDOCUMENT 2012-10-17 STATEMENT sts:AssumeRoleWithWebIdentity Allow STRINGEQUALS system:serviceaccount:openshift-logging:openshift-logger PRINCIPAL arn:aws:iam::123456789012:oidc-provider/<OPENSHIFT_OIDC_PROVIDER_URL>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.14.2. 기존 AWS 역할을 사용하여 AWS CloudMonitor의 시크릿 생성 링크 복사링크가 클립보드에 복사되었습니다!
oc create secret --from-literal 명령을 사용하여 구성된 AWS IAM 역할에서 AWS(Amazon Web Services) Security Token Service(STS)의 시크릿을 생성합니다.
사전 요구 사항
- AWS IAM 역할을 생성했습니다.
- Red Hat OpenShift Logging에 대한 관리자 액세스 권한이 있습니다.
프로세스
CLI에서 다음을 입력하여 AWS의 시크릿을 생성합니다.
oc create secret generic sts-secret -n openshift-logging --from-literal=role_arn=arn:aws:iam::123456789012:role/openshift-logger
$ oc create secret generic sts-secret -n openshift-logging --from-literal=role_arn=arn:aws:iam::123456789012:role/openshift-loggerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 시크릿 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.14.3. STS 지원 클러스터에서 Amazon CloudMonitor로 로그 전달 링크 복사링크가 클립보드에 복사되었습니다!
AWS(Amazon Web Services) Security Token Service(STS)가 활성화된 클러스터에 배포된 Red Hat OpenShift의 로깅에서 Amazon CloudMonitor로 로그를 전달할 수 있습니다. Amazon CloudMonitor는 관리자가 AWS에서 리소스 및 애플리케이션을 관찰하고 모니터링할 수 있도록 지원하는 서비스입니다.
사전 요구 사항
- Red Hat OpenShift Logging Operator가 설치되었습니다.
- 인증 정보 시크릿을 구성했습니다.
- Red Hat OpenShift Logging에 대한 관리자 액세스 권한이 있습니다.
프로세스
ClusterLogForwarderCR(사용자 정의 리소스)을 생성하거나 업데이트합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 서비스 계정을 지정합니다.
- 2
- 출력 이름을 지정합니다.
- 3
cloudwatch유형을 지정합니다.- 4
- 로그 스트림의 그룹 이름을 지정합니다.
- 5
- AWS 리전을 지정합니다.
- 6
- STS의 인증 유형으로
iamRole을 지정합니다. - 7
- 시크릿의 이름과
role_arn리소스가 저장된 키를 지정합니다. - 8
- 인증에 사용할 서비스 계정 토큰을 지정합니다. 예상 서비스 계정 토큰을 사용하려면
serviceAccount 에서를 사용합니다. - 9
- 파이프라인을 사용하여 전달할 로그 유형 (
application,infrastructure, 또는audit)을 지정합니다. - 10
- 이 파이프라인으로 로그를 전달할 때 사용할 출력 이름을 지정합니다.
1.14.4. Amazon S3 끝점으로 로그 전달 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Logging Operator를 사용하여 로그를 수집하여 S3 구성된 엔드포인트로 전달할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift Logging Operator가 설치되어 있습니다.
- 인증 정보 시크릿을 구성했습니다.
- OpenShift Container Platform에 대한 관리자 액세스 권한이 있습니다.
-
OpenShift CLI(
oc)가 설치되어 있어야 합니다.
프로세스
ClusterLogForwarderCR(사용자 정의 리소스)을 생성하거나 업데이트합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
keyPrefix: 로그 오브젝트에 대한 S3 키 접두사를 정의합니다.||로 구분되고 정적 폴백 값으로 끝나는 필드 경로로 구성된 정적 또는 동적 값을 사용할 수 있습니다. -
bucket: 로그를 저장할 S3 버킷 이름을 지정합니다.
-
다음 명령을 실행하여
ClusterLogForwarderCR을 적용합니다.oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.14.5. AssumeRole을 사용한 계정 로그 전달 링크 복사링크가 클립보드에 복사되었습니다!
AWS STS(Security Token Service) AssumeRole 기능을 사용하여 외부 AWS 계정에 로그를 전달할 수 있습니다. 계정 간 로그 전달을 사용하면 보안 경계를 유지하면서 여러 AWS 계정에서 중앙 집중식 로깅이 가능합니다.
계정 간 로그 전달은 다음과 같이 작동합니다.
- 초기 인증: 수집기는 IAM(Identity and Access Management) 역할 또는 액세스 키를 사용하여 클러스터의 AWS 계정에 인증합니다.
- 역할 중단: 초기 인증 후 수집기는 대상 AWS 계정에서 역할을 가정합니다.
- 로그 전달: 수집기는 가정된 역할의 인증 정보를 사용하여 대상 계정의 CloudMonitor 또는 S3 버킷으로 로그를 전달합니다.
계정 간 로그 전달을 사용할 때 다음 보안 고려 사항을 고려하십시오.
계정 간 역할 가정에는 외부 ID를 사용합니다.
외부 ID는 추가 식별자 역할을 합니다.
참고외부 ID는 CloudTrail 로그 및 API 응답에 표시됩니다. 따라서 이들은 비밀로 간주되지 않습니다.
외부 ID를 생성할 때 다음 조치를 수행합니다.
- 각 신뢰 관계에 대해 고유해야 합니다.
- 이는 예측할 수 없으며 공개 정보를 기반으로 하지 않아야 합니다.
- 가정된 역할에 필요한 최소 권한만 부여합니다.
- 역할 ARM(Amazon Resource Names) 및 토큰을 포함하는 보안을 보호합니다.
-
AssumeRole활동을 위해 CloudTrail을 모니터링합니다.
1.14.6. 계정 간 액세스를 위한 AWS IAM 구성 링크 복사링크가 클립보드에 복사되었습니다!
계정 간 액세스를 위해 AWS IAM(Identity Access Management)을 구성할 수 있습니다.
사전 요구 사항
- 관리자 권한이 있습니다.
- 대상 역할을 생성했으며 대상 역할에는 Cloudwatch 또는 S3 출력에 데이터를 보낼 수 있는 권한이 있습니다.
- 초기 및 대상 역할에 대한 정책을 업데이트할 수 있는 권한이 있습니다.
프로세스
클러스터 계정에 초기 계정을 생성하여 필요한 권한으로 대상 역할을 가정합니다.
초기 계정은 사용자 또는 IAM 역할일 수 있습니다. 이 계정은 대상 역할을 가정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 대상 역할에서 신뢰 정책을 생성하고 초기 클러스터 역할 및 선택적으로 외부 ID를 지정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같이
Principal.AWS필드를 설정합니다.초기 계정이 사용자인 경우 형식을 사용합니다.
arn:aws:iam::<aws-account-id>:user/<user-name>초기 계정이 IAM 역할인 경우 형식을 사용합니다.
arn:aws:iam::<aws-account-id>:role/<role-name>
로그를 CloudMonitor 또는 S3 출력에 전달할지 여부에 따라 대상 역할에서 CloudWatch 또는 S3 권한을 구성합니다.
CloudMonitor 권한
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 권한
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.14.7. 계정 간 전달을 위한 ClusterLogForwarder 구성의 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 CloudMonitor로 로그를 전달할 때 계정 간 AssumeRole 필드 구성을 사용하는 방법을 보여줍니다.
AssumeRole 인증을 사용하는 ClusterLogForwarder 리소스
-
authentication.assumeRole.roleARN: 대상 계정에서 가정할 역할의 ARN이 포함된 보안에 대한 참조입니다. -
authentication.assumeRole.externalID: 역할을 가정하기 위해 시행할 외부 ID가 포함된 문자열입니다. 이렇게 하면 외부 ID에 대한 지식이 있는 엔터티만 역할을 가정할 수 있도록 하여 추가 보안을 제공할 수 있습니다.
가정된 역할 세션의 세션 이름은 감사 목적으로 AWS CloudTrail 로그에서 의미 있는 ID를 제공하기 위해 Red Hat OpenShift Logging Operator에 의해 자동으로 생성됩니다. Operator는 다음과 같이 클러스터 메타데이터를 사용하여 세션 이름을 생성합니다.
-
기본 형식:
{clusterId}-{clfName}-{outputName}. -
대체 형식(클러스터 메타데이터를 사용할 수 없는 경우):
output-{outputName}. - 항상 64자(AWS 요구 사항)로 잘립니다.
- 고유성을 위해 클러스터 ID의 처음 8자를 사용합니다.
1.14.8. 교차 계정 로그 전달 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 계정 간 로그 전달과 문제를 해결하기 위해 수행할 수 있는 단계에 발생할 수 있는 문제에 대해 설명합니다.
| 문제 | 문제 해결 단계 |
|---|---|
| Role Assumption Fails |
|
| 권한 거부 |
|
| 잘못된 역할 또는 사용자 ARN |
|
1.14.9. 원하지 않는 로그 레코드를 삭제하도록 콘텐츠 필터 구성 링크 복사링크가 클립보드에 복사되었습니다!
모든 클러스터 로그를 수집하면 많은 양의 데이터가 생성되므로 이동 및 저장하는 데 비용이 많이 들 수 있습니다. 볼륨을 줄이기 위해 전달 전에 원하지 않는 로그 레코드를 제외하도록 드롭 필터를 구성할 수 있습니다. 로그 수집기는 필터에 대해 로그 스트림을 평가하고 지정된 조건과 일치하는 레코드를 삭제합니다.
drop 필터는 test 필드를 사용하여 로그 레코드를 평가하기 위한 하나 이상의 조건을 정의합니다. 이 필터는 다음 규칙을 적용하여 레코드를 삭제할지 여부를 확인합니다.
- 지정된 조건이 모두 true로 평가되면 테스트가 통과됩니다.
- 테스트가 통과하면 필터에서 로그 레코드를 삭제합니다.
-
drop필터 구성에 여러 테스트를 정의하면 테스트 중 하나가 통과하면 필터에서 로그 레코드를 삭제합니다. - 예를 들어 참조된 필드가 누락된 조건을 평가하는 동안 오류가 발생하면 해당 조건이 false로 평가됩니다.
사전 요구 사항
- Red Hat OpenShift Logging Operator가 설치되어 있습니다.
- 관리자 권한이 있습니다.
-
ClusterLogForwarderCR(사용자 정의 리소스)을 생성했습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
기존
ClusterLogForwarder구성을 추출하여 로컬 파일로 저장합니다.oc get clusterlogforwarder <name> -n <namespace> -o yaml > <filename>.yaml
$ oc get clusterlogforwarder <name> -n <namespace> -o yaml > <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
-
<name>은 구성할ClusterLogForwarder인스턴스의 이름입니다. -
<namespace>는ClusterLogForwarder인스턴스를 생성한 네임스페이스입니다(예:openshift-logging). -
<filename>은 구성을 저장하는 로컬 파일의 이름입니다.
-
ClusterLogForwarderCR의필터사양에 원하지 않는 로그 레코드를 삭제하는 구성을 추가합니다.ClusterLogForwarderCR의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 필터 유형을 지정합니다.
drop필터는 필터 구성과 일치하는 로그 레코드를 삭제합니다. - 2
dropfilter에 대한 구성 옵션을 지정합니다.- 3
- 필터가 로그 레코드를 삭제하는지 여부를 평가할 테스트에 대한 조건을 지정합니다.
- 4
- 로그 레코드에서 점으로 구분된 필드 경로를 지정합니다.
-
각 경로 세그먼트에는 영숫자 및 밑줄,
a-z,A-Z0-9,_.kubernetes.namespace_name을 포함할 수 있습니다. -
세그먼트에 다른 문자가 포함된 경우 세그먼트는 따옴표로 묶어야 합니다(예:
.kubernetes.labels."app.version-1.2/beta"). -
단일
테스트 구성에 여러 필드 경로를 포함할 수 있지만 테스트가통과하고drop필터를 적용하려면 모두 true로 평가되어야 합니다.
-
각 경로 세그먼트에는 영숫자 및 밑줄,
- 5
- 정규식을 지정합니다. 로그 레코드가 이 정규식과 일치하는 경우 해당 레코드가 삭제됩니다.
- 6
- 정규식을 지정합니다. 로그 레코드가 이 정규식과 일치하지 않으면 삭제됩니다.
- 7
drop필터를 사용하는 파이프라인을 지정합니다.
참고단일
필드경로에 대해matches또는notMatches조건을 설정할 수 있지만 둘 다 설정할 수는 없습니다.우선순위가 높은 로그 레코드만 유지하는 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 테스트가 있는 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ClusterLogForwarderCR을 적용합니다.oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.14.10. API 감사 필터 개요 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift API 서버는 모든 API 호출에 대한 감사 이벤트를 생성합니다. 이러한 이벤트에는 요청, 응답 및 요청자의 ID에 대한 세부 정보가 포함됩니다. 이로 인해 대량의 데이터가 발생할 수 있습니다.
API 감사 필터는 필수가 아닌 이벤트를 제외하고 이벤트 크기를 줄이기 위해 규칙을 사용하여 감사 추적을 관리하는 데 도움이 됩니다. 규칙은 순서대로 확인되며 첫 번째 일치 시에 확인 중지됩니다. 이벤트의 데이터 양은 수준 필드의 값에 따라 달라집니다.
-
없음: 이벤트가 삭제되었습니다. -
metadata: 이벤트에는 감사 메타데이터와 제외 요청 및 응답 본문이 포함됩니다. -
request : 이벤트에는 감사 메타데이터와 요청 본문이 포함되어 있으며 응답 본문이 제외됩니다.
-
RequestResponse: 이벤트에는 메타데이터, 요청 본문 및 응답 본문이라는 모든 데이터가 포함됩니다. 응답 본문은 매우 커질 수 있습니다. 예를 들어oc get pods -A는 클러스터의 모든 포드에 대한 YAML 설명이 포함된 응답 본문을 생성합니다.
사용자 로깅 배포에 Vector 수집기가 설정된 경우에만 API 감사 필터 기능을 사용할 수 있습니다.
ClusterLogForwarder CR(사용자 정의 리소스)은 표준 Kubernetes 감사 정책과 동일한 형식을 사용합니다. ClusterLogForwarder CR은 다음과 같은 추가 기능을 제공합니다.
- 와일드카드
-
사용자, 그룹, 네임스페이스 및 리소스의 이름에는 선행 또는 후행
*별표 문자가 있을 수 있습니다. 예를 들어openshift-\*네임스페이스는openshift-apiserver또는openshift-authentication네임스페이스와 일치합니다.\*/status리소스는Pod/status또는Deployment/status리소스와 일치합니다. - 기본 규칙
정책의 규칙과 일치하지 않는 이벤트는 다음과 같이 필터링됩니다.
-
get,list및watch와 같은 읽기 전용 시스템 이벤트가 삭제됩니다. - 서비스 계정은 서비스 계정과 동일한 네임스페이스 내에서 발생하는 이벤트를 기록합니다.
- 기타 모든 이벤트는 구성된 속도 제한에 따라 전달됩니다.
이러한 기본값을 비활성화하려면
수준필드만 있는 규칙으로 규칙 목록을 종료하거나 빈 규칙을 추가합니다.-
- 응답 코드 생략
-
생략할 정수 상태 코드 목록입니다. 이벤트가 생성되지 않은 HTTP 상태 코드를 나열하는
OmitResponseCodes필드를 사용하여 응답에서 HTTP 상태 코드를 기반으로 이벤트를 삭제할 수 있습니다. 기본값은[404, 409, 422, 429]입니다. 값이 빈 목록인 경우[]에서는 상태 코드가 생략되지 않습니다.
ClusterLogForwarder CR 감사 정책은 OpenShift Container Platform 감사 정책 외에도 작동합니다. ClusterLogForwarder CR 감사 필터는 로그 수집기가 전달하는 내용을 변경하고 동사, 사용자, 그룹, 네임스페이스 또는 리소스별로 필터링하는 기능을 제공합니다. 여러 필터를 생성하여 동일한 감사 스트림의 다른 요약을 다른 위치로 보낼 수 있습니다. 예를 들어 자세한 스트림을 로컬 클러스터 로그 저장소로 전송하고 덜 자세한 스트림을 원격 사이트로 보낼 수 있습니다.
-
감사 로그를 수집하려면
collect-audit-logs클러스터 역할이 있어야 합니다. - 제공된 다음 예제는 감사 정책에서 가능한 규칙 범위를 설명하기 위한 것이며 권장되는 구성은 아닙니다.
감사 정책의 예
1.14.11. 레이블 표현식 또는 일치하는 라벨 키와 값을 포함하여 입력 시 애플리케이션 로그 필터링 링크 복사링크가 클립보드에 복사되었습니다!
입력 선택기를 사용하여 라벨 표현식 또는 일치하는 라벨 키와 해당 값을 기반으로 애플리케이션 로그를 포함할 수 있습니다.
프로세스
ClusterLogForwarderCR의입력 사양에필터 구성을 추가합니다.다음 예제에서는 라벨 표현식 또는 일치하는 라벨 키/값에 따라 로그를 포함하도록
ClusterLogForwarderCR을 구성하는 방법을 보여줍니다.ClusterLogForwarderCR의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ClusterLogForwarderCR을 적용합니다.oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.14.12. 로그 레코드를 정리하도록 콘텐츠 필터 구성 링크 복사링크가 클립보드에 복사되었습니다!
prune 필터를 구성하면 로그 수집기는 전달 전에 필터에 대해 로그 스트림을 평가합니다. 수집기는 Pod 주석과 같은 낮은 값 필드를 제거하여 로그 레코드를 정리합니다.
사전 요구 사항
- Red Hat OpenShift Logging Operator가 설치되어 있습니다.
- 관리자 권한이 있습니다.
-
ClusterLogForwarderCR(사용자 정의 리소스)을 생성했습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
기존
ClusterLogForwarder구성을 추출하여 로컬 파일로 저장합니다.oc get clusterlogforwarder <name> -n <namespace> -o yaml > <filename>.yaml
$ oc get clusterlogforwarder <name> -n <namespace> -o yaml > <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
-
<name>은 구성할ClusterLogForwarder인스턴스의 이름입니다. -
<namespace>는ClusterLogForwarder인스턴스를 생성한 네임스페이스입니다(예:openshift-logging). -
<filename>은 구성을 저장하는 로컬 파일의 이름입니다.
-
ClusterLogForwarderCR의필터사양에 로그 레코드를 정리하는 구성을 추가합니다.중요매개 변수와
notIn매개변수를 둘 다 지정하면 정리 중에notIn배열이 우선합니다.notIn배열을 사용하여 레코드를 정리하면in배열을 사용하여 정리됩니다.ClusterLogForwarderCR의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 필터 유형을 지정합니다.
prune필터는 구성된 필드를 통해 로그 레코드를 정리합니다. - 2
정리필터에 대한 구성 옵션을 지정합니다.-
in및notIn필드는 로그 레코드의 필드에 대한 점으로 구분된 경로의 배열입니다. -
각 경로 세그먼트에는 alpha-numeric 문자 및 밑줄,
a-z,0-9,_.kubernetes.namespace_name을 포함할 수 있습니다. -
세그먼트에 다른 문자가 포함된 경우 세그먼트는 따옴표로 묶어야 합니다(예:
.kubernetes.labels."app.version-1.2/beta").
-
- 3
- 선택 사항: 로그 레코드에서 제거할 필드를 지정합니다. 로그 수집기는 다른 모든 필드를 유지합니다.
- 4
- 선택 사항: 로그 레코드에 유지할 필드를 지정합니다. 로그 수집기는 다른 모든 필드를 제거합니다.
- 5
prune필터가 적용되는 파이프라인을 지정합니다.중요-
필터는 로그 레코드에서
.log_type.log_source,.message필드를 제거할 수 없습니다. 이를notIn필드에 포함해야 합니다. -
GoogleCloudLogging출력을 사용하는 경우notIn필드에.hostname을 포함해야 합니다.
-
필터는 로그 레코드에서
다음 명령을 실행하여
ClusterLogForwarderCR을 적용합니다.oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow