Skip to content

Commit

Permalink
Merge pull request #197 from Re-4aliens/feat/#196_elk-stack
Browse files Browse the repository at this point in the history
Feat/#196 elk stack
  • Loading branch information
suhyun0918 authored Oct 19, 2024
2 parents 3ae2cb6 + 14889d0 commit e9a75e4
Show file tree
Hide file tree
Showing 9 changed files with 128 additions and 229 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/friendship-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ jobs:
sudo docker rm friendship || true
# 새 friendship 컨테이너 실행
sudo docker run -d --log-driver=syslog -p 443:8080 --name friendship --network friendship-network -e spring.profiles.active=prod -e TZ=Asia/Seoul ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }}:latest
sudo docker run -v /home/ec2-user/elk/logs:/logs -d --log-driver=syslog -p 443:8080 --name friendship --network friendship-network -e spring.profiles.active=prod -e TZ=Asia/Seoul ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }}:latest
# friendship 관련 종료된 컨테이너 삭제
sudo docker container prune -f
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ out/
.vscode/

### LOG ###
/src/main/resources/log/history/**
/logs
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM openjdk:17-ea-11-jdk-slim
VOLUME /tmp
VOLUME /logs
COPY build/libs/backend-0.0.1-SNAPSHOT.jar FriendShip.jar
ENTRYPOINT ["java", "-jar", "FriendShip.jar"]
57 changes: 0 additions & 57 deletions src/main/resources/log/config/error-config.xml

This file was deleted.

52 changes: 0 additions & 52 deletions src/main/resources/log/config/info-config.xml

This file was deleted.

61 changes: 0 additions & 61 deletions src/main/resources/log/config/warn-config.xml

This file was deleted.

35 changes: 0 additions & 35 deletions src/main/resources/logback-dev.xml

This file was deleted.

12 changes: 0 additions & 12 deletions src/main/resources/logback-prod.xml

This file was deleted.

134 changes: 125 additions & 9 deletions src/main/resources/logback-spring.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 콘솔 출력 폼 설정 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
Expand All @@ -8,12 +9,6 @@
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<property name="CONSOLE_LOG_CHARSET" value="${CONSOLE_LOG_CHARSET:-default}"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>${CONSOLE_LOG_CHARSET}</charset>
</encoder>
</appender>

<!-- Logback 내부 초기화 로그 억제 -->
<logger name="ch.qos.logback" level="ERROR"/>
Expand All @@ -29,7 +24,128 @@
<logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
<logger name="org.springframework.boot.actuate.endpoint.jmx" level="WARN"/>

<root level="${logging.level.root:-INFO}">
<appender-ref ref="CONSOLE"/>
</root>
<!-- 콘솔 로깅 -->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>${CONSOLE_LOG_CHARSET}</charset>
</encoder>
</appender>

<property name="LOG_PATH" value="./logs"/>
<property name="LOG_FILE_NAME" value="info"/>
<property name="ERR_LOG_FILE_NAME" value="error"/>

<!-- API 로깅 -->
<appender name="ApiLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<!-- 로그 레벨 포함 -->
<logLevel>
<fieldName>level</fieldName>
</logLevel>

<!-- MDC 포함 -->
<mdc>
</mdc>

<!-- 타임스탬프 포함 -->
<timestamp>
<pattern>yyyy-MM-dd'T'HH:mm:ss.SSSSSS</pattern>
</timestamp>

<!-- 메시지 포함 -->
<message>
<fieldName>message</fieldName>
</message>

<!-- 예외 정보 포함 -->
<stackTrace>
<fieldName>stacktrace</fieldName>
</stackTrace>
</providers>
</encoder>

<!-- 하루에 한번 압축 후 보관, 최대 30일, 1GB까지 보관 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}.gz</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
</appender>

<!-- 오류 로깅 -->
<appender name="ErrorLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${LOG_PATH}/${ERR_LOG_FILE_NAME}.log</file>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<!-- 로그 레벨 포함 -->
<logLevel>
<fieldName>level</fieldName>
</logLevel>

<!-- MDC 포함 -->
<mdc>
</mdc>

<!-- 타임스탬프 포함 -->
<timestamp>
<pattern>yyyy-MM-dd'T'HH:mm:ss.SSSSSS</pattern>
</timestamp>

<!-- 로거 이름 포함 -->
<loggerName>
<fieldName>logger</fieldName>
</loggerName>

<!-- 메시지 포함 -->
<message>
<fieldName>message</fieldName>
</message>

<!-- 예외 정보 포함 -->
<stackTrace>
<fieldName>stacktrace</fieldName>
</stackTrace>
</providers>
</encoder>

<!-- 하루에 한번 압축 후 보관, 최대 30일, 1GB까지 보관 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${ERR_LOG_FILE_NAME}.%d{yyyy-MM-dd}.gz</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
</appender>

<!-- Logstash 로깅 -->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>logstash:50000</destination>
<encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>

<springProfile name="dev">
<root level="${logging.level.root:-INFO}">
<appender-ref ref="Console" />
</root>
</springProfile>

<springProfile name="prod">
<root level="${logging.level.root:-INFO}">
<appender-ref ref="ApiLogFile" />
<appender-ref ref="ErrorLogFile" />
<appender-ref ref="LOGSTASH" />
</root>
</springProfile>
</configuration>

0 comments on commit e9a75e4

Please sign in to comment.