1.2. 로깅 6.0
ClusterLogForwarder
CR(사용자 정의 리소스)은 로그 수집 및 전달의 중앙 구성 지점입니다.
1.2.1. 입력 및 출력
입력은 전달할 로그 소스를 지정합니다. 로깅은 클러스터의 다른 부분에서 로그를 선택하는 애플리케이션
,인프라
및 감사
와 같은 기본 입력 유형을 제공합니다. 네임스페이스 또는 Pod 레이블을 기반으로 사용자 정의 입력을 정의하여 로그 선택을 미세 조정할 수도 있습니다.
출력은 로그가 전송되는 대상을 정의합니다. 각 출력 유형에는 고유한 구성 옵션 세트가 있어 동작 및 인증 설정을 사용자 지정할 수 있습니다.
1.2.2. 수신자 입력 유형
수신자 입력 유형을 사용하면 로깅 시스템에서 외부 소스의 로그를 허용할 수 있습니다. 로그를 수신하기 위해 http
및 syslog
의 두 형식을 지원합니다.
ReceiverSpec
은 수신자 입력에 대한 구성을 정의합니다.
1.2.3. 파이프라인 및 필터
파이프라인은 입력에서 출력으로 로그 흐름을 결정합니다. 파이프라인은 하나 이상의 입력 참조, 출력 참조 및 선택적 필터 참조로 구성됩니다. 필터를 사용하여 파이프라인 내에서 로그 메시지를 변환하거나 삭제할 수 있습니다. 필터 순서는 순차적으로 적용되므로 중요하며 이전 필터로 인해 로그 메시지가 이후 단계에 도달하지 못할 수 있습니다.
1.2.4. Operator 동작
Cluster Logging Operator는 managementState
필드를 기반으로 수집기의 배포 및 구성을 관리합니다.
-
Managed
(기본값)로 설정하면 Operator에서 사양에 정의된 구성과 일치하도록 로깅 리소스를 적극적으로 관리합니다. -
Unmanaged
로 설정하면 Operator에서 작업을 수행하지 않으므로 로깅 구성 요소를 수동으로 관리할 수 있습니다.
1.2.5. 검증
로깅에는 광범위한 검증 규칙과 기본값이 포함되어 있어 원활하고 오류가 없는 구성 환경을 보장합니다. ClusterLogForwarder
리소스는 필수 필드, 필드 간 종속성 및 입력 값 형식에 대한 검증 검사를 적용합니다. 특정 필드에 기본값이 제공되어 일반적인 시나리오에서 명시적 구성의 필요성이 줄어듭니다.
1.2.5.1. 빠른 시작
사전 요구 사항
- 클러스터 관리자 권한
프로세스
-
OperatorHub에서
OpenShift Logging
및Loki
Operator를 설치합니다. openshift-logging
네임스페이스에서LokiStack
CR(사용자 정의 리소스)을 생성합니다.apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki namespace: openshift-logging spec: managementState: Managed size: 1x.extra-small storage: schemas: - effectiveDate: '2022-06-01' version: v13 secret: name: logging-loki-s3 type: s3 storageClassName: gp3-csi tenants: mode: openshift-logging
수집기의 서비스 계정을 생성합니다.
$ oc create sa collector -n openshift-logging
수집기에 대한
ClusterRole
을 생성합니다.apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: logging-collector-logs-writer rules: - apiGroups: - loki.grafana.com resourceNames: - logs resources: - application - audit - infrastructure verbs: - create
ClusterRole
을 서비스 계정에 바인딩합니다.$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z collector
- Cluster Observability Operator를 설치합니다.
UIPlugin
을 생성하여 모니터링 탭의 로그 섹션을 활성화합니다.apiVersion: observability.openshift.io/v1alpha1 kind: UIPlugin metadata: name: logging spec: type: Logging logging: lokiStack: name: logging-loki
수집기 서비스 계정에 역할을 추가합니다.
$ oc project openshift-logging $ oc adm policy add-cluster-role-to-user collect-application-logs -z collector $ oc adm policy add-cluster-role-to-user collect-audit-logs -z collector $ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z collector
ClusterLogForwarder
CR을 생성하여 로그 전달을 구성합니다.apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: collector namespace: openshift-logging spec: serviceAccount: name: collector outputs: - name: default-lokistack type: lokiStack lokiStack: target: name: logging-loki namespace: openshift-logging authentication: token: from: serviceAccount tls: ca: key: service-ca.crt configMapName: openshift-service-ca.crt pipelines: - name: default-logstore inputRefs: - application - infrastructure outputRefs: - default-lokistack
- OpenShift 웹 콘솔의 Observe 탭의 Log 섹션에 로그가 표시되는지 확인합니다.