Skip to content
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

[BE] logback에 남기는 로그 구분을 하나로 통합한다. #888

Open
seokjin8678 opened this issue Apr 20, 2024 · 0 comments · May be fixed by #889
Open

[BE] logback에 남기는 로그 구분을 하나로 통합한다. #888

seokjin8678 opened this issue Apr 20, 2024 · 0 comments · May be fixed by #889
Assignees
Labels
BE 백엔드에 관련된 작업 🏢 인프라 인프라에 관련된 작업 🛠 수정 수정에 관련된 작업

Comments

@seokjin8678
Copy link
Collaborator

✨ 세부 내용

현재 logback으로 다음과 같이 ErrorLogger 이름을 기준으로 두 개의 폴더로 로그를 남기고 있습니다.

<logger additivity="false" level="INFO" name="ErrorLogger">
  <appender-ref ref="ERROR_ERROR"/>
  <appender-ref ref="ERROR_WARN"/>
  <appender-ref ref="ERROR_INFO"/>
</logger>

<root level="INFO">
  <appender-ref ref="FILE-INFO"/>
  <appender-ref ref="FILE-WARN"/>
  <appender-ref ref="FILE-ERROR"/>
</root>

로그를 모니터링 하지 않을 때 기준으로, 해당 로그 파일을 분리하면 에러로 발생한 로그인지, 일반적으로 발생한 로그인지 쉽게 볼 수 있다는 장점이 있지만, 로그 모니터링 툴을 사용하면 해당 장점이 오히려 단점이 됩니다.

이유는 지금 사용하는 Grafana 기준으로, 검색이 가능합니다.

이 기능이 있기 때문에 굳이 로그를 나눠서 볼 필요가 없습니다.

image

또한 특정 시간에 로그가 몇 건 발생했냐에 따라 알람을 보내는 기능을 구현할 때, 각 로그 별로 중복된 규칙을 정의 해야하는 문제가 발생합니다.

이유는, Grafana에서 로그 개수를 집계할 때, 발생하지 않은 로그는 0개가 아닌 No Data가 되기 때문에 null 취급이 됩니다.

image

common, error 둘 중 하나라도 No Data이면 다른 하나에서 아무리 많은 로그가 발생해도 알람이 갈 수 없는 문제가 생깁니다.

이를 해결하려면, 별도의 Alert rule을 설정해야 하는데.. 이럴거면 차라리 하나로 통합하는게 낫지 않을까 싶네요. 😂

Promtail 설정에도 중복된 설정을 적용해야 하는 것 또한 문제입니다. 😂

scrape_configs:
  - job_name: error-info
    static_configs:
      - targets:
          - localhost
        labels:
          job: error-info
          __path__: /var/log/festago/error/info/*.log
    pipeline_stages:
      - multiline:
          firstline: '^\[\d{4}-\d{2}-\d{2} \d{1,2}:\d{2}:\d{2}:.*\]'
          max_wait_time: 1s
  - job_name: common-info
    static_configs:
      - targets:
          - localhost
        labels:
          job: common-info
          __path__: /var/log/festago/common/info/*.log
    pipeline_stages:
      - multiline:
          firstline: '^\[\d{4}-\d{2}-\d{2} \d{1,2}:\d{2}:\d{2}:.*\]'
          max_wait_time: 1s

# error, warn 반복

⏰ 예상 소요 시간

30분

@seokjin8678 seokjin8678 added BE 백엔드에 관련된 작업 🏢 인프라 인프라에 관련된 작업 ⚙️ 리팩터링 리팩터링에 관련된 작업 labels Apr 20, 2024
@seokjin8678 seokjin8678 self-assigned this Apr 20, 2024
@seokjin8678 seokjin8678 linked a pull request Apr 20, 2024 that will close this issue
@seokjin8678 seokjin8678 added 🛠 수정 수정에 관련된 작업 and removed ⚙️ 리팩터링 리팩터링에 관련된 작업 labels Apr 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드에 관련된 작업 🏢 인프라 인프라에 관련된 작업 🛠 수정 수정에 관련된 작업
Projects
Status: Todo
Development

Successfully merging a pull request may close this issue.

1 participant