docker logs --tail 500 brake-app
.
.
.
현재 메트릭 시각화를 Grafana로 하고 있기에, 로그 시각화도 Grafana를 사용할 것이다. Grafana를 사용하는 유명한 스택은 PLG(Promtail, Loki, Grafana)가 있다.
PLG와 ELK를 잘 비교한 글이 있으니 추가적인 설명은 따로 하지 않겠다
그런데 Promtail이 곧 지원 종료된다는 소식에 Alloy를 대신 사용했다
로그 수집 과정은 아래와 같이 구성했다
로그 데이터를 loki에 한 번 더 저장하게 되면서, logback의 보관기간이 길어야 할 필요가 있을까? 생각이 들었다.
그래서 logback은 30일, loki는 90일로 설정했다
명확한 기준이 있는 것은 아니고, 중복 데이터를 90일 동안 저장할 필요는 없다고 느껴 loki 보관기간을 더 길게 설정했을 뿐이다. 추후 운영을 하면서 기간도 조정할 계획이다
드디어 로그를 grafana에서 볼 수 있게 되었다
그런데.. 하나의 로그지만 여러 줄에 걸쳐있는 로그가 따로따로 보여진다
이래선. . . 다를 게 없잖아
Grafana에 이를 해결하는 multiline 설정이 있다
우리 팀도 예시처럼 타임스탬프를 기준으로 로그를 구분했다
stage.multiline {
firstline = "^\\[\\d{4}-\\d{2}-\\d{2} \\d{1,2}:\\d{2}:\\d{2}\\]"
max_wait_time = "10s"
}
음 쾌적해
운영 환경에서는 빠른 장애 대응이 중요한데, 개발 단계에서도 협업을 위해 빠른 대응이 필요하다.
이번 태스크로 두 가지 목표를 달성했다
아직까지는 로그가 많이 찍히지 않아서 괜찮아 보이지만, 로그가 초당 NN 개씩 쌓이면 어떻게 파악할 수 있을까에 대한 고민이 있다 🤔