4.2. 로깅 설치
OpenShift Container Platform Operator는 CR(사용자 정의 리소스)을 사용하여 애플리케이션 및 해당 구성 요소를 관리합니다. CR을 통해 높은 수준의 구성 및 설정을 제공합니다. Operator는 Operator의 논리에 포함된 모범 사례를 기반으로 고급 지시문을 하위 수준 작업으로 변환합니다. CRD(사용자 정의 리소스 정의)는 CR을 정의하고 Operator 사용자가 사용할 수 있는 모든 구성을 나열합니다. Operator를 설치하면 CRD가 생성되어 CR을 생성합니다.
로그 저장소 Operator 후에는 Red Hat OpenShift Logging Operator를 설치해야 합니다.
Loki Operator를 설치하여 로그 저장소를 관리하고 Red Hat OpenShift Logging Operator를 배포하여 로깅 구성 요소를 관리합니다. OpenShift Container Platform 웹 콘솔 또는 OpenShift CLI(oc
)를 사용하여 로깅을 설치하거나 구성할 수 있습니다.
또는 모든 예제 오브젝트를 적용할 수 있습니다.
s3 버킷 또는 LokiStack 사용자 정의 리소스(CR)에 정의된 보존 기간이 없으면 로그가 정리되지 않고 s3 스토리지를 채울 수 있습니다.
4.2.1. CLI를 사용하여 Logging 및 Loki Operator 설치
OpenShift Container Platform 클러스터에 로깅을 설치하고 구성하려면 로그 스토리지용 Loki Operator와 같은 Operator를 먼저 설치해야 합니다. 이 작업은 OpenShift Container Platform CLI에서 수행할 수 있습니다.
사전 요구 사항
- 관리자 권한이 있습니다.
-
OpenShift CLI(
oc
)를 설치합니다. - 지원되는 오브젝트 저장소에 액세스할 수 있습니다. 예를 들어 AWS S3, Google Cloud Storage, Azure, Swift, Minio 또는 OpenShift Data Foundation입니다.
stable 채널은 최신 로깅 릴리스에 대한 업데이트만 제공합니다. 이전 릴리스에 대한 업데이트를 계속 받으려면 서브스크립션 채널을 stable-x.y 로 변경해야 합니다. 여기서 x.y
는 설치한 로깅 및 마이너 버전을 나타냅니다. 예를 들면 stable-5.7 입니다.
Loki Operator의
Namespace
오브젝트를 생성합니다.Namespace
오브젝트의 예apiVersion: v1 kind: Namespace metadata: name: openshift-operators-redhat 1 annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-monitoring: "true" 2
- 1
openshift-operators-redhat
네임스페이스를 지정해야 합니다. 지표의 충돌을 방지하려면openshift-operators
네임스페이스가 아니라openshift-operators-redhat
네임스페이스에서 지표를 스크랩하도록 Prometheus 클러스터 모니터링 스택을 구성해야 합니다.openshift-operators
네임스페이스에 신뢰할 수 없는 Community Operator가 포함될 수 있고, 여기에서 OpenShift Container Platform 지표와 동일한 이름의 지표를 게시하면 충돌이 발생합니다.- 2
- 클러스터 모니터링이
openshift-operators-redhat
네임스페이스를 스크랩하도록 하기 위해 표시된 대로 라벨을 지정하는 문자열 값입니다.
다음 명령을 실행하여
Namespace
오브젝트를 적용합니다.$ oc apply -f <filename>.yaml
Loki Operator에 대한
Subscription
오브젝트를 생성합니다.Subscription
개체 예apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: loki-operator namespace: openshift-operators-redhat 1 spec: channel: stable 2 name: loki-operator source: redhat-operators 3 sourceNamespace: openshift-marketplace
다음 명령을 실행하여
Subscription
오브젝트를 적용합니다.$ oc apply -f <filename>.yaml
Red Hat OpenShift Logging Operator의
네임스페이스
오브젝트를 생성합니다.네임스페이스
오브젝트의 예apiVersion: v1 kind: Namespace metadata: name: openshift-logging 1 annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-logging: "true" openshift.io/cluster-monitoring: "true" 2
다음 명령을 실행하여
namespace
오브젝트를 적용합니다.$ oc apply -f <filename>.yaml
OperatorGroup
오브젝트 생성OperatorGroup
오브젝트의 예apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: cluster-logging namespace: openshift-logging 1 spec: targetNamespaces: - openshift-logging
- 1
openshift-logging
네임스페이스를 지정해야 합니다.
다음 명령을 실행하여
OperatorGroup
오브젝트를 적용합니다.$ oc apply -f <filename>.yaml
Subscription
오브젝트를 생성합니다.apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: cluster-logging namespace: openshift-logging 1 spec: channel: stable 2 name: cluster-logging source: redhat-operators 3 sourceNamespace: openshift-marketplace
다음 명령을 실행하여
Subscription
오브젝트를 적용합니다.$ oc apply -f <filename>.yaml
LokiStack
CR을 생성합니다.LokiStack
CR의 예apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki 1 namespace: openshift-logging 2 spec: size: 1x.small 3 storage: schemas: - version: v13 effectiveDate: "<yyyy>-<mm>-<dd>" secret: name: logging-loki-s3 4 type: s3 5 credentialMode: 6 storageClassName: <storage_class_name> 7 tenants: mode: openshift-logging 8
- 1
logging-loki
라는 이름을 사용합니다.- 2
openshift-logging
네임스페이스를 지정해야 합니다.- 3
- 배포 크기를 지정합니다. 로깅 5.8 이상 버전에서 Loki의 프로덕션 인스턴스에 지원되는 크기 옵션은
1x.extra-small
,1x.small
, 또는1x.medium
입니다. - 4
- 로그 저장소 시크릿의 이름을 지정합니다.
- 5
- 해당 스토리지 유형을 지정합니다.
- 6
- 선택적 필드, 로깅 5.9 이상 지원되는 사용자 구성 값은 다음과 같습니다.
static
은 Secret에 저장된 인증 정보를 사용하여 지원되는 모든 오브젝트 스토리지 유형에 사용할 수 있는 기본 인증 모드입니다. 인증 정보 소스에서 검색된 단기 토큰에 대한token
입니다. 이 모드에서 정적 구성에는 오브젝트 스토리지에 필요한 인증 정보가 포함되어 있지 않습니다. 대신 서비스를 사용하여 런타임 중에 생성되므로 더 짧은 자격 증명과 훨씬 더 세분화된 제어가 가능합니다. 이 인증 모드는 모든 오브젝트 스토리지 유형에서 지원되지 않습니다.token-cco
는 Loki가 관리 STS 모드에서 실행되고 STS/WIF 클러스터에서 CCO를 사용할 때 기본값입니다. - 7
- 임시 스토리지의 스토리지 클래스 이름을 지정합니다. 최상의 성능을 위해서는 블록 스토리지를 할당하는 스토리지 클래스를 지정합니다.
oc get storageclasses
명령을 사용하여 클러스터에 사용 가능한 스토리지 클래스를 나열할 수 있습니다. - 8
- LokiStack은 기본적으로 다중 테넌트 모드에서 실행되며 수정할 수 없습니다. 각 로그 유형( audit, infrastructure, application logs)에 대해 하나의 테넌트가 제공됩니다. 이를 통해 개별 사용자 및 사용자 그룹에 대한 액세스 제어를 다른 로그 스트림에 사용할 수 있습니다.
다음 명령을 실행하여
LokiStack CR
오브젝트를 적용합니다.$ oc apply -f <filename>.yaml
ClusterLogging
CR 오브젝트를 생성합니다.ClusterLogging CR 오브젝트의 예
apiVersion: logging.openshift.io/v1 kind: ClusterLogging metadata: name: instance 1 namespace: openshift-logging 2 spec: collection: type: vector logStore: lokistack: name: logging-loki retentionPolicy: application: maxAge: 7d audit: maxAge: 7d infra: maxAge: 7d type: lokistack visualization: type: ocp-console ocpConsole: logsLimit: 15 managementState: Managed
다음 명령을 실행하여
ClusterLogging CR
오브젝트를 적용합니다.$ oc apply -f <filename>.yaml
다음 명령을 실행하여 설치를 확인합니다.
$ oc get pods -n openshift-logging
출력 예
$ oc get pods -n openshift-logging NAME READY STATUS RESTARTS AGE cluster-logging-operator-fb7f7cf69-8jsbq 1/1 Running 0 98m collector-222js 2/2 Running 0 18m collector-g9ddv 2/2 Running 0 18m collector-hfqq8 2/2 Running 0 18m collector-sphwg 2/2 Running 0 18m collector-vv7zn 2/2 Running 0 18m collector-wk5zz 2/2 Running 0 18m logging-view-plugin-6f76fbb78f-n2n4n 1/1 Running 0 18m lokistack-sample-compactor-0 1/1 Running 0 42m lokistack-sample-distributor-7d7688bcb9-dvcj8 1/1 Running 0 42m lokistack-sample-gateway-5f6c75f879-bl7k9 2/2 Running 0 42m lokistack-sample-gateway-5f6c75f879-xhq98 2/2 Running 0 42m lokistack-sample-index-gateway-0 1/1 Running 0 42m lokistack-sample-ingester-0 1/1 Running 0 42m lokistack-sample-querier-6b7b56bccc-2v9q4 1/1 Running 0 42m lokistack-sample-query-frontend-84fb57c578-gq2f7 1/1 Running 0 42m
4.2.2. 웹 콘솔을 사용하여 Logging 및 Loki Operator 설치
OpenShift Container Platform 클러스터에 로깅을 설치하고 구성하려면 로그 스토리지용 Loki Operator와 같은 Operator를 먼저 설치해야 합니다. 이는 웹 콘솔 내의 OperatorHub에서 수행할 수 있습니다.
사전 요구 사항
- 지원되는 오브젝트 저장소(AWS S3, Google Cloud Storage, Azure, Swift, Minio, OpenShift Data Foundation)에 액세스할 수 있습니다.
- 관리자 권한이 있습니다.
- OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔 관리자 화면에서 Operator
OperatorHub 로 이동합니다. 키워드로 필터링 필드에 Loki Operator를 입력합니다. 사용 가능한 Operator 목록에서 Loki Operator 를 클릭한 다음 설치를 클릭합니다.
중요Community Loki Operator는 Red Hat에서 지원하지 않습니다.
업데이트 채널로 stable 또는 stable-x.y 를 선택합니다.
참고stable 채널은 최신 로깅 릴리스에 대한 업데이트만 제공합니다. 이전 릴리스에 대한 업데이트를 계속 받으려면 서브스크립션 채널을 stable-x.y 로 변경해야 합니다. 여기서
x.y
는 설치한 로깅 및 마이너 버전을 나타냅니다. 예를 들면 stable-5.7 입니다.Loki Operator는 글로벌 Operator 그룹 네임스페이스
openshift-operators-redhat
에 배포되어야 하므로 설치 모드 및 설치된 네임스페이스 가 이미 선택되어 있습니다. 이 네임스페이스가 아직 없는 경우 이를 위해 생성됩니다.이 네임스페이스에서 Operator 권장 클러스터 모니터링 사용을 선택합니다.
이 옵션은
Namespace
오브젝트에서openshift.io/cluster-monitoring: "true"
라벨을 설정합니다. 클러스터 모니터링이openshift-operators-redhat
네임스페이스를 스크랩하도록 하려면 이 옵션을 선택해야 합니다.업데이트 승인의 경우 자동 을 선택한 다음 설치를 클릭합니다.
서브스크립션의 승인 전략이 자동으로 설정된 경우 선택한 채널에서 새 Operator 버전을 사용할 수 있는 즉시 업데이트 프로세스가 시작됩니다. 승인 전략이 수동으로 설정된 경우 보류 중인 업데이트를 수동으로 승인해야 합니다.
Red Hat OpenShift Logging Operator를 설치합니다.
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 사용 가능한 Operator 목록에서 Red Hat OpenShift Logging 을 선택하고 설치를 클릭합니다.
- 설치 모드에서 클러스터의 특정 네임스페이스가 선택되어 있는지 확인합니다.
- 설치된 네임스페이스에서 Operator 권장 네임스페이스가 openshift-logging인지 확인하십시오.
이 네임스페이스에서 Operator 권장 클러스터 모니터링 사용을 선택합니다.
이 옵션은 네임스페이스 오브젝트에서
openshift.io/cluster-monitoring: "true"
레이블을 설정합니다. 클러스터 모니터링이openshift-logging
네임스페이스를 스크랩하도록 하려면 이 옵션을 선택해야 합니다.- stable-5.y 를 업데이트 채널로 선택합니다.
승인 전략을 선택합니다.
- 자동 전략을 사용하면 Operator 새 버전이 준비될 때 OLM(Operator Lifecycle Manager)이 자동으로 Operator를 업데이트할 수 있습니다.
- 수동 전략을 사용하려면 적절한 자격 증명을 가진 사용자가 Operator 업데이트를 승인해야 합니다.
- 설치를 클릭합니다.
-
OpenShift Container Platform 웹 콘솔에서 Operator
-
Operator
설치된 Operator 페이지로 이동합니다. 모든 인스턴스 탭을 클릭합니다. - Create new 드롭다운 목록에서 LokiStack 을 선택합니다.
YAML 보기를 선택한 다음 다음 템플릿을 사용하여
LokiStack
CR을 생성합니다.LokiStack
CR의 예apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki 1 namespace: openshift-logging 2 spec: size: 1x.small 3 storage: schemas: - version: v13 effectiveDate: "<yyyy>-<mm>-<dd>" secret: name: logging-loki-s3 4 type: s3 5 credentialMode: 6 storageClassName: <storage_class_name> 7 tenants: mode: openshift-logging 8
- 1
logging-loki
라는 이름을 사용합니다.- 2
openshift-logging
네임스페이스를 지정해야 합니다.- 3
- 배포 크기를 지정합니다. 로깅 5.8 이상 버전에서 Loki의 프로덕션 인스턴스에 지원되는 크기 옵션은
1x.extra-small
,1x.small
, 또는1x.medium
입니다. - 4
- 로그 저장소 시크릿의 이름을 지정합니다.
- 5
- 해당 스토리지 유형을 지정합니다.
- 6
- 선택적 필드, 로깅 5.9 이상 지원되는 사용자 구성 값은 다음과 같습니다. static은 Secret에 저장된 인증 정보를 사용하여 지원되는 모든 오브젝트 스토리지 유형에 사용할 수 있는 기본 인증 모드입니다. 인증 정보 소스에서 검색된 단기 토큰의 토큰입니다. 이 모드에서 정적 구성에는 오브젝트 스토리지에 필요한 인증 정보가 포함되어 있지 않습니다. 대신 서비스를 사용하여 런타임 중에 생성되므로 더 짧은 자격 증명과 훨씬 더 세분화된 제어가 가능합니다. 이 인증 모드는 모든 오브젝트 스토리지 유형에서 지원되지 않습니다. token-cco는 Loki가 관리 STS 모드에서 실행되고 STS/WIF 클러스터에서 CCO를 사용할 때 기본값입니다.
- 7
- 임시 스토리지의 스토리지 클래스 이름을 지정합니다. 최상의 성능을 위해서는 블록 스토리지를 할당하는 스토리지 클래스를 지정합니다.
oc get storageclasses
명령을 사용하여 클러스터에 사용 가능한 스토리지 클래스를 나열할 수 있습니다. - 8
- LokiStack은 기본적으로 다중 테넌트 모드에서 실행되며 수정할 수 없습니다. 각 로그 유형( audit, infrastructure, application logs)에 대해 하나의 테넌트가 제공됩니다. 이를 통해 개별 사용자 및 사용자 그룹에 대한 액세스 제어를 다른 로그 스트림에 사용할 수 있습니다.
중요배포 크기에 대해 숫자
1x
를 변경할 수 없습니다.- 생성을 클릭합니다.
OpenShift Logging 인스턴스를 생성합니다.
-
관리
사용자 정의 리소스 정의 페이지로 전환합니다. - 사용자 정의 리소스 정의 페이지에서 ClusterLogging을 클릭합니다.
- 사용자 정의 리소스 정의 상세 정보 페이지의 작업 메뉴에서 인스턴스 보기를 선택합니다.
ClusterLoggings 페이지에서 ClusterLogging 생성을 클릭합니다.
데이터를 로드하기 위해 페이지를 새로 고쳐야 할 수도 있습니다.
YAML 필드에서 코드를 다음으로 교체합니다.
apiVersion: logging.openshift.io/v1 kind: ClusterLogging metadata: name: instance 1 namespace: openshift-logging 2 spec: collection: type: vector logStore: lokistack: name: logging-loki retentionPolicy: application: maxAge: 7d audit: maxAge: 7d infra: maxAge: 7d type: lokistack visualization: type: ocp-console ocpConsole: logsLimit: 15 managementState: Managed
-
관리
검증
-
Operator
설치된 Operator 로 이동합니다. - openshift-logging 프로젝트가 선택되어 있는지 확인합니다.
- 상태 열에서 InstallSucceeded 가 포함된 녹색 확인 표시와 최대 날짜 텍스트가 표시되는지 확인합니다.
Operator는 설치가 완료되기 전에 실패
상태를 표시할 수 있습니다. Operator 설치가 InstallSucceeded
메시지와 함께 완료되면 페이지를 새로 고칩니다.
추가 리소스