From 65f745f87b5b0950806f7ab9db6de98e94184cdd Mon Sep 17 00:00:00 2001 From: Wibaek Park Date: Tue, 15 Apr 2025 13:05:21 +0900 Subject: [PATCH 1/4] =?UTF-8?q?chore:=20logback=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EB=A1=9C=EA=B9=85=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + src/main/resources/logback-spring.xml | 35 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/main/resources/logback-spring.xml diff --git a/.gitignore b/.gitignore index 9f59fa8d9..d5df4047a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ build/ !gradle/wrapper/gradle-wrapper.jar !**/src/main/**/build/ !**/src/test/**/build/ +logs/ ### STS ### .apt_generated diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 000000000..390c7c606 --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,35 @@ + + + + + + + + + + /var/log/spring/solid-connection-server.log + + + + /var/log/spring/solid-connection-server.%d{yyyy-MM-dd}.log + 30 + + + + + timestamp=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} level=%-5level thread=%thread logger=%logger{36} + message=%msg%n + + + + + + + + + + + + + + From 86df2333fe7880a4a42b0e2c8c232b1bb085ab6a Mon Sep 17 00:00:00 2001 From: Wibaek Park Date: Tue, 15 Apr 2025 13:07:11 +0900 Subject: [PATCH 2/4] =?UTF-8?q?chore:=20alloy=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.prod.yml | 10 ++++++++++ docker-compose.stage.yml | 10 ++++++++++ docs/config.alloy | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 docs/config.alloy diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 9517a07aa..5112f1036 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -28,5 +28,15 @@ services: - SPRING_PROFILES_ACTIVE=prod - SPRING_DATA_REDIS_HOST=redis - SPRING_DATA_REDIS_PORT=6379 + volumes: + - ./logs:/var/log/spring depends_on: - redis + + alloy: + image: grafana/alloy:latest + container_name: alloy + ports: + - "12345:12345" + volumes: + - ./logs:/var/log/spring diff --git a/docker-compose.stage.yml b/docker-compose.stage.yml index 3a97a6411..492764dc2 100644 --- a/docker-compose.stage.yml +++ b/docker-compose.stage.yml @@ -28,6 +28,16 @@ services: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=stage + volumes: + - ./logs:/var/log/spring depends_on: - redis network_mode: host + + alloy: + image: grafana/alloy:latest + container_name: alloy + ports: + - "12345:12345" + volumes: + - ./logs:/var/log/spring diff --git a/docs/config.alloy b/docs/config.alloy new file mode 100644 index 000000000..168b83826 --- /dev/null +++ b/docs/config.alloy @@ -0,0 +1,37 @@ +livedebugging { + enabled = true +} + +logging { + level = "info" + format = "logfmt" +} + +local.file_match "spring_logs" { + path_targets = [{ __path__ = "/var/log/spring/*.log" }] // 서비스 로그 파일 경로 +} + +loki.source.file "spring_source" { + targets = local.file_match.spring_logs.targets // 위에서 정의한 로그 파일 경로 사용 + forward_to = [loki.process.spring_labels.receiver] // 읽은 로그를 처리 단계로 전달 +} + +loki.process "spring_labels" { + forward_to = [loki.write.grafana_loki.receiver] // 처리된 로그를 Loki로 전송 + + stage.static_labels { + values = { + "job" = "spring", + "service" = "backend", + } + } +} + +loki.write "grafana_loki" { + endpoint { + url = "http://monitor.solid-connection.com:3100/loki/api/v1/push" + tenant_id = "fake" // Loki 테넌트 ID (싱글 테넌시이기에 fake로 설정) + batch_wait = "1s" // 로그 배치 전송 대기 시간 + batch_size = "1MB" // 로그 배치 크기 + } +} \ No newline at end of file From 3c0d52caba26f8ff89ecbae984c5eb718eba475e Mon Sep 17 00:00:00 2001 From: Wibaek Park <34394229+wibaek@users.noreply.github.com> Date: Sun, 27 Apr 2025 10:23:31 +0900 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20EOF=20=EA=B0=9C=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/config.alloy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config.alloy b/docs/config.alloy index 168b83826..4231df1b2 100644 --- a/docs/config.alloy +++ b/docs/config.alloy @@ -34,4 +34,4 @@ loki.write "grafana_loki" { batch_wait = "1s" // 로그 배치 전송 대기 시간 batch_size = "1MB" // 로그 배치 크기 } -} \ No newline at end of file +} From 7f844c8e3efec920f4c593d35f65969b2a273539 Mon Sep 17 00:00:00 2001 From: Wibaek Park Date: Sun, 27 Apr 2025 11:27:30 +0900 Subject: [PATCH 4/4] =?UTF-8?q?chore:=20alloy=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9,=20env=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.prod.yml | 3 +++ docker-compose.stage.yml | 3 +++ docs/config.alloy | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 5112f1036..30b0c9fc1 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -40,3 +40,6 @@ services: - "12345:12345" volumes: - ./logs:/var/log/spring + - ./docs/config.alloy:/etc/alloy/config.alloy:ro + environment: + - ALLOY_ENV=production diff --git a/docker-compose.stage.yml b/docker-compose.stage.yml index 492764dc2..c4ccd687f 100644 --- a/docker-compose.stage.yml +++ b/docker-compose.stage.yml @@ -41,3 +41,6 @@ services: - "12345:12345" volumes: - ./logs:/var/log/spring + - ./docs/config.alloy:/etc/alloy/config.alloy:ro + environment: + - ALLOY_ENV=stage diff --git a/docs/config.alloy b/docs/config.alloy index 4231df1b2..bd3aedf9a 100644 --- a/docs/config.alloy +++ b/docs/config.alloy @@ -21,8 +21,8 @@ loki.process "spring_labels" { stage.static_labels { values = { - "job" = "spring", - "service" = "backend", + service = "backend", + env = sys.env("ALLOY_ENV"), } } }