forked from baron/baron-sso
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@@ -109,6 +109,32 @@ 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}
|
||||
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
|
||||
|
||||
10
docker/monitor/blackbox.yml
Normal file
10
docker/monitor/blackbox.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
modules:
|
||||
http_2xx:
|
||||
prober: http
|
||||
timeout: 5s
|
||||
http:
|
||||
valid_status_codes: [] # Defaults to 2xx
|
||||
method: GET
|
||||
follow_redirects: true
|
||||
fail_if_ssl: false
|
||||
fail_if_not_ssl: false
|
||||
161
docker/monitor/grafana/dashboards/baron_sso_dashboard.json
Normal file
161
docker/monitor/grafana/dashboards/baron_sso_dashboard.json
Normal file
@@ -0,0 +1,161 @@
|
||||
{
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": {
|
||||
"type": "datasource",
|
||||
"uid": "grafana"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"editable": true,
|
||||
"fiscalYearStartMonth": 0,
|
||||
"graphTooltip": 0,
|
||||
"id": null,
|
||||
"links": [],
|
||||
"liveNow": false,
|
||||
"panels": [
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": {
|
||||
"h": 3,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"id": 1,
|
||||
"title": "Baron SSO Service Overview",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "Prometheus"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"options": {
|
||||
"0": {
|
||||
"color": "red",
|
||||
"index": 1,
|
||||
"text": "OFFLINE"
|
||||
},
|
||||
"1": {
|
||||
"color": "green",
|
||||
"index": 0,
|
||||
"text": "ONLINE"
|
||||
}
|
||||
},
|
||||
"type": "value"
|
||||
}
|
||||
],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "red",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "green",
|
||||
"value": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 3
|
||||
},
|
||||
"id": 2,
|
||||
"options": {
|
||||
"alignValue": "center",
|
||||
"legend": {
|
||||
"displayMode": "list",
|
||||
"placement": "bottom",
|
||||
"showLegend": true
|
||||
},
|
||||
"mergeValues": true,
|
||||
"rowHeight": 0.8,
|
||||
"showValue": "always",
|
||||
"tooltip": {
|
||||
"mode": "single",
|
||||
"sort": "none"
|
||||
}
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "Prometheus"
|
||||
},
|
||||
"editorMode": "code",
|
||||
"expr": "probe_success{job=\"baron-services-http-probe\"}",
|
||||
"legendFormat": "{{instance}}",
|
||||
"range": true,
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"title": "Services Health Timeline (HTTP Probe)",
|
||||
"type": "state-timeline"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "loki",
|
||||
"uid": "Loki"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 12,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 11
|
||||
},
|
||||
"id": 3,
|
||||
"options": {
|
||||
"enableLogDetails": true,
|
||||
"prettifyLogMessage": false,
|
||||
"showCommonLabels": false,
|
||||
"showLabels": true,
|
||||
"showTime": true,
|
||||
"sortOrder": "Descending",
|
||||
"wrapLogMessage": true
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "loki",
|
||||
"uid": "Loki"
|
||||
},
|
||||
"expr": "{job=\"baron-sso-logs\"}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"title": "Live Container Logs (Loki)",
|
||||
"type": "logs"
|
||||
}
|
||||
],
|
||||
"refresh": "5s",
|
||||
"schemaVersion": 39,
|
||||
"tags": ["baron-sso", "observability"],
|
||||
"style": "dark",
|
||||
"timezone": "browser",
|
||||
"title": "Baron SSO Observability Dashboard",
|
||||
"uid": "baron_sso_observability",
|
||||
"version": 1,
|
||||
"weekStart": ""
|
||||
}
|
||||
41
docker/promtail-config.template.yaml
Normal file
41
docker/promtail-config.template.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
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:
|
||||
# 1. 원본 메타데이터에서 Baron 및 Ory 관련 컨테이너만 필터링
|
||||
- source_labels: ['__meta_docker_container_name']
|
||||
regex: '/(baron_.*|oathkeeper|kratos|hydra|keto|ory_.*)'
|
||||
action: keep
|
||||
|
||||
# 2. 필수 라벨 선부여 (강제성 확보를 위해 __address__ 참조)
|
||||
- source_labels: ['__address__']
|
||||
target_label: 'job'
|
||||
replacement: 'baron-sso-logs'
|
||||
- source_labels: ['__address__']
|
||||
target_label: 'app_env'
|
||||
replacement: '${APP_ENV:-development}'
|
||||
|
||||
# 3. 컨테이너 이름 추출
|
||||
- source_labels: ['__meta_docker_container_name']
|
||||
regex: '/(.*)'
|
||||
target_label: 'container_name'
|
||||
|
||||
# 4. 서비스 상세 라벨 부여 (baron_ 접두사 제거 등)
|
||||
- source_labels: ['container_name']
|
||||
regex: 'baron_(.*)'
|
||||
target_label: 'service'
|
||||
- source_labels: ['container_name']
|
||||
regex: 'baron_(.*)'
|
||||
target_label: 'job'
|
||||
@@ -538,6 +538,32 @@ 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}
|
||||
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
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
clickhouse_data:
|
||||
|
||||
Reference in New Issue
Block a user