모니터링

kangking·2024년 5월 9일
0

기반기술

목록 보기
8/14
post-thumbnail

분산과 모니터링의 필요성

MASTER DB가 다운되면?
서비스가 중단될 수 있음

  • DB가 다운되면 서비스 중단이 발생할 수 있는데, 이때 모니터링과 분산처리를 통해 문제를 파악하고 해결할 수 있다.

  • 자동화할 수 있으며 개념적인 측면으로 살펴보면 VRRP를 활용하여 다운된 서버의 연결을 다른 대기중인 서버로 계승시키는 방법이 있다.

  • 이를 사용하는 대표적인 서비스가 리눅스 환경의 Keepalived이다.

대용량 트래픽 처리?

위와 같이 트래픽이 몰리는 등의 이유로 장애나 성능 저하가 발생했을 때 분산처리를 하고 서비스가 정상적으로 동작할 수 있도록 처리하는 모든 기법들

모니터링 툴들을 이용해 서비스 상태를 모니터링 하고 AB, Jmeter 등과 같이 대규모 트래픽을 임의로 흉내낼 수 있는 툴을 사용하여 연습해볼 수 있음

두가지를 합쳐서 내가 만들었던 서비스에 대한 트래픽 모니터링과 이를 관리할 수 있는 능력을 갖출 것


핫사이트 구성

핫사이트란?

재해에 대비하여 미리 구비해둔 대안 서비스나 데이터 센터를 의미하며, 평소에는 미리 구축만 된 상태로 대기한다. (일종의 백업 개념)

Keepalived

여러대의 서버나, 네트워크 장비가 공유된 가상의 IP를 통해 서비스를 제공하며, 장애를 탐지하여 가상 IP를 통해 자동으로 승계하여 서비스의 연속성을 보장한다.

  • Keepalived는 Active상태인 서비스가 다운되면 설정해둔 Standby 서비스로 게이트웨이를 전환하여 서비스가 이어질 수 있도록 한다.
  • 관리하고자 하는 대상 서버에 Keepalived를 설치하여 연관 설정을 해주면 주기적으로 Active 상태를 확인하여 정상적이지 않다면 설정해둔대로 다른 서버에 vip를 할당하여 연결을 계승하는 방식을 사용한다.

설정 유의사항

  • 대상 서버에 모두 설치해서 설정해야함

주요 설정 항목

  • 글로벌 설정(알림 이메일 관련)

  • vrrp에 사용할 스크립트 선언(체크 주기 등)

  • vrrp 인스턴스 설정

    • state, vid, uni_ip, uni_peer, vip, 사용할 스크립트 등

모니터링

주요 시스템

  • Prometheus
  • Grafana
  • 엘라스틱 서치

    로그 수집

Prometheus

수집 대상 서버에 설치된 Exporter로 부터 로그를 수집하는 프로그램.(모니터링에 사용)

설치 유의 사항

  • yum 저장소엔 주소가 없기 때문에 레포지토리를 추가해서 설치한다.

설치

cat > /etc/yum.repos.d/prometheus.repo << 'EOF'
[prometheus]
name=prometheus
baseurl=https://packagecloud.io/prometheus-rpm/release/el/7/x86_64
repo_gpgcheck=1
enabled=1
gpgkey=https://packagecloud.io/prometheus-rpm/release/gpgkey
https://raw.githubusercontent.com/lest/prometheus-rpm/master/RPM-GPG-KEY-prometheus-rpm
gpgcheck=1
metadata_expire=300
EOF
  • 설정
    모니터링 하고 싶은 로그를 /etc/prometheus/prometheus.yml 파일의 끝단에 원하는 타입의 Exporter 정보의 형태로 추가해준다.
  • 실행 및 확인
    웹 브라우저에서 IP:9090으로 접속

    프로메테우스가 동작하기 위해서는 각 컴퓨터에서 사용중인 프로그램에 맞는 프로메테우스 Exporter를 설치해야 한다.

    exporter archives << exporter 리스트

NODE Exporter

CPU의 데이터를 자동으로 수집

  • Prometheus가 Node Exporter의 로그를 자동으로 수집할 수 있도록 앞서 말한대로 yml파일에 수집관련 설정이 필요하다.

Grafana

다양한 수집 방법으로 모아진 로그를 연결해 시각화할 수 있는 도구

  • Prometheus와 연결을 많이 하며, 엘라스틱 서치와 같은 여러 프로그램들과도 연결한다.

설치

yum install -y grafana

설정

하나하나 추가하긴 번거롭고 많다.

공식 홈페이지에서 대시보드를 받아 사용할 수 있다.

사용할 로그 연동을 참조하여 수집된 데이터 로그와 연결 할 수 있다.


마음에 드는 대시보드 검색 후 ID 복사

Node_Exporter는 CPU, 메모리 등에 대한 로그만 수집하지만 [DB]_exporter는 Select문 등 DB와 관련된 로그를 수집하여 SQL사용에 따른 상태 모니터링도 가능하다.

실행

  • grafana가 실행중인 서버:3000 (도메인 없을 시)
profile
하루하루 의미있게

0개의 댓글