티스토리 뷰
현대적인 MSA 환경에서는 시스템 상태를 모니터링하고 성능을 시각화하는 것이 필수적입니다. Prometheus와 Grafana는 이러한 요구를 충족시키는 강력한 오픈소스 도구로, Kong API Gateway와의 연동을 통해 효율적인 모니터링 환경을 구축할 수 있습니다. 이 글에서는 Kong을 중심으로 Prometheus와 Grafana를 연동하여 API 트래픽 및 시스템 상태를 한눈에 파악하는 방법을 안내합니다.
1. 프로메테우스 설정
# 디렉터리 구조
prometheus
│ docker-compose.yml
│ prometheus.yml
└─ data/
1.1. docker-compose.yml 작성
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml # Prometheus 설정 파일
- ./data:/prometheus/data # Prometheus 데이터 저장
networks:
- my-network
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_USER=admin # admin 초기 ID
- GF_SECURITY_ADMIN_PASSWORD=admin # admin 초기 PW
volumes:
- grafana_data:/var/lib/grafana # Grafana 데이터 저장
networks:
- my-network
networks:
my-network:
external: true # 기존 네트워크 재사용
volumes:
grafana_data: # Grafana 데이터 볼륨 정의
- Prometheus 와 Grafana 설정을 작성합니다.
1.2. prometheus.yml
global:
scrape_interval: 15s # 기본 메트릭 수집 주기
scrape_configs:
- job_name: 'backend_docker'
static_configs:
- targets:
- 'my-kong:8001' # Kong Admin API 메트릭 엔드포인트
- job_name: 'node'
static_configs:
- targets:
- 'node-exporter:9100' # Node Exporter 기본 포트
- API Gateway 로 Kong 을 사용하였고, CPU/RAM 사용량을 확인하기 위해 node-exporter 설정을 작성합니다.
1.3. node-exporter 실행
docker run -d -p 9100:9100 --name=node-exporter prom/node-exporter:latest
docker network connect my-network node-exporter
- node-exporter 를 실행시키고 my-network 에 수동으로 연결합니다.
1.4. 실행
docker-compose up -d
- docker-compose.yml 파일이 있는 디렉터리로 이동하여 명령어를 실행합니다.
1.5. 실행 확인
- Docker desktop 을 통해 정상 동작을 확인합니다.
http://localhost:9090/targets
- Prometheus 페이지로 접근하여 State 가 "UP" 인지 확인합니다.
- Query -> Graph 탭으로 이동하여, "kong_http_request_total" 의 입력결과 출력되는지 확인합니다.
2. Grafana 설정
2.1. 어드민 페이지 접근
http://localhost:3000/login
- Grafana Admin 페이지에 접속합니다.
- 설정파일의 'GF_SECURITY_ADMIN_USER', 'GF_SECURITY_ADMIN_PASSWORD' 가 초기 ID/PW 입니다.
2.2. 대시보드 템플릿 설치
https://grafana.com/grafana/dashboards/1860-node-exporter-full/
- 위 사이트에 접속 후, "Download JSON" 버튼을 클릭하여 대시보드 템플릿을 사용할 수 있습니다.
2.3. Data source 연결
- prometheus Data sources 를 추가합니다.
2.4. 대시보드 연동
- 우측 상단 "+ > Import dashboard" 를 클릭하고 다운로드한 json 파일을 옮깁니다.
- 저는 이미 사용 중이라 분홍색 경고창이 뜨는 상태입니다.
2.5. 실행 확인
- 이후, 원하는 패널 추가 및 자리 배치를 통해 모니터링을 할 수 있습니다.
감사합니다.
최근에 올라온 글
- Total
- Today
- Yesterday