18.10. 튜토리얼: 로깅
AWS(ROSA)의 Red Hat OpenShift Service에서 로그를 확인하는 방법은 여러 가지가 있습니다. 다음 절차에 따라 로그를 AWS CloudMonitor로 전달하고 oc logs
를 사용하여 Pod를 통해 로그를 직접 확인합니다.
ROSA는 로깅 솔루션으로 사전 구성되지 않았습니다.
18.10.1. CloudMonitor로 로그 전달
로깅 애드온 서비스를 설치하여 로그를 AWS CloudMonitor로 전달합니다.
다음 스크립트를 실행하여 로그를 CloudMonitor로 전달하도록 ROSA 클러스터를 구성합니다.
$ curl https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/resources/configure-cloudwatch.sh | bash
참고CloudMonitor에 로그를 보내도록 ROSA를 구성하는 것은 이 튜토리얼의 범위를 벗어납니다. AWS와 통합 및 CloudWatch 로깅 활성화는 ROSA의 중요한 측면이므로 구성 프로세스를 단순화하기 위해 스크립트가 포함됩니다. 이 스크립트는 AWS CloudMonitor를 자동으로 설정합니다. 스크립트를 검사하여 관련 단계를 이해할 수 있습니다.
출력 예
Varaibles are set...ok. Policy already exists...ok. Created RosaCloudWatch-mycluster role. Attached role policy. Deploying the Red Hat OpenShift Logging Operator namespace/openshift-logging configured operatorgroup.operators.coreos.com/cluster-logging created subscription.operators.coreos.com/cluster-logging created Waiting for Red Hat OpenShift Logging Operator deployment to complete... Red Hat OpenShift Logging Operator deployed. secret/cloudwatch-credentials created clusterlogforwarder.logging.openshift.io/instance created clusterlogging.logging.openshift.io/instance created Complete.
몇 분 후에 AWS CloudMonitor 내부에 로그 그룹을 볼 수 있습니다. 다음 명령을 실행하여 로그 그룹을 확인합니다.
$ aws logs describe-log-groups --log-group-name-prefix rosa-mycluster
출력 예
{ "logGroups": [ { "logGroupName": "rosa-mycluster.application", "creationTime": 1724104537717, "metricFilterCount": 0, "arn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.application:*", "storedBytes": 0, "logGroupClass": "STANDARD", "logGroupArn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.application" }, { "logGroupName": "rosa-mycluster.audit", "creationTime": 1724104152968, "metricFilterCount": 0, "arn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.audit:*", "storedBytes": 0, "logGroupClass": "STANDARD", "logGroupArn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.audit" },
18.10.2. 스트림 및 로그에 데이터 출력
메시지를
stdout
에 출력합니다.- OSToy 애플리케이션에서 홈을 클릭한 다음 로그 메시지(stdout)에 대한 메시지 상자를 클릭합니다.
-
stdout
스트림에 출력할 메시지를 작성합니다(예: "All is well!"). 메시지 전송을 클릭합니다.
stderr
에 메시지를 출력합니다.- 로그 메시지(stderr)의 메시지 상자를 클릭합니다.
-
stderr
스트림(예: "Oh no!)으로 출력할 메시지를 작성합니다. 오류!". 메시지 전송을 클릭합니다.
18.10.3. oc
명령을 사용하여 애플리케이션 로그 보기
CLI(명령줄 인터페이스)에 다음 명령을 입력하여 프런트 엔드 Pod의 이름을 검색합니다.
$ oc get pods -o name
출력 예
pod/ostoy-frontend-679cb85695-5cn7x 1 pod/ostoy-microservice-86b4c6f559-p594d
- 1
- 포드 이름은
ostoy-frontend-679cb85695-5cn7x
입니다.
다음 명령을 실행하여
stdout
및stderr
메시지를 모두 확인합니다.$ oc logs <pod-name>
출력 예
$ oc logs ostoy-frontend-679cb85695-5cn7x [...] ostoy-frontend-679cb85695-5cn7x: server starting on port 8080 Redirecting to /home stdout: All is well! stderr: Oh no! Error!
18.10.4. CloudMonitor를 사용하여 로그 보기
- AWS 웹 콘솔에서 CloudWatch 로 이동합니다.
왼쪽 메뉴에서 로그 및 로그 를 클릭하여 다른 로그 그룹을 확인합니다. 세 개의 그룹이 표시됩니다.
-
rosa-<cluster-name>.application
-
rosa-<cluster-name>.audit
rosa-<cluster-name>.infrastructure
-
-
rosa-<cluster-name>.application
을 클릭합니다. 프런트 엔드 포드의 로그 스트림을 클릭합니다.
-
stdout
및stderr
에 대해 필터링합니다. 행을 확장하여 이전에 입력한 메시지 및 기타 관련 정보를 표시합니다.
- 로그 스트림으로 돌아가서 마이크로 서비스를 선택합니다.
- 검색 창에 "microservice"를 입력하여 로그에 다른 메시지를 확인합니다.
항목 중 하나를 확장하여 마이크로 서비스에서 수신한 프런트 엔드 포드의 색상과 해당 색상을 frontend 포드에 보낸 포드를 확인합니다.
추가 리소스