2.2. Loki 오브젝트 스토리지
Loki Operator는 AWS S3 및 Minio 및 OpenShift Data Foundation 과 같은 기타 S3 호환 오브젝트 저장소를 지원합니다. Azure,GCS 및 Swift 도 지원됩니다.
Loki 스토리지에 권장되는 nomenclature는 logging-loki- <your_storage_provider>입니다
.
다음 표는 각 스토리지 공급자에 대한 LokiStack
CR(사용자 정의 리소스) 내의 유형
값을 보여줍니다. 자세한 내용은 스토리지 공급자의 섹션을 참조하십시오.
스토리지 공급자 | 보안 유형 값 |
---|---|
AWS | s3 |
Azure | azure |
Google Cloud | gcs |
Minio | s3 |
OpenShift Data Foundation | s3 |
Swift | swift |
2.2.1. AWS 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Loki Operator를 설치했습니다.
-
OpenShift CLI(
oc
)를 설치합니다. - AWS에 버킷 을 생성했습니다.
- AWS IAM 정책 및 IAM 사용자를 생성했습니다.
프로세스
다음 명령을 실행하여 이름
logging-loki-aws
를 사용하여 오브젝트 스토리지 시크릿을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.1.1. STS가 활성화된 클러스터의 AWS 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
클러스터에 STS가 활성화된 경우 CCO(Cloud Credential Operator)는 AWS 토큰을 사용하여 단기 인증을 지원합니다.
다음 명령을 실행하여 Loki 오브젝트 스토리지 보안을 수동으로 생성할 수 있습니다.
oc -n openshift-logging create secret generic "logging-loki-aws" \ --from-literal=bucketnames="<s3_bucket_name>" \ --from-literal=region="<bucket_region>" \ --from-literal=audience="<oidc_audience>"
$ oc -n openshift-logging create secret generic "logging-loki-aws" \
--from-literal=bucketnames="<s3_bucket_name>" \
--from-literal=region="<bucket_region>" \
--from-literal=audience="<oidc_audience>"
- 1
- 선택적 주석, 기본값은
openshift
입니다.
2.2.2. Azure 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Loki Operator를 설치했습니다.
-
OpenShift CLI(
oc
)를 설치합니다. - Azure에 버킷 을 생성했습니다.
프로세스
다음 명령을 실행하여 name
logging-loki-azure
를 사용하여 오브젝트 스토리지 시크릿을 생성합니다.oc create secret generic logging-loki-azure \ --from-literal=container="<azure_container_name>" \ --from-literal=environment="<azure_environment>" \ --from-literal=account_name="<azure_account_name>" \ --from-literal=account_key="<azure_account_key>"
$ oc create secret generic logging-loki-azure \ --from-literal=container="<azure_container_name>" \ --from-literal=environment="<azure_environment>" \
1 --from-literal=account_name="<azure_account_name>" \ --from-literal=account_key="<azure_account_key>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 지원되는 환경 값은
AzureGlobal
,AzureChinaCloud
,AzureGermanCloud
또는AzureUSGovernment
입니다.
2.2.2.1. Microsoft Entra Workload ID를 사용하는 클러스터용 Azure 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
클러스터에 Microsoft Entra Workload ID가 활성화된 경우 CCO(Cloud Credential Operator)는 Workload ID를 사용하여 단기 인증을 지원합니다.
다음 명령을 실행하여 Loki 오브젝트 스토리지 보안을 수동으로 생성할 수 있습니다.
oc -n openshift-logging create secret generic logging-loki-azure \ --from-literal=environment="<azure_environment>" \ --from-literal=account_name="<storage_account_name>" \ --from-literal=container="<container_name>"
$ oc -n openshift-logging create secret generic logging-loki-azure \
--from-literal=environment="<azure_environment>" \
--from-literal=account_name="<storage_account_name>" \
--from-literal=container="<container_name>"
2.2.3. Google Cloud Platform 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
프로세스
-
GCP에서 수신한 서비스 계정 인증 정보를
key.json
이라는 파일에 복사합니다. 다음 명령을 실행하여 이름
logging-loki-gcs
를 사용하여 오브젝트 스토리지 시크릿을 생성합니다.oc create secret generic logging-loki-gcs \ --from-literal=bucketname="<bucket_name>" \ --from-file=key.json="<path/to/key.json>"
$ oc create secret generic logging-loki-gcs \ --from-literal=bucketname="<bucket_name>" \ --from-file=key.json="<path/to/key.json>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.4. Minio 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
프로세스
다음 명령을 실행하여 name
logging-loki-minio
를 사용하여 오브젝트 스토리지 시크릿을 생성합니다.oc create secret generic logging-loki-minio \ --from-literal=bucketnames="<bucket_name>" \ --from-literal=endpoint="<minio_bucket_endpoint>" \ --from-literal=access_key_id="<minio_access_key_id>" \ --from-literal=access_key_secret="<minio_access_key_secret>"
$ oc create secret generic logging-loki-minio \ --from-literal=bucketnames="<bucket_name>" \ --from-literal=endpoint="<minio_bucket_endpoint>" \ --from-literal=access_key_id="<minio_access_key_id>" \ --from-literal=access_key_secret="<minio_access_key_secret>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.5. OpenShift Data Foundation 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Loki Operator를 설치했습니다.
-
OpenShift CLI(
oc
)를 설치합니다. - OpenShift Data Foundation 을 배포했습니다.
- 오브젝트 스토리지를 위해 OpenShift Data Foundation 클러스터를 구성했습니다.
프로세스
openshift-logging
네임스페이스에ObjectBucketClaim
사용자 정의 리소스를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 관련
ConfigMap
오브젝트에서 버킷 속성을 가져옵니다.BUCKET_HOST=$(oc get -n openshift-logging configmap loki-bucket-odf -o jsonpath='{.data.BUCKET_HOST}') BUCKET_NAME=$(oc get -n openshift-logging configmap loki-bucket-odf -o jsonpath='{.data.BUCKET_NAME}') BUCKET_PORT=$(oc get -n openshift-logging configmap loki-bucket-odf -o jsonpath='{.data.BUCKET_PORT}')
BUCKET_HOST=$(oc get -n openshift-logging configmap loki-bucket-odf -o jsonpath='{.data.BUCKET_HOST}') BUCKET_NAME=$(oc get -n openshift-logging configmap loki-bucket-odf -o jsonpath='{.data.BUCKET_NAME}') BUCKET_PORT=$(oc get -n openshift-logging configmap loki-bucket-odf -o jsonpath='{.data.BUCKET_PORT}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 관련 시크릿에서 버킷 액세스 키를 가져옵니다.
ACCESS_KEY_ID=$(oc get -n openshift-logging secret loki-bucket-odf -o jsonpath='{.data.AWS_ACCESS_KEY_ID}' | base64 -d) SECRET_ACCESS_KEY=$(oc get -n openshift-logging secret loki-bucket-odf -o jsonpath='{.data.AWS_SECRET_ACCESS_KEY}' | base64 -d)
ACCESS_KEY_ID=$(oc get -n openshift-logging secret loki-bucket-odf -o jsonpath='{.data.AWS_ACCESS_KEY_ID}' | base64 -d) SECRET_ACCESS_KEY=$(oc get -n openshift-logging secret loki-bucket-odf -o jsonpath='{.data.AWS_SECRET_ACCESS_KEY}' | base64 -d)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
logging-loki-odf
라는 이름으로 오브젝트 스토리지 시크릿을 생성합니다.oc create -n openshift-logging secret generic logging-loki-odf \ --from-literal=access_key_id="<access_key_id>" \ --from-literal=access_key_secret="<secret_access_key>" \ --from-literal=bucketnames="<bucket_name>" \ --from-literal=endpoint="https://<bucket_host>:<bucket_port>"
$ oc create -n openshift-logging secret generic logging-loki-odf \ --from-literal=access_key_id="<access_key_id>" \ --from-literal=access_key_secret="<secret_access_key>" \ --from-literal=bucketnames="<bucket_name>" \ --from-literal=endpoint="https://<bucket_host>:<bucket_port>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.6. Swift 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Loki Operator를 설치했습니다.
-
OpenShift CLI(
oc
)를 설치합니다. - Swift에 버킷 을 생성했습니다.
프로세스
다음 명령을 실행하여 이름
logging-loki-swift
를 사용하여 오브젝트 스토리지 시크릿을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택적으로 다음 명령을 실행하여 프로젝트별 데이터, 지역 또는 둘 다를 제공할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.7. 단기 인증 정보를 사용하는 클러스터에 Loki 로그 저장소 배포 링크 복사링크가 클립보드에 복사되었습니다!
일부 스토리지 공급자의 경우 설치 중에 Cloud Credential Operator 유틸리티(ccoctl
)를 사용하여 단기 인증 정보를 구현할 수 있습니다. 이러한 인증 정보는 OpenShift Container Platform 클러스터 외부에서 생성 및 관리됩니다. 자세한 내용은 구성 요소에 대한 단기 인증 정보가 있는 수동 모드를 참조하십시오.
이 인증 정보 전략을 사용하는 클러스터에서 Loki Operator의 새 설치 중에 단기 인증 정보 인증을 구성해야 합니다. 이 기능을 사용하기 위해 다른 인증 정보 전략을 사용하는 기존 클러스터를 구성할 수 없습니다.
2.2.7.1. 클라우드 기반 로그 저장소에 액세스하기 위한 워크로드 ID 페더레이션으로 인증 링크 복사링크가 클립보드에 복사되었습니다!
워크로드 ID 페더레이션을 단기 토큰과 함께 사용하여 클라우드 기반 로그 저장소에 인증할 수 있습니다. 워크로드 ID 페더레이션을 사용하면 클러스터에 수명이 긴 인증 정보를 저장할 필요가 없으므로 인증 정보 유출 위험을 줄이고 시크릿 관리를 단순화할 수 있습니다.
사전 요구 사항
- 관리자 권한이 있습니다.
프로세스
다음 옵션 중 하나를 사용하여 인증을 활성화합니다.
-
OpenShift Container Platform 웹 콘솔을 사용하여 Loki Operator를 설치한 경우 시스템은 수명이 짧은 토큰을 사용하는 클러스터를 자동으로 탐지합니다. 역할을 생성하고 Loki Operator에서 보안을 채우는
CredentialsRequest
오브젝트를 생성하는 데 필요한 데이터를 제공하라는 메시지가 표시됩니다. OpenShift CLI(
oc
)를 사용하여 Loki Operator를 설치한 경우Subscription
오브젝트를 수동으로 생성해야 합니다. 다음 샘플에 표시된 대로 스토리지 공급자에 적절한 템플릿을 사용합니다. 이 인증 전략은 샘플 내에 표시된 스토리지 공급자만 지원합니다.Microsoft Azure 샘플 구독
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS(Amazon Web Services) 샘플 서브스크립션
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GCP(Google Cloud Platform) 샘플 서브스크립션
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
OpenShift Container Platform 웹 콘솔을 사용하여 Loki Operator를 설치한 경우 시스템은 수명이 짧은 토큰을 사용하는 클러스터를 자동으로 탐지합니다. 역할을 생성하고 Loki Operator에서 보안을 채우는
2.2.7.2. 웹 콘솔을 사용하여 LokiStack 사용자 정의 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 웹 콘솔을 사용하여 LokiStack
CR(사용자 정의 리소스)을 생성할 수 있습니다.
사전 요구 사항
- 관리자 권한이 있습니다.
- OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
- Loki Operator를 설치했습니다.
프로세스
-
Operator
설치된 Operator 페이지로 이동합니다. 모든 인스턴스 탭을 클릭합니다. - Create new 드롭다운 목록에서 LokiStack 을 선택합니다.
YAML 보기를 선택한 다음 다음 템플릿을 사용하여
LokiStack
CR을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
logging-loki
라는 이름을 사용합니다.- 2
- 배포 크기를 지정합니다. 로깅 5.8 이상 버전에서 Loki의 프로덕션 인스턴스에 지원되는 크기 옵션은
1x.extra-small
,1x.small
, 또는1x.medium
입니다. - 3
- 로그 스토리지에 사용되는 시크릿을 지정합니다.
- 4
- 해당 스토리지 유형을 지정합니다.
- 5
- 선택적 필드, 로깅 5.9 이상 지원되는 사용자 구성 값은 다음과 같습니다.
static
은 Secret에 저장된 인증 정보를 사용하여 지원되는 모든 오브젝트 스토리지 유형에 사용할 수 있는 기본 인증 모드입니다. 인증 정보 소스에서 검색된 단기 토큰에 대한token
입니다. 이 모드에서 정적 구성에는 오브젝트 스토리지에 필요한 인증 정보가 포함되어 있지 않습니다. 대신 서비스를 사용하여 런타임 중에 생성되므로 더 짧은 자격 증명과 훨씬 더 세분화된 제어가 가능합니다. 이 인증 모드는 모든 오브젝트 스토리지 유형에서 지원되지 않습니다.token-cco
는 Loki가 관리 STS 모드에서 실행되고 STS/WIF 클러스터에서 CCO를 사용할 때 기본값입니다. - 6
- 임시 스토리지의 스토리지 클래스 이름을 입력합니다. 최상의 성능을 위해서는 블록 스토리지를 할당하는 스토리지 클래스를 지정합니다.
oc get storageclasses
명령을 사용하여 클러스터에 사용 가능한 스토리지 클래스를 나열할 수 있습니다.
2.2.7.3. CLI를 사용하여 Loki 오브젝트 스토리지의 보안 생성 링크 복사링크가 클립보드에 복사되었습니다!
Loki 오브젝트 스토리지를 구성하려면 보안을 생성해야 합니다. OpenShift CLI(oc
)를 사용하여 이 작업을 수행할 수 있습니다.
사전 요구 사항
- 관리자 권한이 있습니다.
- Loki Operator를 설치했습니다.
-
OpenShift CLI(
oc
)를 설치합니다.
프로세스
다음 명령을 실행하여 인증서 및 키 파일이 포함된 디렉터리에 보안을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
최상의 결과를 위해 일반 또는 불투명한 보안을 사용하십시오.
검증
다음 명령을 실행하여 보안이 생성되었는지 확인합니다.
oc get secrets
$ oc get secrets
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.8. Loki 로그에 대한 세분화된 액세스 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Logging Operator는 기본적으로 모든 사용자에게 로그에 대한 액세스 권한을 부여하지 않습니다. 관리자는 Operator가 업그레이드되고 이전 구성이 적용되지 않는 한 사용자 액세스를 구성해야 합니다. 구성 및 필요에 따라 다음을 사용하여 로그에 대한 미세 액세스를 구성할 수 있습니다.
- 클러스터 전체 정책
- 네임스페이스 범위 정책
- 사용자 정의 관리자 그룹 생성
관리자는 배포에 적합한 역할 바인딩 및 클러스터 역할 바인딩을 생성해야 합니다. Red Hat OpenShift Logging Operator는 다음과 같은 클러스터 역할을 제공합니다.
-
cluster-logging-application-view
는 애플리케이션 로그를 읽을 수 있는 권한을 부여합니다. -
cluster-logging-infrastructure-view
는 인프라 로그를 읽을 수 있는 권한을 부여합니다. -
cluster-logging-audit-view
는 감사 로그를 읽을 수 있는 권한을 부여합니다.
이전 버전에서 업그레이드한 경우 추가 클러스터 역할 logging-application-logs-reader
및 관련 클러스터 역할 바인딩 logging-all-authenticated-application-logs-reader
는 이전 버전과의 호환성을 제공하여 네임스페이스에서 인증된 모든 사용자 읽기 액세스를 허용합니다.
네임스페이스별 액세스 권한이 있는 사용자는 애플리케이션 로그를 쿼리할 때 네임스페이스를 제공해야 합니다.
2.2.8.1. 클러스터 전체 액세스 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 역할 바인딩 리소스는 클러스터 역할을 참조하고 클러스터 전체 권한을 설정합니다.
클러스터 역할 바인딩 예
2.2.8.2. 네임스페이스가 지정된 액세스 링크 복사링크가 클립보드에 복사되었습니다!
RoleBinding
리소스는 ClusterRole
오브젝트와 함께 사용하여 사용자 또는 그룹이 로그에 액세스할 수 있는 네임스페이스를 정의할 수 있습니다.
RoleBinding의 예
- 1
- 이
RoleBinding
이 적용되는 네임스페이스를 지정합니다.
2.2.8.3. 사용자 정의 관리자 그룹 액세스 링크 복사링크가 클립보드에 복사되었습니다!
광범위한 권한이 필요한 여러 사용자가 포함된 대규모 배포가 있는 경우 adminGroup
필드를 사용하여 사용자 지정 그룹을 생성할 수 있습니다. LokiStack
CR의 adminGroups
필드에 지정된 그룹의 멤버인 사용자는 관리자로 간주됩니다.
관리자는 cluster-logging-application-view
역할도 할당한 경우 모든 네임스페이스의 모든 애플리케이션 로그에 액세스할 수 있습니다.
LokiStack CR의 예
2.2.9. cluster-admin 사용자 역할의 새 그룹 생성 링크 복사링크가 클립보드에 복사되었습니다!
cluster-admin
사용자로 여러 네임스페이스에 대한 애플리케이션 로그를 쿼리합니다. 여기서 클러스터의 모든 네임스페이스 합계는 5120보다 큰 오류입니다: 입력 크기가 너무 긴 (XXXX > 5120)
오류가 발생했습니다. LokiStack의 로그에 대한 액세스를 보다 효과적으로 제어하려면 cluster-admin
사용자를 cluster-admin
그룹의 멤버로 설정합니다. cluster-admin
그룹이 없는 경우 해당 그룹을 생성하고 원하는 사용자를 추가합니다.
다음 절차에 따라 cluster-admin
권한이 있는 사용자를 위한 새 그룹을 생성합니다.
프로세스
다음 명령을 입력하여 새 그룹을 생성합니다.
oc adm groups new cluster-admin
$ oc adm groups new cluster-admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 원하는 사용자를
cluster-admin
그룹에 추가합니다.oc adm groups add-users cluster-admin <username>
$ oc adm groups add-users cluster-admin <username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여
cluster-admin
사용자 역할을 그룹에 추가합니다.oc adm policy add-cluster-role-to-group cluster-admin cluster-admin
$ oc adm policy add-cluster-role-to-group cluster-admin cluster-admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow