로그 모니터링 서비스

클라우드 서비스 내장형

문제는 다 느리다는거

  • AWS CloudWatch
  • GCP

서비스형서비스

  • new relic
  • sentry
  • datadog
  • logic monitor
  • dynatrace
  • appotics

오픈소스 설치형 서비스

오픈소스 아니거나 한것들 섞여있을 수 있음
완전체 서비스는 아니고 생태계에 포함된것들 포함

  • prometheus
  • logstash
  • flume
  • kafka
  • fluentd
  • elasticsearch

~

개인적으로 센트리는 써봤는데 다른건 잘 모르겠지만 비슷할 것 같다.
센트리가 레일즈에서는 로그 확인하기 편하고 좋았는데 노드에서 잘 잡아내지 못하는 것 같다. 여기 맞춰서 뭔가 설정을 해 줘야하는듯

마이크로서비스 환경이 되면서 동일한 애플리케이션 서버가 여러개 구동되니까 점점 더 필요해지는 시스템

시간내서 구축해야하는데 그전까지 유료서비스 사용하는것도 괜찮은듯

Spring – Logback 서버별 다른 설정값 사용하기

App 을 만들 때 각 환경별로 다른 설정값이 필요한데 배포할 때 마다 이것을 바꿔주는건 매우 귀찮고 오류 가능성도 크다.

 

이런 부분을 개선하기 위해 나온 것이

Spring의 경우에는 Spring Profile이 있고 이에 맞게 설정을 해 주면 된다.
http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

Spring기반 개발시에 대부분 Spring셋팅으로 해결이 되지만

내가 지금 쓰는 logback은 스프링의 관리하에 실행되는게 아니기 때문에 별도 설정이 필요하다.

기본제공방법은 실행시
-Dlogback.configurationFile={로그파일경로}
형태로 파라미터를 보내서 로그파일을 선택한다.
이 방법은 각 환경별로 필요한 logback 파일의 이름을 알고 이를 별도로 선언해줘야 하는 불편함이 있다.

그래서 이 부분을 조금 보완한게 이것.

기존의 logback을 대체한 후 몇 가지 설정만 해주면 된다

 

* dev서버에서 실행시킬 경우

-Dlogback.configSuffix=dev 또는 -Dspring.profiles.active=dev
의 파라미터를 넣어서 실행시키면

다음의 파일을 순서대로 찾아봐서 제일 먼저 검색되는 녀석을 이용해서 셋팅이 된다.

logback-dev.groovy
logback-dev.xml
logback.groovy
logback.xml

* 파라미터가 없는 경우

logback-test.groovy
logback-test.xml
logback.groovy
logback.xml

끝.

logback.xml 샘플

추가. 201506
GROOVY설정하면 더 간단해짐