diff --git a/docker-compose.yaml b/docker-compose.yaml index 889ac824..c2b6173f 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -172,6 +172,33 @@ services: networks: - baron_net + promtail: + image: grafana/promtail:2.9.0 + container_name: baron_promtail + restart: unless-stopped + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - /var/lib/docker/containers:/var/lib/docker/containers:ro + - ./docker/promtail-config.template.yaml:/etc/promtail/promtail-config.yaml:ro + command: -config.file=/etc/promtail/promtail-config.yaml -config.expand-env=true + environment: + - LOKI_URL=${LOKI_URL:-http://loki:3100/loki/api/v1/push} + - APP_ENV=${APP_ENV:-development} + networks: + - baron_net + + blackbox-exporter: + image: prom/blackbox-exporter:v0.25.0 + container_name: baron_blackbox_exporter + restart: unless-stopped + ports: + - "9115:9115" + volumes: + - ./docker/monitor/blackbox.yml:/etc/blackbox_exporter/config.yml:ro + networks: + - baron_net + - ory-net + networks: baron_net: external: true diff --git a/docker/promtail-config.staging.template.yaml b/docker/promtail-config.template.yaml similarity index 96% rename from docker/promtail-config.staging.template.yaml rename to docker/promtail-config.template.yaml index f8fcac1a..45ac4bfb 100644 --- a/docker/promtail-config.staging.template.yaml +++ b/docker/promtail-config.template.yaml @@ -25,7 +25,7 @@ scrape_configs: replacement: 'baron-sso-logs' - source_labels: ['__address__'] target_label: 'app_env' - replacement: 'stage' + replacement: '${APP_ENV:-development}' # 3. 컨테이너 이름 추출 - source_labels: ['__meta_docker_container_name'] diff --git a/docs/external_healthcheck_monitoring_design.md b/docs/external_healthcheck_monitoring_design.md index 2efe0cad..c1b644be 100644 --- a/docs/external_healthcheck_monitoring_design.md +++ b/docs/external_healthcheck_monitoring_design.md @@ -97,10 +97,11 @@ services: volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /var/lib/docker/containers:/var/lib/docker/containers:ro - - ./promtail-config.staging.template.yaml:/etc/promtail/promtail-config.yaml:ro - command: -config.file=/etc/promtail/promtail-config.yaml + - ./docker/promtail-config.template.yaml:/etc/promtail/promtail-config.yaml:ro + command: -config.file=/etc/promtail/promtail-config.yaml -config.expand-env=true environment: - LOKI_URL=${LOKI_URL:-http://loki:3100/loki/api/v1/push} + - APP_ENV=${APP_ENV:-development} networks: - baron_net @@ -110,11 +111,11 @@ networks: name: baron_net ``` -### 3.2 `promtail-config.staging.template.yaml` 설정 사양 +### 3.2 `promtail-config.template.yaml` 설정 사양 수집기가 도커 소켓을 읽어 컨테이너명을 자동으로 식별하고, Baron SSO 관련 로그만 선별하여 라벨을 붙인 후 Loki로 전송합니다. ```yaml -# docker/promtail-config.staging.template.yaml +# docker/promtail-config.template.yaml server: http_listen_port: 9080 @@ -146,9 +147,9 @@ scrape_configs: - source_labels: ['container_name'] regex: 'baron_(.*)' target_label: 'job' - # 정적 라벨 추가 + # 동적 라벨 추가 - target_label: 'app_env' - replacement: 'stage' + replacement: '${APP_ENV:-development}' ``` ---