Prometheus: Actuator가 노출하는 수치(메트릭)들을 주기적으로 긁어모아 데이터를 수집한다.
✅ 2. 프로메테우스 설정파일 만들기
prometheus.yml
global:
scrape_interval: 15s # 15초마다 한 번씩 데이터 가져오기
scrape_configs:
- job_name: 'waiting-api-spring-boot'
metrics_path: '/actuator/prometheus'
static_configs:
# 도커 컨테이너 안에서 내 로컬 컴퓨터(Host)에 떠있는 스프링 부트로 접근
- targets: ['host.docker.internal:8080']
✅ 3. Docker Compose 파일 수정
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- xpack.security.http.ssl.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- "9200:9200"
logstash:
image: docker.elastic.co/logstash/logstash:9.1.0
container_name: logstash
volumes:
- ./logs:/usr/share/logstash/logs
- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf
ports:
- "5044:5044"
depends_on:
- elasticsearch
kibana:
image: docker.elastic.co/kibana/kibana:9.1.0 # 무조건 ES, Logstash와 버전을 맞춰야 해요! (9.1.0)
container_name: kibana
ports:
- "5601:5601" # 키바나 포트 번호
environment:
# 키바나가 데이터를 가지고올 주소
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
depends_on:
- elasticsearch
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090" # 프로메테우스의 기본 포트 번호
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml # 프로메테우스 설정 파일
✅ 4. Prometheus 실행 확인
docker compose down
docker-compose up -d
docker ps