본문 바로가기
Linux/OpenShift

RHOCP) OpenShift Logging (1) - 개요

by LILO 2023. 8. 1.
반응형

INTRO

서버, 컨테이너를 운영하다 보면 애플리케이션, API, 서버에서 발생하는 로그를 수집하고 검색 및 분석을 하여 모니터링을 하는 플랫폼이 필요하게 됩니다.

이러한 상황에서 ELK Stack, EFK Stack 등을 사용하게 되는데 RHOCP에서는 Openshit Logging이라는 Operator를 이용하여 EFK를 보다 쉽고 빠르게 사용할 수 있는 환경을 제공합니다.

Openshift Logging에 대한 자세한 내용은 아래의 문서를 참고바랍니다.

 

About Logging | Logging | OpenShift Container Platform 4.13

The supported way of configuring the logging subsystem for Red Hat OpenShift is by configuring it using the options described in this documentation. Do not use other configurations, as they are unsupported. Configuration paradigms might change across OpenS

docs.openshift.com

 

 

 

EFK란?

Openshift Logging Operator의 기반은 EFK Stack입니다. EFK Stack에 대한 내용을 간단하게 알아보려고 합니다.

EFK Stack는 Elasticsearch, Fluentd, Kibana 3개의 플랫폼을 조합한 용어로 로그 데이터를 수집하고 분석하여 시각화 해주는 역할을 합니다.

 

EFK Stack에 포함되는 플랫폼들이 하는 역할은 아래와 같습니다.

이름 설명
Elasticsearch 많은 양의 데이터를 빠르게 저장,검색,분석을 할 수 있는 오픈소스 분산 검색 엔진
Fluentd 비정형 데이터를 수집할 수 있는 오픈소스 데이터 수집기
Kibana 수집되고 색인된 데이터를 검색하여 분석하고 시각화

 

Kubernetes 클러스터에서 활용되는 예시를 아래의 이미지를 통해서 해보겠습니다.

Worker node에 배포되고 있는 Application pod에서 필요한 log를 fluentd를 이용하여 수집하고 Elasticsearch로 수집한 로그를 검색하고 색인하는 작업을 합니다. 최종적으로 색인된 데이터를 Kibana에서 시각화하여 사용자에게 친화된 화면을 제공합니다.

https://yobitel.medium.com/efk-kubernetes-stack-in-cloud-native-way-scope-about-retail-industry-77c526402a27

 

 

Openshift Logging이란?

클러스터 운영자는 로깅 시스템을 배포하여 노드 시스템 감사 로그(audit log), 애플리케이션 컨테이너 로그 및 인프라 로그와 같은 RHOCP 클러스터의 모든 로그를 집계할 수 있습니다.

Openshift Logging은 클러스터 전체에서 이러한 로그를 집계하여 기본 로그 저장소에 저장합니다. Kibana 웹 콘솔을 이용하여 데이터를 시각화 할 수 있습니다.

 

Openshift Logging은 아래의 유형의 로그를 집계할 수 있습니다.

이름 설명
application 인프라 컨테니어 application을 제외한 클러스터에서 실행중인 사용자가 배포한 Application에서 생성된 컨테이너 로그
infrastructure OCP 노드에서 실행되는 인프라 구성요소, 저널 로그 등을 수집한 로그
※ 인프라 구성요소: openshift-*, kube-* 네임스페이스에서 실행되는 pod
audit auditd에 의해 생성된 로그인 /var/log/audit/audit.log와 kubernetes apiserver 및 openshift apiserver의 감사(audit) 로그를 생성 

Openshift Logging에 대한 Lifecycle은 Openshift Cluster의 버전에 따라 달라지며 EUS 기간이 넘으면 Openshift Logging에 대한 지원이 불가능할 수도 있으니 아래의 문서에서 사용하고 있는 버전의 EUS를 확인해야 됩니다.

 

OpenShift Container Platform Life Cycle - Red Hat Customer Portal

Access Red Hat’s knowledge, guidance, and support through your subscription.

access.redhat.com

 

번외로 Fluentd를 이용하여 수집하고 Splunk를 사용하고 있을 경우에는 ClusterLogForwarder를 이용하여 OCP 클러스터 외부로 전송하는 로그의 유형을 정의할 수 있습니다. (Log Forwarding API를 이용)

https://cloud.redhat.com/blog/forwarding-logs-to-splunk-using-the-openshift-log-forwarding-api

Splunk로 Log를 Forwarding하는 설정 내용은 아래의 문서를 참고바랍니다.

 

Forwarding logs to third party systems | Logging | OpenShift Container Platform 4.13

You can use the syslog RFC3164 or RFC5424 protocol to send a copy of your logs to an external log aggregator that is configured to accept the protocol instead of, or in addition to, the default Elasticsearch log store. You are responsible for configuring t

docs.openshift.com

반응형