프로메테우스 인프라스트럭처 모니터링 [가상머신, 컨테이너 환경의 프로메테우스 모니터링 실습과 활용]
- 원서명Hands-On Infrastructure Monitoring with Prometheus: Implement and scale queries, dashboards, and alerting across machines and containers (ISBN 9781789612349)
- 지은이조엘 바스토스(Joel Bastos), 페드로 아라우호(Pedro Araujo)
- 옮긴이김진웅, 문진수
- ISBN : 9791161753850
- 35,000원
- 2019년 12월 31일 펴냄
- 페이퍼백 | 536쪽 | 188*235mm
- 시리즈 : 클라우드 컴퓨팅
책 소개
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
가상머신, 컨테이너 환경에서 실습 중심으로 프로메테우스 기반의 모니터링 스택의 구성 요소와 특징을 설명한다. 또한 쿠버네티스 환경에서 오퍼레이터를 활용한 모니터링 파이프라인 구축과 구성 요소를 살펴 보고, 프로메테우스 페더레이션에서 CNCF 모니터링 샌드박스 타노스 프로젝트까지 다양한 생태계 기술과 활용법을 소개한다.
이 책에서 다루는 내용
■ 모니터링 기본 개념과 프로메테우스 구현
■ 공통 인프라스트럭처 서비스에서 메트릭을 추출하는 방법
■ PromQL의 장점과 활용 방법
■ 고가용성, 내구성, 확장성이 있는 프로메테우스 스택을 디자인하는 방법
■ 쿠버네티스 프로메테우스 오퍼레이터의 강점
■ 페더레이션, 수직 샤딩 집계와 같은 개념
■ 타노스를 사용해 클라우드 네이티브 앱에서 완벽한 글로벌 뷰를 구현하고 장기 보존을 확보하는 방법
이 책의 대상 독자
소프트웨어 개발자, 클라우드 전문가, 사이트 신뢰성 엔지니어, 데브옵스 엔지니어, 인프라 보안과 성능을 유지하기 위해 신뢰할 수 있는 모니터링과 알림 시스템을 설정하려는 시스템 관리자를 대상으로 한다. 네트워킹과 인프라 모니터링에 관한 기본 지식은 이 책에서 다루는 개념을 이해하는 데 도움이 될 것이다.
이 책의 구성
1장, ‘모니터링 기초’에서는 책 전반에 걸쳐 사용되는 몇 가지 주요 개념의 토대를 정립한다. 또한 프로메테우스가 메트릭을 수집하는 접근 방법과 논란의 여지가 있는 몇 가지 사항이 스택의 설계와 아키텍처에 필수적인 이유도 살펴본다.
2장, ‘프로메테우스 생태계 개요’에서는 프로메테우스 생태계 전반에 걸쳐 고급 개요를 소개한다. 구성 요소마다 어떤 작업을 수행하는지와 모든 것이 논리적으로 상호 운용되는 방법을 설명한다.
3장, ‘테스트 환경 구축’에서는 책에서 제공되는 테스트 환경을 사용하는 기본 방법과 다양한 구성의 유효성을 검사하고자 테스트 환경을 점검하는 방법을 설명한다.
4장, ‘프로메테우스 메트릭 개념’에서는 프로메테우스의 핵심 리소스인 메트릭(Metric)을 살펴본다. 프로메테우스 스택을 완전히 활용, 관리, 확장하려면 올바른 이해가 필요하다.
5장, ‘프로메테우스 서버 실행’에서는 프로메테우스 서버를 중점적으로 다루며, 가상 시스템과 컨테이너의 일반 사용 패턴과 전체 환경설정 프로세스의 시나리오를 제공한다.
6장, ‘익스포터와 통합’에서는 가장 유용한 익스포터(Exporter)를 소개하고 사용 방법과 관련 예제를 제공한다.
7장, ‘프로메테우스 쿼리: PromQL’에서는 애드혹 집계(adhoc aggregation)와 시계열의 조합을 수용할 수 있고 다차원 데이터 모델을 활용할 수 있는 강력하고 유연한 프로메테우스 쿼리 언어인 PromQL을 상세히 살펴본다.
8장, ‘트러블슈팅과 검증’에서는 문제를 빠르게 감지하고 해결할 수 있는 유용한 지침을 제공한다. 또한 중요한 정보를 확인할 수 있도록 제공되는 엔드포인트 활용법과 중요한 정보를 제공하는 프로메테우스 커맨드라인 인터페이스이자 검증 도구인 promtool을 살펴본다.
9장, ‘알림과 레코딩 규칙 정의’에서는 알림 규칙과 레코딩 규칙의 사용법과 테스트 진행 과정을 다루고 관련 예제를 제공한다.
10장, ‘그라파나 대시보드 검색과 생성’에서는 기본 제공되는 콘솔 기능뿐만 아니라 그라파나(Grafana)와 대시보드의 구성, 공유, 재사용 방법을 다루며, 프로메테우스 스택의 시각화 구성 요소를 살펴본다.
11장, ‘알림 매니저’에서는 프로메테우스 스택의 알림 구성 요소를 소개한다. 여러 가지 알림 도구와 통합하는 방법과 중복 제거를 통해 고가용성을 실현하도록 클러스터링을 올바르게 설정하는 방법을 살펴본다.
12장, ‘올바른 서비스 디스커버리 선택’에서는 다양한 서비스 디스커버리(Service Discovery)의 통합 방법을 살펴보고, 자체 통합을 구축하는 데 필요한 요구 사항과 지식을 제공한다.
13장, ‘프로메테우스 확장과 페더레이션’에서는 프로메테우스 스택의 확장 방법을 다루고, 샤딩(sharding)과 글로벌 뷰(global view)의 개념을 설명한다.
14장, ‘롱텀 스토리지와 통합’에서는 프로메테우스 읽기/쓰기 엔드포인트의 개념을 다룬다. 그런 다음 외부 스토리지와 롱텀(Long-Term) 메트릭 스토리지 통합에 따른 고려 사항을 심층적으로 살펴본다. 마지막으로 타노스(Thanos)를 사용하는 엔드투엔드 예제를 소개한다.
목차
목차
- 1부. 서론
- 1장. 모니터링 기초
- 모니터링 정의
- 모니터링의 가치
- 조직 컨텍스트
- 모니터링 구성 요소
- 화이트박스와 블랙박스 모니터링
- 메트릭 수집의 이해
- 수집 방식의 개요
- 푸시와 풀
- 무엇을 측정할 것인가?
- 요약
- 질문
- 더 읽을거리
- 모니터링 정의
- 2장. 프로메테우스 생태계 개요
- 프로메테우스를 사용한 메트릭 수집
- 프로메테우스 아키텍처 개요
- 익스포터를 사용한 내부 상태 노출
- 익스포터 기본
- 알림 매니저를 사용한 알림 라우팅 및 관리
- 알림 라우트
- 데이터 시각화
- 요약
- 질문
- 더 읽을거리
- 프로메테우스를 사용한 메트릭 수집
- 3장. 테스트 환경 구축
- 코드 구조
- 시스템 요구 사항
- 하드웨어 요구 사항
- 권장 소프트웨어
- 신규 환경설정
- 베이그런트로 자동 배포 환경설정 연습
- 고급 배포 실습
- 요약
- 질문
- 더 읽을거리
- 2부. 프로메테우스 시작
- 4장. 프로메테우스 메트릭 개념
- 프로메테우스 데이터 모델 이해
- 시계열 데이터
- 시계열 데이터베이스
- 프로메테우스 로컬 스토리지
- 프로메테우스 데이터 모델
- 네 가지 핵심 메트릭 타입 소개
- 카운터
- 게이지
- 히스토그램
- 서머리
- 종단면과 횡단면 데이터 집계
- 횡단면 집계
- 종단면 집계
- 요약
- 질문
- 더 읽을거리
- 프로메테우스 데이터 모델 이해
- 5장. 프로메테우스 서버 실행
- 프로메테우스 환경설정의 집중 분석
- 프로메테우스 초기 환경설정
- 프로메테우스 환경설정 파일 실습
- 독립 실행형 서버에서 프로메테우스 관리
- 서버 배포
- 환경설정 확인
- 정리
- 쿠버네티스 환경에서 프로메테우스 관리
- 정적 환경설정
- 동적 환경설정: 프로메테우스 오퍼레이터
- 요약
- 질문
- 더 읽을거리
- 프로메테우스 환경설정의 집중 분석
- 6장. 익스포터와 통합
- 테스트 환경
- 정적 인프라 테스트 환경
- 쿠버네티스 테스트 환경
- 운영체제 익스포터
- 노드 익스포터
- 컨테이너 익스포터
- cAdvisor
- kube-state-metrics
- 로그에서 메트릭까지
- mtail
- Grok 익스포터
- 블랙박스 모니터링
- 블랙박스 익스포터
- 푸시 메트릭
- 푸시 게이트웨이
- 추가 익스포터
- JMX 익스포터
- HAProxy 익스포터
- 요약
- 질문
- 더 읽을거리
- 테스트 환경
- 7장. 프로메테우스 쿼리: PromQL
- 테스트 환경
- PromQL 기초
- 셀렉터
- 연산자
- 함수
- 일반적인 패턴과 함정
- 패턴
- 함정
- 다중 쿼리(복잡한 쿼리)
- 어떤 노드에서 노드 익스포터가 실행되고 있는가?
- 다른 버전의 CPU 사용량 비교
- 요약
- 질문
- 더 읽을거리
- 8장. 트러블슈팅과 검증
- 테스트 환경
- 배포
- 정리
- promtool 탐색
- 체크
- 쿼리
- 디버그
- 테스트
- 로그와 엔드포인트 검증
- 엔드포인트
- 로그
- 시계열 데이터베이스 분석
- tsdb 도구 사용
- 요약
- 질문
- 더 읽을거리
- 테스트 환경
- 3부. 대시보드와 알림
- 9장. 알림과 레코딩 규칙 정의
- 테스트 환경
- 배포
- 정리
- 규칙 평가의 작동 방식 이해
- 레코딩 규칙 사용
- 레코딩 규칙의 명명 규칙
- 프로메테우스 알림 설정
- 알림 규칙이란?
- 알림 규칙 환경설정
- 레이블과 주석
- 알림 지연
- 규칙 테스트
- 레코딩 규칙 테스트
- 알림 규칙 테스트
- 요약
- 질문
- 더 읽을거리
- 테스트 환경
- 10장. 그라파나 대시보드 검색과 생성
- 테스트 환경
- 배포
- 정리
- 프로메테우스 기반 그라파나 사용법
- 로그인 화면
- 데이터 소스
- 탐색
- 대시보드
- 쿠버네티스 환경 그라파나 기동
- 자체 대시보드 개발
- 대시보드 기초
- 대시보드 기본 생성
- 대시보드 내보내기
- 커뮤니티 대시보드 탐색
- 그라파나 대시보드 갤러리
- 대시보드 게시
- 프로메테우스 기본 시각화
- 콘솔 템플릿 사용
- 콘솔 템플릿 기본
- 요약
- 질문
- 더 읽을거리
- 테스트 환경
- 11장. 알림 매니저
- 테스트 환경
- 배포
- 정리
- 알림 매니저 기초
- 통지 파이프라인
- 알림 매니저 클러스터링
- 알림 매니저 설정
- 프로메테우스 환경설정
- 환경설정 파일 옵션
- amtool 커맨드라인 도구
- 쿠버네티스 환경 프로메테우스 오퍼레이터와 알림 매니저
- 알림 매니저 통지 연계
- 이메일
- 채팅
- 페이저
- 웹훅
- null
- 통지 사용자 정의
- 기본 메시지 포맷
- 신규 템플릿 생성
- 모니터링 시스템은 누가 모니터링하는가?
- 메타모니터링과 교차 모니터링
- 데드맨 스위치 알림
- 요약
- 질문
- 더 읽을거리
- 테스트 환경
- 4부. 확장성, 복원성, 유지 보수성
- 12장. 올바른 서비스 디스커버리 선택
- 테스트 환경
- 배포
- 정리
- 서비스 디스커버리 옵션을 통한 실행
- 클라우드 프로바이더
- 컨테이너 오케스트레이터
- 서비스 디스커버리 시스템
- DNS 기반 서비스 디스커버리
- 파일 기반 서비스 디스커버리
- 빌트인 서비스 디스커버리 사용
- 칸설 서비스 디스커버리 사용
- 쿠버네티스 서비스 디스커버리 사용
- 사용자 정의 디스커버리 설정
- 사용자 정의 서비스 디스커버리 개념
- 권장 접근 방식
- 사용자 정의 서비스 디스커버리 사용
- 요약
- 질문
- 더 읽을거리
- 테스트 환경
- 13장. 프로메테우스 확장과 페더레이션
- 테스트 환경
- 배포
- 정리
- 샤딩 형태의 확장
- 작업의 논리적 그룹
- 단일 작업 스케일링 문제
- 샤딩 시 고려해야 할 사항
- 샤딩 대안
- 페더레이션을 사용해 글로벌 뷰 설정
- 페더레이션 설정
- 페더레이션 패턴
- 타노스를 사용해 규모로서의 프로메테우스 단점 보완
- 타노스의 글로벌 뷰 구성 요소
- 요약
- 질문
- 더 읽을거리
- 테스트 환경
- 14장. 롱텀 스토리지와 통합
- 테스트 환경
- 배포
- 정리
- 원격 쓰기와 원격 읽기
- 원격 쓰기
- 원격 읽기
- 메트릭 스토리지 옵션
- 로컬 스토리지
- 원격 스토리지 통합
- 타노스 원격 스토리지와 생태계
- 타노스 생태계
- 타노스 구성 요소
- 요약
- 질문
- 더 읽을거리
- 테스트 환경
- 부록. 평가