Prometheus, Grafana, Node Exporter

TAEWOO HA·2023년 6월 30일
0

프로젝트 #2

목록 보기
7/8

Docker

• Container 라는 형태로 프로그램을 빌드하고 배포, 실행하는 플랫폼
• Light-weigh 한 고립된 환경에서 프로그램과 의존성들을 패키징
• 로컬환경에서 작동하던걸 쉽게 다른곳에 이식가능
• 장점
• 이식성, 상호 운용성, 경량성, 모듈화와 확장성
• 단점
• 보안 - host system , kernel 공유 =>덜 격리 됨. 하나의 컨테이너 문제 => 영향을 끼칠 수 있다
• 데이터 관리 - 컨테이너로 만든 app은 임시적이다. 데이터를 영구적으로 보존 x

Docker-compose

여러개의 docker container 로 구성된 애플리케이션을
정의하고 실행시키는 도구

  • yaml 파일로 설정
    • ex) DB , APP1 , APP2의 관계를 적어놓으면 관리 가능
      • 장점
      • 단순성
      • 개발 효율성
      • 서비스간 종속성 관리
      • 단점
      • 상용 환경에서의 제한
      • 보안 문제

• Distributed system 프로파일링의 어려움
• 배포 및 실행의 방법또한 프로파일링 방법을 배우는 것
• 앞으로 배울 컴포넌트들이 다양하고 나아가 2개의 머신에 deploy
할때 편하게 하기 위해서

Prometheus

• 오픈소스 모니터링 솔루션
• 특징
• 다차원 데이터 모델
• 강력한 쿼리 언어(PromQL)
• 클라이언트 라이브러리 및 다양한 수집 방법
• 고가용성 및 연합기능

Grafana

• 오픈소스 시각화 및 분석 솔루션
• 특징
• 데이터 소스 지원
• 대시보드와 시각화
• 경고와 알림
• 사용자 정의
• 보안

Node exporter

• Prometheus 가 system metric 을 수집하는걸 도와주는 도구
• 대부분의 메트릭을 수집하는게 가능
• 이 정보를 HTTP 기반 endpoint API 로 가져갈수있게 만들어줌
• Textfile collector 를 이용해서 custom 정보 입력 가능

구조

  • 각각 하나의 컴퓨터라고 생각
  • N개의 Node exporter => 프로메테우스에 연결됨 => 이 정보를 릴레잉해서 Grafana로 보여줄 수 있음

실습

• 저번시간에 했던 ELK 스택, apache 제거
• sudo apt-get purge apache2 elasticsearch logstash
kibana
• 오픈소스들별로 사용하는 port 들이 충돌가능
• 네트워크 충돌은 디버깅하기 어려움

  • docker 재설치 (과거 버전 삭제)

  • yml file 수정 후 docker-compose up -d

  • Prometheus Port로 접근하기

  • Grafana Port로 접근하기

  • PromQL test

  • 시스템의 총 메모리 계산 // 총 메모리 대비 사용가능한 메모리
100 * (1 - ((node_memory_MemFree_bytes +
node_memory_Cached_bytes +
node_memory_Buffers_bytes) /
node_memory_MemTotal_bytes))

  • 데이터가 많은 상위 5개의 매트릭 데이터

Grafana Dashboard 만들기

0개의 댓글