2.3. 작업 문제 해결
이 섹션에서는 OpenShift에 표시되도록 3scale 감사 로깅을 구성하는 방법과 OpenShift에서 3scale 로그 및 작업 큐에 액세스하는 방법을 설명합니다.
2.3.1. OpenShift에서 3scale API Management 감사 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
이를 통해 Elasticsearch, Fluentd 및 Kibana(EFK) 로깅 툴을 통해 모든 로그를 쿼리할 수 있습니다. 이러한 툴은 3scale 구성 변경 사항, 이러한 변경을 수행한 사용자 및 시기에 대한 가시성을 향상시킵니다. 예를 들어 청구, 애플리케이션 계획, API(애플리케이션 프로그래밍 인터페이스) 구성 등에 대한 변경 사항이 포함됩니다.
사전 요구 사항
- 3scale 2.15 배포.
프로세스
모든 애플리케이션 로그를 표준 OpenShift 포드 로그로 전달하도록 감사 로깅을 stdout 로 구성합니다.
몇 가지 고려 사항:
-
3scale이 온-프레미스에 배포되면 기본적으로
stdout에 대한 감사 로깅이 비활성화됩니다. 이 기능을 완전히 작동하도록 구성해야 합니다. -
3scale 호스팅에서는
stdout에 대한 감사 로깅을 사용할 수 없습니다.
2.3.2. 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
3scale은 features.yml 구성 파일을 사용하여 일부 글로벌 기능을 활성화합니다. stdout 에 대한 감사 로깅을 활성화하려면 ConfigMap 에서 이 파일을 마운트하여 기본 파일을 교체해야 합니다. features.yml 을 사용하는 OpenShift pod는 system-app 및 system-sidekiq 입니다.
사전 요구 사항
- 3scale 프로젝트에 대한 관리자 액세스 권한이 있어야 합니다.
프로세스
stdout에 감사 로깅을 활성화하려면 다음 명령을 입력합니다.oc patch configmap system -p '{"data": {"features.yml": "features: &default\n logging:\n audits_to_stdout: true\n\nproduction:\n <<: *default\n"}}'$ oc patch configmap system -p '{"data": {"features.yml": "features: &default\n logging:\n audits_to_stdout: true\n\nproduction:\n <<: *default\n"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 환경 변수를 내보냅니다.
export PATCH_SYSTEM_VOLUMES='{"spec":{"template":{"spec":{"volumes":[{"emptyDir":{"medium":"Memory"},"name":"system-tmp"},{"configMap":{"items":[{"key":"zync.yml","path":"zync.yml"},{"key":"rolling_updates.yml","path":"rolling_updates.yml"},{"key":"service_discovery.yml","path":"service_discovery.yml"},{"key":"features.yml","path":"features.yml"}],"name":"system"},"name":"system-config"}]}}}}'$ export PATCH_SYSTEM_VOLUMES='{"spec":{"template":{"spec":{"volumes":[{"emptyDir":{"medium":"Memory"},"name":"system-tmp"},{"configMap":{"items":[{"key":"zync.yml","path":"zync.yml"},{"key":"rolling_updates.yml","path":"rolling_updates.yml"},{"key":"service_discovery.yml","path":"service_discovery.yml"},{"key":"features.yml","path":"features.yml"}],"name":"system"},"name":"system-config"}]}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 업데이트된 배포 구성을 관련 OpenShift 포드에 적용합니다.
oc patch dc system-app -p $PATCH_SYSTEM_VOLUMES oc patch dc system-sidekiq -p $PATCH_SYSTEM_VOLUMES
$ oc patch dc system-app -p $PATCH_SYSTEM_VOLUMES $ oc patch dc system-sidekiq -p $PATCH_SYSTEM_VOLUMESCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.3. Red Hat OpenShift의 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
3scale 애플리케이션 로그를 OpenShift로 전달하도록 감사 로깅을 활성화한 경우 로깅 툴을 사용하여 3scale 애플리케이션을 모니터링할 수 있습니다.
Red Hat OpenShift에 대한 로깅 구성에 대한 자세한 내용은 다음을 참조하십시오.
2.3.4. 로그 액세스 링크 복사링크가 클립보드에 복사되었습니다!
각 구성 요소의 배포 구성에는 액세스 및 예외에 대한 로그가 포함되어 있습니다. 배포에 문제가 발생하면 해당 로그에서 자세한 내용을 확인하십시오.
다음 단계에 따라 3scale의 로그에 액세스합니다.
프로세스
로그를 원하는 Pod의 ID를 찾습니다.
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs및 선택한 Pod의 ID를 입력합니다.oc logs <pod>
$ oc logs <pod>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시스템 포드에는 각각 별도의 로그가 있는 두 개의 컨테이너가 있습니다. 컨테이너 로그에 액세스하려면
system-provider및system-developerPod를 사용하여--container매개변수를 지정합니다.oc logs <pod> --container=system-provider oc logs <pod> --container=system-developer
$ oc logs <pod> --container=system-provider $ oc logs <pod> --container=system-developerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.5. 작업 대기열 확인 링크 복사링크가 클립보드에 복사되었습니다!
작업 큐에는 system-sidekiq Pod에서 보낸 정보 로그가 포함됩니다. 이러한 로그를 사용하여 클러스터가 데이터를 처리하고 있는지 확인합니다. OpenShift CLI를 사용하여 로그를 쿼리할 수 있습니다.
oc get jobs
$ oc get jobs
oc logs <job>
$ oc logs <job>
2.3.6. 단조적 성장 방지 링크 복사링크가 클립보드에 복사되었습니다!
고정적 증가를 방지하기 위해 기본적으로 3scale 일정은 다음 테이블을 자동으로 제거합니다.
user_sessions
정리는 일주일에 한 번 트리거되고 2주가 지난 레코드를 삭제합니다.
audits
정리는 하루에 한 번 트리거되고 3개월 이상 오래된 레코드를 삭제합니다.
log_entries
정리는 하루에 한 번 트리거되고 6개월 이상 오래된 레코드를 삭제합니다.
event_store_events
정리는 일주일에 한 번 트리거되고 1주일 이상 오래된 레코드를 삭제합니다.
위에 나열된 테이블을 제외하고 다음 표에서는 데이터베이스 관리자가 수동으로 제거해야 합니다.
- 경고
| 데이터베이스 유형 | SQL 명령 |
|---|---|
| MySQL |
DELETE FROM alerts WHERE timestamp < NOW() - INTERVAL 14 DAY;
|
| PostgreSQL |
DELETE FROM alerts WHERE timestamp < NOW() - INTERVAL '14 day';
|
| Oracle |
DELETE FROM alerts WHERE timestamp <= TRUNC(SYSDATE) - 14;
|
추가 리소스