-
Notifications
You must be signed in to change notification settings - Fork 1
[Feat] Promtail, Loki 설정 #203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Changes from all commits
ebae4e4
4c87c94
036a407
7ee710b
0236973
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| version: "3.8" | ||
| version: '3.8' | ||
|
|
||
| networks: | ||
| monitoring: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| version: '3.8' | ||
|
|
||
| services: | ||
| promtail: | ||
| image: grafana/promtail:3.6.0 | ||
| container_name: promtail | ||
| restart: unless-stopped | ||
| env_file: | ||
| - .env | ||
| environment: | ||
| MONITORING_HOST: ${MONITORING_HOST} | ||
| volumes: | ||
| # 메인(애플리케이션) 서버 로그 폴더를 컨테이너 경로로 마운트 | ||
| - ./logs/blue/info:/app/logs/blue/info | ||
| - ./logs/blue/warn:/app/logs/blue/warn | ||
| - ./logs/blue/error:/app/logs/blue/error | ||
|
|
||
| - ./logs/green/info:/app/logs/green/info | ||
| - ./logs/green/warn:/app/logs/green/warn | ||
| - ./logs/green/error:/app/logs/green/error | ||
|
|
||
| # Promtail 설정 파일 | ||
| - ./promtail/promtail-config.yml:/etc/promtail/config.yml | ||
| command: -config.file=/etc/promtail/config.yml | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 저희가 현재 Blue, Green 컨테이너로 나눠놓은 것은 버전 관리가 아니고 무중단 배포를 하기 위함인데 로그를 분리해서 저장하는 이유가 있나요?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 장애 영향 범위를 최소화 하여 원인이 발생한 컨테이너에 대해서만 로그를 확인할 수 있어 더 유용하고, 롤백을 하게 될 경우에도 어떤 환경의 문제/로그인지 빠르고 정확하게 확인할 수 있다는 점에서 분리했습니당. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| # Promtail이 로그를 어디까지 읽었는지 기록 | ||
| positions: | ||
| filename: /tmp/positions.yaml | ||
|
|
||
| clients: | ||
| - url: http://${MONITORING_HOST}:3100/loki/api/v1/push # 모니터링 서버의 Loki 주소 | ||
| scrape_configs: | ||
| - job_name: info_blue | ||
| static_configs: | ||
| - targets: | ||
| - localhost | ||
| labels: | ||
| job: info_logs | ||
| deployment: blue | ||
| __path__: /app/logs/blue/info/*.log | ||
|
|
||
| - job_name: info_green | ||
| static_configs: | ||
| - targets: | ||
| - localhost | ||
| labels: | ||
| job: info_logs | ||
| deployment: green | ||
| __path__: /app/logs/green/info/*.log | ||
|
|
||
| - job_name: warn_blue | ||
| static_configs: | ||
| - targets: | ||
| - localhost | ||
| labels: | ||
| job: warn_logs | ||
| deployment: blue | ||
| __path__: /app/logs/blue/warn/*.log | ||
|
|
||
| - job_name: warn_green | ||
| static_configs: | ||
| - targets: | ||
| - localhost | ||
| labels: | ||
| job: warn_logs | ||
| deployment: green | ||
| __path__: /app/logs/green/warn/*.log | ||
|
|
||
| - job_name: error_blue | ||
| static_configs: | ||
| - targets: | ||
| - localhost | ||
| labels: | ||
| job: error_logs | ||
| deployment: blue | ||
| __path__: /app/logs/blue/error/*.log | ||
|
|
||
| - job_name: error_green | ||
| static_configs: | ||
| - targets: | ||
| - localhost | ||
| labels: | ||
| job: error_logs | ||
| deployment: green | ||
| __path__: /app/logs/green/error/*.log |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,72 @@ | ||
| <configuration> | ||
|
|
||
| <property name="LOG_BASE" value="${LOG_BASE}"/> | ||
| <property name="APP_NAME" value="kareer-server"/> | ||
|
|
||
| <!-- 콘솔 로그 --> | ||
| <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> | ||
| <encoder> | ||
| <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] [%thread] %logger{36} - %msg%n</pattern> | ||
| </encoder> | ||
| </appender> | ||
|
|
||
| <!-- INFO 로그 --> | ||
| <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
| <file>${LOG_BASE}/info/${APP_NAME}.info.log</file> | ||
| <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
| <fileNamePattern>${LOG_BASE}/info/${APP_NAME}.info.%d{yyyy-MM-dd}.log</fileNamePattern> | ||
| <maxHistory>7</maxHistory> | ||
| </rollingPolicy> | ||
| <filter class="ch.qos.logback.classic.filter.LevelFilter"> | ||
| <level>INFO</level> | ||
| <onMatch>ACCEPT</onMatch> | ||
| <onMismatch>DENY</onMismatch> | ||
| </filter> | ||
| <encoder> | ||
| <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] [%thread] %logger{36} - %msg%n</pattern> | ||
| </encoder> | ||
| </appender> | ||
|
|
||
| <!-- WARN 로그 --> | ||
| <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
| <file>${LOG_BASE}/warn/${APP_NAME}.warn.log</file> | ||
| <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
| <fileNamePattern>${LOG_BASE}/warn/${APP_NAME}.warn.%d{yyyy-MM-dd}.log</fileNamePattern> | ||
| <maxHistory>7</maxHistory> | ||
| </rollingPolicy> | ||
| <filter class="ch.qos.logback.classic.filter.LevelFilter"> | ||
| <level>WARN</level> | ||
| <onMatch>ACCEPT</onMatch> | ||
| <onMismatch>DENY</onMismatch> | ||
| </filter> | ||
| <encoder> | ||
| <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] [%thread] %logger{36} - %msg%n</pattern> | ||
| </encoder> | ||
| </appender> | ||
|
|
||
| <!-- ERROR 로그 --> | ||
| <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
| <file>${LOG_BASE}/error/${APP_NAME}.error.log</file> | ||
| <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
| <fileNamePattern>${LOG_BASE}/error/${APP_NAME}.error.%d{yyyy-MM-dd}.log</fileNamePattern> | ||
| <maxHistory>7</maxHistory> | ||
| </rollingPolicy> | ||
| <filter class="ch.qos.logback.classic.filter.LevelFilter"> | ||
| <level>ERROR</level> | ||
| <onMatch>ACCEPT</onMatch> | ||
| <onMismatch>DENY</onMismatch> | ||
| </filter> | ||
| <encoder> | ||
| <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] [%thread] %logger{36} - %msg%n</pattern> | ||
| </encoder> | ||
| </appender> | ||
|
|
||
| <!-- Root 로그 --> | ||
| <root level="INFO"> | ||
| <appender-ref ref="CONSOLE"/> | ||
| <appender-ref ref="INFO_FILE"/> | ||
| <appender-ref ref="WARN_FILE"/> | ||
| <appender-ref ref="ERROR_FILE"/> | ||
| </root> | ||
|
|
||
| </configuration> |
Uh oh!
There was an error while loading. Please reload this page.