forked from baron/baron-sso
feat(monitoring): integrate prometheus and promtail log aggregation with sms alerts
This commit is contained in:
@@ -108,6 +108,37 @@ services:
|
||||
networks:
|
||||
- baron_net
|
||||
|
||||
grafana-sms-webhook:
|
||||
image: ${SMS_WEBHOOK_IMAGE_NAME:-ai-team/grafana-sms-webhook}:${IMAGE_TAG:-latest}
|
||||
container_name: grafana_sms_webhook
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- NAVER_CLOUD_ACCESS_KEY=${NAVER_CLOUD_ACCESS_KEY}
|
||||
- NAVER_CLOUD_SECRET_KEY=${NAVER_CLOUD_SECRET_KEY}
|
||||
- NAVER_CLOUD_SERVICE_ID=${NAVER_CLOUD_SERVICE_ID}
|
||||
- NAVER_SENDER_PHONE_NUMBER=${NAVER_SENDER_PHONE_NUMBER}
|
||||
- MONITOR_RECIPIENT_PHONES=${MONITOR_RECIPIENT_PHONES}
|
||||
ports:
|
||||
- "${SMS_WEBHOOK_PORT:-8080}:8080"
|
||||
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
|
||||
- ./promtail-config.staging.template.yaml:/etc/promtail/promtail-config.yaml:ro
|
||||
command: -config.file=/etc/promtail/promtail-config.yaml
|
||||
environment:
|
||||
- LOKI_URL=${LOKI_URL:-http://loki:3100/loki/api/v1/push}
|
||||
networks:
|
||||
- baron_net
|
||||
|
||||
networks:
|
||||
baron_net:
|
||||
external: true
|
||||
|
||||
33
docker/promtail-config.staging.template.yaml
Normal file
33
docker/promtail-config.staging.template.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
server:
|
||||
http_listen_port: 9080
|
||||
grpc_listen_port: 0
|
||||
|
||||
positions:
|
||||
filename: /tmp/positions.yaml
|
||||
|
||||
clients:
|
||||
- url: ${LOKI_URL:-http://loki:3100/loki/api/v1/push}
|
||||
|
||||
scrape_configs:
|
||||
- job_name: baron-sso-container-logs
|
||||
docker_sd_configs:
|
||||
- host: unix:///var/run/docker.sock
|
||||
refresh_interval: 10s
|
||||
relabel_configs:
|
||||
- source_labels: ['__meta_docker_container_name']
|
||||
regex: '/(.*)'
|
||||
target_label: 'container_name'
|
||||
# Baron SSO 및 핵심 Ory Stack 컨테이너만 필터링하여 로그 수집
|
||||
- source_labels: ['container_name']
|
||||
regex: '(baron_.*|oathkeeper|kratos|hydra|keto)'
|
||||
action: keep
|
||||
# 컨테이너 명에서 앞의 접두사를 떼어 서비스 및 잡 라벨 부여 (예: baron_backend -> backend)
|
||||
- source_labels: ['container_name']
|
||||
regex: 'baron_(.*)'
|
||||
target_label: 'service'
|
||||
- source_labels: ['container_name']
|
||||
regex: 'baron_(.*)'
|
||||
target_label: 'job'
|
||||
# 정적 라벨 추가
|
||||
- target_label: 'app_env'
|
||||
replacement: 'stage'
|
||||
Reference in New Issue
Block a user