본문 바로가기

book

모니터링의 새로운 미래 관측 가능성

이 책을 처음 보고, 처음 궁금했던 하거나 들었던 생각을 정리해보면 아래와 같습니다.

1. 번역서가 아니다. 왠지 번역서인것 같은데 국내 저자분의 책이라서 조금 더 흥미가 생겼습니다.
2. 표지가 정말 멋지다. (아래 숨어있는 위험요소를 잘 표현한것 같다)
3. 단순히 모니터링에 대해서 관심만 있는데, 이책은 도움이 될것인가?
4. 프로메테우스, 그라파나, 오픈텔레메트리에 대해서 자세히 설명되어져 있는가?
5. 마이크로서비스, 인공지능까지 너무 넒은 범위까지 다루는것은 아닌가?
6. 이 책을 읽으면, 작은 부분이라도 우리가 하는 서비스 모니터링에 바로 도움이 되는 부분이 있을까?

 

 

이 책을 읽어보면서 해당 궁금증을 하나하나 살펴보려고 합니다.

 

 

 

■ 목차 살펴보기 (본문 보기 전)

· 목차를 구분지어서 생각해보면, 아래와 같이 크게 3단계 구성으로 설명되어집니다.

  모든 분들이 필요하거나, 궁금해 하시는 부분이 다르기 때문에 필요한 부분을 살펴보면 도움이 될것 같습니다.

· 예를들어 오픈소스 모니터링 tool이 소개되는데, 해당 내용은 별도의 단행본으로 출간된 책은 거의 없습니다.

  이러한 부분에 대해서 설치과정부터 주요지표부분은 충분히 많은 가치를 가지는것 같습니다.

· 인공지능 모니터링 부분은 저자분중이 ML쪽 엔지니어의 경험이 있으셔서 현실적인 조언이.

· 1장,2장 부분에서 우리는 서비스가 확장되고, 사용량이 늘었을때 과연 어느지표를 가지고 해당 서버 Spec으로 최대한 튜닝을 해서 사용을 하고 있다고 판단하고, 서버를 scale out하던지, scale up 하는 결정 근거를 세울수 있는 내용으로 구성되어 있고, 오류 및 모니터링에 대한 큰 기준을 가지게 되는 이론적인 내용으로 구성되어 있을것 같습니다.

제가 예상한 구성 및 내용이 맞는지 살펴보고, 처음느낌 그대로 인지 체크해보겠습니다.

 

 

책을 읽어보면서, 위에 가정했던 부분에 대한 고찰

▶ 체크1 : chapter1, chapter2 부분의 내용도 일반적인 내용의 모니터링에 대한 내용이 아닙니다. ^^ chaper1부터 PromQL 에 대한 설명등 등 큰 개념의 "관측가능성 입장의 모니터링", "큰 규모의 서버들"을 고려한 관점으로 설명되어 집니다. 

 

▶ 이책의 레벨은 입문/초급자 수준은 아닙니다. 책의 뒷편에서도 중급자로 표기되어 있습니다. 평소에 책에서 소개되는 기술들에 관심이 있다면 이런 모니터링 책이 나오기 힘든데, 국내 저자분의 다양한 예시 및 설명은 많은 도움이 됩니다. 헙업에서 관련된 부분의 업무에 겹치는 부분이 있으시면, 많은 가이드를 통해서 바로 적용할수 있을것으로 생각됩니다.

 

 

 

관측 가능성

· "관측 가능성" : 책의 제목은 왜 모니터링에 "관측 가능성" 이라는 단어를 넣었고, 명명하였을까? 이 개념을 알아야 이 책에서 설명하려고 하는 가장 중요한 방향성을 이해 할수 있습니다. 해당 개념이 아직은 생소한 개념이기 때문입니다.

· 책에서 정의는 아래와 같이 합니다. -> 시스템에서 외부로 출력되는 값만을 사용해서, 시스템의 내부 상태를 이해하고, 예측하는것

보통 테스트 케이스를 구성할때, 블랙박스 테스트 / 화이트박스 테스트를 진행하는데, 그것과 다른 미리 예측하는 관점의 개념을

관측가능성의 영역이라고 생각하고 개념을 잡으면 됩니다.

 

 

 

■ 언급되는 오픈소스들

· 관측가능성 오픈소스에 대한 책에서 사용한 오픈소스는 아래와 같다.

· 오픈텔레메트리 : 계측을 위한 표존화된 도구, API, SDK 모음

· 로키 : 그라파나의 로그 관리 시스템

· 그라파나 미미르 : 프로메테우스용 오픈소스

· 타노스 : 다수의 프로메테우스를 통합할수 있는 글로벌 뷰 제공

· 예거 : 마이크로서비스 기반 분산 시스템 모니터링과 추적, 프로파일 연계

· 그라파나 템포 : 그라파나의 오픈소스 추적 솔루션

· 엘라스틱 서치 : 로그 관리

· dynatrace APM : 클라우드 네이티브 및 엔터프라이즈 스택을 위한 APM, 처리량, 지연시간을 모니터링

· influxDB / Telegraf / splunk /  new relic / Prometheus /  grafana / 오프서치

 

· 참고 : https://blog.samstdio.com/system-monitoring-tick-stack-1/

 

 

■ 내용 소개

· 프로메테우스의 다양한 사용법이 처음부터 설명되어 집니다.

· 쿠버네티스의 환경이 있다면, ks8까지 테스테 구성을 해보면 좋겠지만, 각자 테스트를 할수 있는 범주안에서 직접 실습을 해볼수 있으면 좋을것 같습니다. 내용이 너무 좋은데, Application을 개발하는 부분이 아니다 보니, 직접 경험해서 확인하는 것과는 많은 경험차이 및 이해하는 부분에 차이가 있을수 있습니다.

 

프로메테우스는 ks8에서 기본으로 사용을 하지만, 별도로 WAS, Spring만 사용하는 일반적인 다른 모니터링에서도 다양하게 사용이 가능합니다. 책은 프로메테우스에 익숙해지고, 제공하는 다양한 기능들을 설명합니다.

로그에서는 오픈텔레메트리를 사용해서 구조회된 로그를 생성하는 방법을 이용합니다.

오픈텔레메트리에 대해서는 https://jennifersoft.com/ko/blog/tech/opentelemetry/ 글을 참고하시면 좋을것 같습니다.

 

실제 사용하지 않은 오픈소스는 어색합니다. 명칭부터 어색하고, 실제 어떠한 목적/기능이 있는지 선뜻 다가오지 가 았습니다.

처음에 주요 기능으로 사용되는 개념을 잡아놓고 책을 보신다면 지면에 나와있는 다양한 정보가 의미있게 다가올것 같습니다.

 

관측 가능성의 구성요소를 3가지로 정의하고 있습니다.

메트릭, 로그, 추적의 요소로 정의하고 있습니다.

  • 메트릭과 로그는 익숙하실수 잇는데, 구성요소 중에 추적이라는 개념은 조금 생소 하실수 있습니다.
  • 로그에 노출된 에러 사항만을 보고 추적하는 방향에서 조금더 예측 가능한 구성으로 구분지어 연관성을 파악합니다.

 

SLI, SLO, SLA등의 서비스 지표에 대한 용어도 언급되어지며,

1장부터 바로 PromQL을 이용해서 필요한 지표를 어떻게 구성할지, 예시가 제공됩니다.

→ 이 부분이 의미하는것은 Prometheus를 책에서 기본으로 사용적으로 설명되어 진다는 의미입니다.

 

모니터링과 관련된 시스템이 구성되어 있다면, 실제 얼마나 잘 사용하고 있는지 돌아보게 되었습니다.

일반적으로 서비스의 오류사항을 확인하는 것을 넘어서, 정보는 많은데 실제 효율적으로 기준을 세우고 활용하고 있는지는 되돌아볼 문제입니다.

 

이 책은 그러한 기준을 넓혀주는데 많은 도움이 됩니다.

에러라고 생각되어지는 부분에 대해서 500, 400 http status말고 어떠한 측면을 어떻게 모니터링하는게 좋을지 제시합니다.

 

아래와 같은 형태로, 사용할수 있는 PromQL을 확인할수 있습니다.

 

 

 

■ 테스트 환경에 진심이 책

· 이책의 장점은 아래그림처럼 다양한 데모 환경을 구성하는 부분입니다.

모니터링을 하기 위해서는 운영환경처럼 동일하지는 않지만, 비슷환 환경의 구성이 필수인데 이점은 정말 좋은 구성입니다.

아래 항목중에 평고 고민되었거나, 체크해보고 싶은 모니터링 항목이 있다면 업무에서도 쉽게 적용이 가능할 것으로 보입니다.

 

상세한 소스 설명이나, 추가적인 데모, SW버전업에 대해서는 https://yohaim.medium.com/을 통해서 업데이트 되니 실습시의 오류도 최소하 할수 있을 것 같습니다.

 

 

 

 

· 후속작이 기대됩니다.^^

 

SRE역활을 하거나, 실제 모니터링에 업무를 진행하시는 분들은 이책이 쉬울수 있지만, 처음 책을 보시는 분들은

여기서 나오는 다양한 오픈소스의 역활 및 사용처, 동작방식을 통해서 실제 어떻게 활용을 할지 명확하게 이해하는 것만으로

많은 것을 얻어가는 부분이라고 생각됩니다.

 

실제 업무적으로 바로 사용할수 있는 예시로 구성되어 있어서, 이러한 고민을 하셨던 분은 정말 많은 현실적인 도움을 받을수 있는 내용으로 구성되어 있습니다.

 

'book' 카테고리의 다른 글

You Don’t Know JS Yet  (0) 2024.02.18
Release의 모든 것  (0) 2023.12.22
스트리트 코더(Street Coder)  (0) 2023.11.16
우아한 타입스크립트 with 리액트  (0) 2023.11.13
핸즈온 머신러닝  (0) 2023.10.22