1.5. 로깅 수집기 구성
Red Hat OpenShift의 로깅은 클러스터에서 작업 및 애플리케이션 로그를 수집하고 Kubernetes Pod 및 프로젝트 메타데이터로 데이터를 강화합니다. 로그 수집기에 대한 지원되는 모든 수정 사항은 ClusterLogForwarder
CR(사용자 정의 리소스)의 spec.collection
스탠자를 통해 수행됩니다.
1.5.1. LogFileMetricExporter 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
컨테이너를 실행하여 생성된 로그에서 메트릭을 생성하려면 LogFileMetricExporter
CR(사용자 정의 리소스)을 생성해야 합니다.
LogFileMetricExporter
CR을 생성하지 않으면 OpenShift Container Platform 웹 콘솔 대시보드에 Produced Logs 의 No datapoints found 메시지가 표시될 수 있습니다.
사전 요구 사항
- 관리자 권한이 있습니다.
- Red Hat OpenShift Logging Operator가 설치되어 있습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
LogFileMetricExporter
CR을 YAML 파일로 생성합니다.LogFileMetricExporter
CR 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
LogFileMetricExporter
CR을 적용합니다.oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.2. 로그 수집기 CPU 및 메모리 제한 구성 링크 복사링크가 클립보드에 복사되었습니다!
로그 수집기를 사용하여 CPU 및 메모리 제한을 조정합니다.
프로세스
ClusterLogForwarder
사용자 정의 리소스(CR)를 편집합니다.oc -n openshift-logging edit ClusterLogging instance
$ oc -n openshift-logging edit ClusterLogging instance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 필요에 따라 CPU 및 메모리 제한 및 요청을 지정합니다. 표시된 값이 기본값입니다.
1.5.3. 입력 수신자 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Logging Operator는 구성된 각 입력 수신자에 대한 서비스를 배포하여 클라이언트가 컬렉터에 쓸 수 있도록 합니다. 이 서비스는 입력 수신자에 지정된 포트를 노출합니다. 로그 전달자 ClusterLogForwarder
CR 배포의 경우 서비스 이름은 < clusterlogforwarder_resource_name>-<input_name
> 형식으로 되어 있습니다.
1.5.3.1. 감사 로그를 HTTP 서버로 수신하도록 수집기 구성 링크 복사링크가 클립보드에 복사되었습니다!
ClusterLogForwarder
CR(사용자 정의 리소스)에서 http
를 수신자 입력으로 지정하여 HTTP 연결만 수신 대기하도록 로그 수집기를 구성할 수 있습니다.
HTTP 수신자 입력은 다음 시나리오에서만 지원됩니다.
- 로깅은 호스팅된 컨트롤 플레인에 설치됩니다.
Red Hat OpenShift Logging Operator와 동일한 클러스터에 설치된 Red Hat 지원 제품에서 로그가 시작된 경우 예를 들면 다음과 같습니다.
- OpenShift Virtualization
사전 요구 사항
- 관리자 권한이 있습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. - Red Hat OpenShift Logging Operator가 설치되어 있습니다.
-
ClusterLogForwarder
CR을 생성했습니다.
프로세스
http
수신자 입력 구성을 추가하도록ClusterLogForwarder
CR을 수정합니다.ClusterLogForwarder
CR의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ClusterLogForwarder
CR에 변경 사항을 적용합니다.oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 수집기가 <
clusterlogforwarder_resource_name>-<input_name
> 형식에 이름이 있는 서비스에서 수신 대기 중인지 확인합니다.oc get svc
$ oc get svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE collector ClusterIP 172.30.85.239 <none> 24231/TCP 3m6s collector-http-receiver ClusterIP 172.30.205.160 <none> 8443/TCP 3m6s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE collector ClusterIP 172.30.85.239 <none> 24231/TCP 3m6s collector-http-receiver ClusterIP 172.30.205.160 <none> 8443/TCP 3m6s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제 출력에서 서비스 이름은
collector-http-receiver
입니다.다음 명령을 실행하여 CA(인증 기관) 인증서 파일을 추출합니다.
oc extract cm/openshift-service-ca.crt -n <namespace>
$ oc extract cm/openshift-service-ca.crt -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl
명령을 사용하여 다음 명령을 실행하여 로그를 보냅니다.curl --cacert <openshift_service_ca.crt> https://collector-http-receiver.<namespace>.svc:8443 -XPOST -d '{"<prefix>":"<msessage>"}'
$ curl --cacert <openshift_service_ca.crt> https://collector-http-receiver.<namespace>.svc:8443 -XPOST -d '{"<prefix>":"<msessage>"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;openshift_service_ca.crt>
;를 추출된 CA 인증서 파일로 바꿉니다.참고확인 단계에 따라 클러스터 내에서만 로그를 전달할 수 있습니다.
1.5.3.2. 연결을 syslog 서버로 수신 대기하도록 수집기 구성 링크 복사링크가 클립보드에 복사되었습니다!
ClusterLogForwarder
사용자 정의 리소스(CR)에서 syslog
를 수신자 입력으로 지정하여 저널 형식 인프라 로그를 수집하도록 로그 수집기를 구성할 수 있습니다.
syslog 수신자 입력은 다음 시나리오에서만 지원됩니다.
- 로깅은 호스팅된 컨트롤 플레인에 설치됩니다.
Red Hat OpenShift Logging Operator와 동일한 클러스터에 설치된 Red Hat 지원 제품에서 로그가 시작된 경우 예를 들면 다음과 같습니다.
- Red Hat OpenStack Services on OpenShift(RHOSO)
- OpenShift Virtualization
사전 요구 사항
- 관리자 권한이 있습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. - Red Hat OpenShift Logging Operator가 설치되어 있습니다.
-
ClusterLogForwarder
CR을 생성했습니다.
프로세스
다음 명령을 실행하여
collect-infrastructure-logs
클러스터 역할을 서비스 계정에 부여합니다.바인딩 명령 예
oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logcollector
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logcollector
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterLogForwarder
CR을 수정하여syslog
수신자 입력 구성을 추가합니다.ClusterLogForwarder
CR의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ClusterLogForwarder
CR에 변경 사항을 적용합니다.oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 수집기가 <
clusterlogforwarder_resource_name>-<input_name
> 형식에 이름이 있는 서비스에서 수신 대기 중인지 확인합니다.oc get svc
$ oc get svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE collector ClusterIP 172.30.85.239 <none> 24231/TCP 33m collector-syslog-receiver ClusterIP 172.30.216.142 <none> 10514/TCP 2m20s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE collector ClusterIP 172.30.85.239 <none> 24231/TCP 33m collector-syslog-receiver ClusterIP 172.30.216.142 <none> 10514/TCP 2m20s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제 출력에서 서비스 이름은
collector-syslog-receiver
입니다.