2.3. 작업 문제 해결
이 섹션에서는 OpenShift에 표시하도록 3scale 감사 로깅과 OpenShift에서 3scale 로그 및 작업 대기열에 액세스하는 방법을 구성하는 방법을 설명합니다.
2.3.1. OpenShift에서 3scale 감사 로깅 구성
이를 통해 Elasticsearch, Fluentd 및 Kibana(EFK) 로깅 툴을 통해 쿼리할 수 있는 모든 로그가 한 곳에 있을 수 있습니다. 이러한 툴을 사용하면 3scale 구성의 변경 사항, 이러한 변경을 수행한 사용자 및 시간에 대한 가시성이 향상됩니다. 예를 들어, 여기에는 청구, 애플리케이션 계획, API 구성 등의 변경 사항이 포함됩니다.
사전 요구 사항
- 3scale 2.13 배포
절차
모든 애플리케이션 로그를 표준 OpenShift Pod 로그로 전달하도록 감사 로깅을 stdout
로 구성합니다.
몇 가지 고려 사항:
-
기본적으로
stdout
에 대한 감사 로깅은 3scale이 온프레미스에 배포될 때 비활성화되어 있습니다. 이 기능이 완전히 작동하도록 구성해야 합니다. -
stdout
에 대한 감사 로깅은 3scale 호스팅에서 사용할 수 없습니다.
2.3.2. 감사 로깅 활성화
3scale에서는 features.yml
구성 파일을 사용하여 일부 글로벌 기능을 활성화합니다. stdout
에 대한 감사 로깅을 활성화하려면 기본 파일을 교체하려면 ConfigMap
에서 이 파일을 마운트해야 합니다. features.yml
에 의존하는 OpenShift 포드는 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"}}'
다음 환경 변수를 내보냅니다.
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"}]}}}}'
다음 명령을 입력하여 업데이트된 배포 구성을 관련 OpenShift 포드에 적용합니다.
oc patch dc system-app -p $PATCH_SYSTEM_VOLUMES oc patch dc system-sidekiq -p $PATCH_SYSTEM_VOLUMES
2.3.3. Red Hat OpenShift의 로깅 구성
감사 로깅을 활성화하여 3scale 애플리케이션 로그를 OpenShift로 전달하면 로깅 툴을 사용하여 3scale 애플리케이션을 모니터링할 수 있습니다.
Red Hat OpenShift에 대한 로깅 구성에 대한 자세한 내용은 다음을 참조하십시오.
2.3.4. 로그 액세스
각 구성 요소의 배포 구성에는 액세스 및 예외에 대한 로그가 포함되어 있습니다. 배포에 문제가 발생하면 해당 로그에서 세부 정보를 확인합니다.
다음 단계에 따라 3scale의 로그에 액세스합니다.
절차
로그를 원하는 Pod의 ID를 찾습니다.
oc get pods
oc logs
및 선택한 Pod의 ID를 입력합니다.oc logs <pod>
시스템 pod에는 각각 별도의 로그가 있는 두 개의 컨테이너가 있습니다. 컨테이너 로그에 액세스하려면
system-provider
및system-developer
Pod를 사용하여--container
매개변수를 지정합니다.oc logs <pod> --container=system-provider oc logs <pod> --container=system-developer
2.3.5. 작업 대기열 확인
작업 큐에는 system-sidekiq
Pod에서 전송된 정보 로그가 포함됩니다. 이러한 로그를 사용하여 클러스터가 데이터를 처리 중인지 확인합니다. OpenShift CLI를 사용하여 로그를 쿼리할 수 있습니다.
oc get jobs
oc logs <job>
2.3.6. monotonic 증가 방지
단결적인 증가를 방지하기 위해 3scale 스케줄은 기본적으로 다음 테이블의 자동 제거로 예약됩니다.
- user_sessions - 일주일에 한 번 정리가 트리거되고 2주가 지난 레코드가 삭제됩니다.
- 감사 - 하루에 한 번 정리가 트리거되고 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; |
추가 리소스
- Openshift Container Platform (OCP)에 대한 자세한 내용은 OCP 설명서를 참조하십시오.
- Pod 자동 스케일링.
- 컴퓨팅 노드 추가.
- 라우팅 최적화.