BBahmni 한국어 매뉴얼검색
한국어 번역 완료
한국어English

Kubernetes 환경의 모니터링 및 중앙 로그 설치

소개

현재 Bahmni는 모니터링과 관측성에 다음 도구를 사용합니다.

1. 모니터링 및 알림: https://prometheus.io/ Prometheus: Prometheus는 오픈 소스 시스템 모니터링 및 알림 도구 모음입니다. Prometheus는 메트릭을 시계열 데이터로 수집하고 저장합니다. 즉, 메트릭 정보는 기록된 타임스탬프 및 레이블이라는 선택적 키-값 쌍과 함께 저장됩니다.

2. 중앙 집중식 로깅: https://grafana.com/oss/loki/ 이 구성은 Promtail, Loki 및 https://grafana.com/ 로 이루어집니다. Grafana: Grafana는 여러 플랫폼에서 사용할 수 있는 오픈 소스 분석 및 대화형 시각화 웹 애플리케이션입니다. 지원되는 데이터 원본에 연결하면 웹에서 차트, 그래프 및 알림을 제공합니다. Loki: Loki는 Prometheus에서 영감을 받은 수평 확장형 고가용성 멀티 테넌트 로그 집계 시스템입니다. 비용 효율이 높고 운영하기 쉽게 설계되었습니다. 로그 내용은 인덱싱하지 않고 각 로그 스트림의 레이블 집합을 인덱싱합니다.

Bahmni 설정

Bahmni는 공급자(Prometheus/Grafana)가 게시하고 유지 관리하는 최신 공식 helm-charts를 사용해 모니터링과 관측성을 관리합니다. Bahmni에는 즉시 사용할 수 있도록 구성된 대시보드와 메트릭이 포함되어 있습니다.

  • 모니터링에는 Prometheus, Grafana 및 Loki를 결합한 스택인 kube-prometheus-stack을 사용합니다. 이 스택은 Kubernetes 매니페스트, Grafana 대시보드, Prometheus 규칙, 문서 및 스크립트를 결합하여 Prometheus Operator로 손쉽게 운영할 수 있는 종단 간 Kubernetes 클러스터 모니터링을 제공합니다.
  • 중앙 집중식 로깅은 로그 수집기인 Promtail, 로그 저장 및 인덱싱을 담당하는 Loki, 시각화를 담당하는 Grafana로 구성된 Loki 스택을 사용합니다. Loki에 관한 자세한 내용은 여기를 참조하십시오.관련 문서: Loki stackhere

현재 모든 네임스페이스의 Kubernetes 구성 요소 로그와 애플리케이션 로그를 Loki에서 확인할 수 있습니다.

모니터링 및 로깅 설치

GitHub Actions 사용

helm-umbrella-charts 저장소를 포크하고 GitHub Actions 워크플로를 실행하여 인프라를 프로비저닝할 수 있습니다.

1. GitHub Actions Secrets에 AWS 보안 정보 추가

워크플로가 AWS에 인증하도록 AWS 보안 정보를 GitHub Actions Secrets에 추가합니다.관련 문서: Github actions secrets

BAHMNI_AWS_ID → 프로비저닝한 사용자의 Access Key ID

BAHMNI_AWS_SECRET → 사용자의 Secret Access Key

BAHMNI_INFRA_ADMIN_ROLE → BahmniInfraAdminRoleForIAMUsers의 Role ARN

BAHMNI_AWS_REGION → AWS 리전

HOSTED_ZONE_ID → hosted zone은 DNS 레코드를 담는 컨테이너입니다.

2️. 파이프라인 실행

Monitoring을 배포하는 전용 파이프라인이 있습니다.

a) Monitoring and Logging 배포: 이 파이프라인은 helm-charts를 사용해 모니터링 및 로깅 리소스를 프로비저닝합니다.관련 문서: Deploy Monitoring and Logging

Grafana 로그인 단계

  1. Bahmni-Lite Monitoring 대시보드로 이동합니다.관련 문서: Bahmni-Lite Monitoring dashboard
  2. Sign in with Github을 클릭합니다.
  3. GitHub 인증을 허용하도록 Bahmni Github을 승인합니다. 이제 로그인되었습니다.

Grafana 대시보드 보기

  1. 대시보드를 보려면 아래 표시를 클릭합니다.
    Snip20220706_53.png
  2. Dashboards 검색 화면이 열립니다.
    Snip20220706_54.png

3. 보려는 대시보드를 클릭합니다.

Grafana 대시보드와 사용법을 더 자세히 이해하려면 공식 문서를 참조하십시오.관련 문서: official documentation

로그 확인 단계

1. 로그인한 후 Grafana의 Explore로 이동합니다.

image-20220706-063146.png

2. Explore 페이지에서 데이터 원본을 Loki로 설정합니다.

Snip20220706_57.png

3. Log Browser를 사용해 로그를 확인할 앱과 네임스페이스를 선택합니다. 직접 LogQL 쿼리를 작성할 수도 있습니다.관련 문서: LogQL query

4. 필요한 로그를 보려면 레이블을 필터링합니다. 특정 네임스페이스, 인스턴스, 컨테이너, 애플리케이션 등을 검색할 수 있습니다.

Snip20221207_5.png

5. 필터 레이블을 선택한 뒤 로그를 확인할 구성요소를 선택할 수 있습니다. 예 1: app 레이블을 선택하고 select value를 누르면 로그가 있는 모든 앱이 표시됩니다.

Snip20221207_6.png

예 2: namespace 레이블을 선택하고 select value를 누르면 로그가 있는 모든 네임스페이스가 표시됩니다.

Snip20221207_7.png

다른 레이블도 같은 방식으로 사용할 수 있습니다.

시연 동영상

모니터링 및 중앙 로그 사용법을 자세히 설명하는 YouTube 시연입니다. 로그인 절차와 로그 조회 방법을 설명하며 과거 주간 PAT 회의에서 진행한 시연입니다.

https://youtu.be/sz_Xw_jcdSY

재생 시간: 20분

예시

NameQuery
1QA server monitoring linkhttps://monitoring-lite.mybahmni.in/goto/OYnNoCKVz?orgId=1
2QA server bahmni-web logs(app: bahmni-web, namespace: qa)
3QA server openmrs logs(app: openmrs, namespace: qa)
4All POST requests logs to QA server
5All OpenMRS Admin UI login requests on QA server
{namespace="ingress-nginx"} |= `POST` |= `qa.lite.mybahmni` != `monitoring.lite`
{namespace="ingress-nginx"} |= `POST` |= `qa.lite.mybahmni` != `monitoring.lite` |= `/openmrs/ms/legacyui/loginServlet`

참고: Grafana 대시보드 접근에 문제가 있으면 Infra 팀(Slack: #bahmni-infra)에 문의하십시오.

원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗