3장. 3scale API Management 모니터링 활성화
Prometheus 및 Grafana Operator를 사용하여 Red Hat 3scale API Management 모니터링을 활성화할 수 있습니다. Prometheus는 애플리케이션 및 인프라의 지표를 실시간으로 수집하고 분석하도록 설계된 오픈 소스 모니터링 및 경고 툴입니다. Grafana는 사용자 지정 가능한 대시보드에서 다양한 소스의 실시간 데이터를 표시하고 모니터링하는 데 사용되는 오픈 소스 분석 및 시각화 플랫폼입니다.
OpenShift 4.16 이상에서 Grafana 4를 사용 중단하면 지침은 다음 두 섹션으로 나뉩니다.
- OpenShift 4.15 및 이전 버전의 경우
- OpenShift 4.16 이상의 경우
- Grafana 5는 OpenShift 4.14 이상에서 사용할 수 있으며 3scale 2.15 Operator에서 지원합니다. 가능한 경우 Grafana 5를 사용하는 것이 좋습니다.
- Prometheus 및 Grafana에 대한 Red Hat 지원은 Red Hat 제품 설명서에 제공된 구성 권장 사항으로 제한됩니다.
- 3scale Operator는 모니터링 리소스를 생성하지만 해당 리소스를 수정하지는 않습니다.
- 3scale Operator 및 Prometheus Operator를 동일한 네임스페이스에 설치하거나 클러스터 전체 Operator를 사용해야 합니다.
Grafana 4에서 Grafana 5로 마이그레이션하는 단계도 다룹니다.
사전 요구 사항
- 3scale Operator가 설치되어 있습니다.
Prometheus Operator는 OperatorHub 에서 설치됩니다. Prometheus Operator를 사용하여 Prometheus 인스턴스를 생성하고 관리할 수 있습니다. 3scale 모니터링에 필요한
PrometheusCRD(사용자 정의 리소스 정의)를 제공합니다.다음 Prometheus Operator 버전은 OCP(OpenShift Container Platform) 버전에 따라 3scale과 호환됩니다.
- OCP 4.15 또는 이전 버전을 사용하는 최신 Prometheus 커뮤니티 Operator
- OCP 4.16 이상을 사용하는 최신 Prometheus 커뮤니티 Operator
Grafana Operator는 OperatorHub 에서 설치됩니다. Grafana operator를 사용하여 Grafana 인스턴스를 생성 및 관리할 수 있습니다. 3scale 모니터링에 필요한
GrafanaDashboardCRD를 제공합니다.다음 Grafana Operator 버전은 OCP 버전에 따라 3scale과 호환됩니다.
- OCP 4.15 또는 이전 버전의 Grafana 커뮤니티 Operator 4.
- OCP 4.16 이상이 포함된 Grafana 커뮤니티 Operator 5.
클러스터가 인터넷에 노출되면 Prometheus 및 Grafana 서비스를 보호하십시오.
이 섹션에서는 Grafana 대시보드를 볼 수 있도록 3scale 인스턴스의 모니터링을 활성화하는 방법을 설명합니다.
3.1. Grafana 4 및 Prometheus를 OCP 4.15로 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform (OCP) 버전에 대해 Grafana 및 Prometheus를 최대 4.15로 구성합니다. 이 가이드에서는 3scale 환경을 모니터링하기 위해 이러한 툴을 설정하여 실시간 인사이트 및 데이터 시각화를 제공합니다.
프로세스
OperatorHub 에서 Grafana 4 커뮤니티 Operator를 설치합니다.
- OpenShift 관리자 인증 정보를 사용하여 OCP(OpenShift Container Platform)에 로그인합니다.
Grafana 커뮤니티 Operator를 설치할 프로젝트 목록에서 프로젝트를 선택합니다.
중요3scale Operator를 설치한 동일한 프로젝트에 Grafana 커뮤니티 Operator를 설치합니다.
- Operators > OperatorHub 로 이동합니다.
- "grafana"를 검색하고 Grafana Operator 를 클릭합니다.
Grafana Community Operator 페이지에서 설치를 클릭합니다. Create Operator Subscription 페이지가 표시됩니다. Grafana Operator 서브스크립션을 생성하려면 다음 단계를 완료합니다.
- 클러스터에서 특정 네임스페이스를 클릭하고 Grafana 커뮤니티 Operator를 설치할 프로젝트를 선택합니다.
- Subscribe를 클릭합니다.
- 승인 을 클릭합니다.
OperatorHub 에서 최신 Prometheus 커뮤니티 Operator를 설치합니다.
- OpenShift 관리자 인증 정보를 사용하여 OCP(OpenShift Container Platform)에 로그인합니다.
Prometheus 커뮤니티 Operator를 설치할 프로젝트 목록에서 프로젝트를 선택합니다.
중요3scale Operator를 설치한 동일한 프로젝트에 Prometheus 커뮤니티 Operator를 설치합니다.
- Operators > OperatorHub 로 이동합니다.
- "prometheus"를 검색하고 Prometheus Operator 를 클릭합니다.
Prometheus Community Operator 페이지에서 설치를 클릭합니다. Create Operator Subscription 페이지가 표시됩니다. Prometheus Operator 서브스크립션을 생성하려면 다음 단계를 완료합니다.
- 클러스터에서 특정 네임스페이스를 클릭하고 Prometheus Operator를 설치할 프로젝트를 선택합니다.
- Subscribe를 클릭합니다.
- 승인 을 클릭합니다.
3scale 배포 YAML의
spec.monitoring.enabled매개변수를true로 설정하여 모니터링을 활성화합니다. 예를 들면 다음과 같습니다.apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: ... spec: monitoring: enabled: true ...OpenShift 클러스터에 로그인합니다. 3scale의 OpenShift 프로젝트에서 edit 클러스터 역할을 가진 사용자로 로그인해야 합니다(예:
cluster-admin).$ oc login3scale 프로젝트로 전환합니다.
$ oc project <project_name>
Prometheus의 새 서비스 계정을 생성합니다.
$ oc create serviceaccount prometheus-monitoringClusterRoleBinding을 생성하여 Prometheus ServiceAccount에 메트릭을 스크랩하는 데 필요한 RBAC(역할 기반 액세스 제어) 권한을 부여합니다. ClusterRoleBinding을 생성하기 전에 ServiceAccount 네임스페이스를 업데이트합니다.
$ oc adm policy add-cluster-role-to-user cluster-monitoring-view -z prometheus-monitoring -n "<3scale_namespace>prometheus-monitoringServiceAccount에 대한 토큰을 생성합니다.$ oc create token prometheus-monitoring이 토큰이 만료되면 Prometheus는 필요한 리소스에 대한 액세스 권한이 손실됩니다.
--duration X[s|m|h]를 추가하여 토큰의 유효 기간을 지정합니다.-
생성한 토큰으로 3scale-scrape-configs.yaml
bearer_token필드를 업데이트합니다. additional-scrape-config 시크릿을 생성합니다.
$ oc create secret generic additional-scrape-configs --from-file=3scale-scrape-configs.yaml=./3scale-scrape-configs.yamlPrometheus를 배포합니다.
Prometheus.yaml 파일에서
spec.externalUrl필드를 외부 URL로 채웁니다. URL 템플릿은 다음과 같아야 합니다.spec: ... externalUrl: https://prometheus.<namespace-name>.apps.<cluster-domain>
Prometheus 서버를 배포합니다.
$ oc apply -f prometheus.yamlPrometheus 경로를 생성합니다.
$ oc expose service prometheus-operated --hostname prometheus.<namespace-name>.apps.<cluster-name>Grafana 데이터 소스를 배포합니다.
$ oc apply -f datasource-v4.yamlGrafana 배포
$ oc apply -f grafana-v4.yaml
추가 리소스