1장. 로그 전달 구성
ClusterLogForwarder
(CLF)를 사용하면 사용자가 다양한 대상으로 로그 전달을 구성할 수 있습니다. 다른 소스의 로그 메시지를 선택하고, 변환하거나 필터링할 수 있는 파이프라인을 통해 보내고, 하나 이상의 출력으로 전달할 수 있는 유연한 방법을 제공합니다.
ClusterLogForwarder의 주요 기능
- 입력을 사용하여 로그 메시지 선택
- 출력을 사용하여 외부 대상으로 로그를 전달
- 필터를 사용하여 로그 메시지를 필터링, 변환 및 삭제
- 입력, 필터 및 출력을 연결하는 로그 전달 파이프라인을 정의합니다.
1.1. 로그 컬렉션 설정 링크 복사링크가 클립보드에 복사되었습니다!
이 클러스터 로깅 릴리스에서는 관리자가 ClusterLogForwarder 와 연결된 서비스 계정에 로그 수집 권한을 명시적으로 부여해야 합니다. ClusterLogging 및 ClusterLogForwarder.logging.openshift.io 리소스로 구성된 레거시 로깅 시나리오의 이전 릴리스에서는 이 작업이 필요하지 않았습니다.
Red Hat OpenShift Logging Operator는 collect-audit-logs
,collect-application-logs
, collect-infrastructure-logs
클러스터 역할을 제공하여 수집기가 감사 로그, 애플리케이션 로그 및 인프라 로그를 각각 수집할 수 있습니다.
필요한 클러스터 역할을 서비스 계정에 바인딩하여 로그 컬렉션을 설정합니다.
1.1.1. 레거시 서비스 계정 링크 복사링크가 클립보드에 복사되었습니다!
기존 서비스 계정 logcollector
를 사용하려면 다음 ClusterRoleBinding 을 생성합니다.
oc adm policy add-cluster-role-to-user collect-application-logs system:serviceaccount:openshift-logging:logcollector
$ oc adm policy add-cluster-role-to-user collect-application-logs system:serviceaccount:openshift-logging:logcollector
oc adm policy add-cluster-role-to-user collect-infrastructure-logs system:serviceaccount:openshift-logging:logcollector
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs system:serviceaccount:openshift-logging:logcollector
또한 감사 로그를 수집하는 경우 다음 ClusterRoleBinding 을 생성합니다.
oc adm policy add-cluster-role-to-user collect-audit-logs system:serviceaccount:openshift-logging:logcollector
$ oc adm policy add-cluster-role-to-user collect-audit-logs system:serviceaccount:openshift-logging:logcollector
1.1.2. 서비스 계정 생성 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
-
Red Hat OpenShift Logging Operator는
openshift-logging
네임스페이스에 설치됩니다. - 관리자 권한이 있습니다.
프로세스
- 수집기의 서비스 계정을 생성합니다. 인증을 위해 토큰이 필요한 스토리지에 로그를 작성하려면 서비스 계정에 토큰을 포함해야 합니다.
적절한 클러스터 역할을 서비스 계정에 바인딩합니다.
바인딩 명령 예
oc adm policy add-cluster-role-to-user <cluster_role_name> system:serviceaccount:<namespace_name>:<service_account_name>
$ oc adm policy add-cluster-role-to-user <cluster_role_name> system:serviceaccount:<namespace_name>:<service_account_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.2.1. 서비스 계정의 클러스터 역할 바인딩 링크 복사링크가 클립보드에 복사되었습니다!
role_binding.yaml 파일은 ClusterLogging Operator의 ClusterRole을 특정 ServiceAccount에 바인딩하여 클러스터 전체에서 Kubernetes 리소스를 관리할 수 있습니다.
- 1
- roleRef: 바인딩이 적용되는 ClusterRole을 참조합니다.
- 2
- apiGroup: RBAC API 그룹을 나타내며 ClusterRole이 Kubernetes RBAC 시스템의 일부임을 지정합니다.
- 3
- kind: 참조된 역할이 클러스터 전체에서 적용되는 ClusterRole임을 지정합니다.
- 4
- name: ServiceAccount에 바인딩되는 ClusterRole의 이름입니다. 여기서 cluster-logging-operator.
- 5
- 제목: ClusterRole에서 권한을 부여하는 엔터티(사용자 또는 서비스 계정)를 정의합니다.
- 6
- kind: subject가 ServiceAccount임을 지정합니다.
- 7
- name: 권한이 부여된 ServiceAccount의 이름입니다.
- 8
- namespace: ServiceAccount가 있는 네임스페이스를 나타냅니다.
1.1.2.2. 애플리케이션 로그 작성 링크 복사링크가 클립보드에 복사되었습니다!
write-application-logs-clusterrole.yaml 파일은 Loki 로깅 애플리케이션에 애플리케이션 로그를 작성할 수 있는 권한을 부여하는 ClusterRole을 정의합니다.
- 1
- rules: 이 ClusterRole에서 부여하는 권한을 지정합니다.
- 2
- apiGroups: Loki 로깅 시스템과 관련된 API 그룹 loki.grafana.com을 나타냅니다.
- 3
- Loki.grafana.com: Loki 관련 리소스를 관리하기 위한 API 그룹입니다.
- 4
- resources: ClusterRole에서 상호 작용할 수 있는 권한을 부여하는 리소스 유형입니다.
- 5
- application: Loki 로깅 시스템 내의 애플리케이션 리소스를 나타냅니다.
- 6
- resourceNames: 이 역할이 관리할 수 있는 리소스의 이름을 지정합니다.
- 7
- 로그: 생성할 수 있는 로그 리소스를 참조합니다.
- 8
- 동사: 리소스에서 허용되는 작업입니다.
- 9
- create: Loki 시스템에서 새 로그를 생성할 수 있는 권한을 부여합니다.
1.1.2.3. 감사 로그 작성 링크 복사링크가 클립보드에 복사되었습니다!
write-audit-logs-clusterrole.yaml 파일은 Loki 로깅 시스템에서 감사 로그를 생성할 수 있는 권한을 부여하는 ClusterRole을 정의합니다.
- 1
- rules: 이 ClusterRole에서 부여하는 권한을 정의합니다.
- 2
- apiGroups: loki.grafana.com API 그룹을 지정합니다.
- 3
- Loki.grafana.com: Loki 로깅 리소스를 담당하는 API 그룹입니다.
- 4
- resources: 이 역할이 관리하는 리소스 유형을 나타냅니다(이 경우 audit).
- 5
- audit: 역할이 Loki 내에서 감사 로그를 관리하도록 지정합니다.
- 6
- resourceNames: 역할이 액세스할 수 있는 특정 리소스를 정의합니다.
- 7
- logs: 이 역할에서 관리할 수 있는 로그를 참조합니다.
- 8
- 동사: 리소스에서 허용되는 작업입니다.
- 9
- create: 새 감사 로그를 생성할 수 있는 권한을 부여합니다.
1.1.2.4. 인프라 로그 작성 링크 복사링크가 클립보드에 복사되었습니다!
write-infrastructure-logs-clusterrole.yaml 파일은 Loki 로깅 시스템에서 인프라 로그를 생성할 수 있는 권한을 부여하는 ClusterRole을 정의합니다.
샘플 YAML
- 1
- rules: 이 ClusterRole에서 부여하는 권한을 지정합니다.
- 2
- apiGroups: Loki 관련 리소스의 API 그룹을 지정합니다.
- 3
- Loki.grafana.com: Loki 로깅 시스템을 관리하는 API 그룹입니다.
- 4
- 리소스: 이 역할이 상호 작용할 수 있는 리소스 유형을 정의합니다.
- 5
- 인프라: 이 역할이 관리하는 인프라 관련 리소스를 나타냅니다.
- 6
- resourceNames: 이 역할이 관리할 수 있는 리소스의 이름을 지정합니다.
- 7
- 로그: 인프라와 관련된 로그 리소스를 참조합니다.
- 8
- 동사: 이 역할에서 허용하는 작업입니다.
- 9
- 생성: Loki 시스템에서 인프라 로그를 생성할 수 있는 권한을 부여합니다.
1.1.2.5. ClusterLogForwarder 편집기 역할 링크 복사링크가 클립보드에 복사되었습니다!
clusterlogforwarder-editor-role.yaml 파일은 사용자가 OpenShift에서 ClusterLogForwarder를 관리할 수 있는 ClusterRole을 정의합니다.
- 1
- rules: 이 ClusterRole에서 부여하는 권한을 지정합니다.
- 2
- apiGroups: OpenShift 관련 API 그룹을 참조합니다.
- 3
- obervability.openshift.io: 로깅과 같은 관찰 기능 리소스를 관리하는 API 그룹입니다.
- 4
- resources: 이 역할이 관리할 수 있는 리소스를 지정합니다.
- 5
- clusterlogforwarders: OpenShift의 로그 전달 리소스를 참조합니다.
- 6
- verbs: ClusterLogForwarders에 허용되는 작업을 지정합니다.
- 7
- 생성: 새 ClusterLogForwarder를 생성할 수 있는 권한을 부여합니다.
- 8
- delete: 기존 ClusterLogForwarder를 삭제할 수 있는 권한을 부여합니다.
- 9
- get: 특정 ClusterLogForwarder에 대한 정보를 검색할 수 있는 권한을 부여합니다.
- 10
- list: 모든 ClusterLogForwarder를 나열할 수 있습니다.
- 11
- patch: ClusterLogForwarder를 부분적으로 수정할 수 있는 권한을 부여합니다.
- 12
- update: 기존 ClusterLogForwarder를 업데이트할 수 있는 권한을 부여합니다.
- 13
- watch: ClusterLogForwarder의 변경 사항을 모니터링할 수 있는 권한을 부여합니다.