모니터링

codakcodak·2024년 2월 7일
0

dev

목록 보기
3/3
post-thumbnail

메트릭

  • 서버의 상태를 측정한 항목이나 지표
  • CPU 사용량, 메모리 사용량, 디스크 공간, 네트워크 트래픽, 요청 처리량, 응답 시간

구축기

구성

  • 모니터링 서버를 메인 서버에 두면 메인 서버가 터질때 모니터링 서버까지 같이 터지기 때문에 모니터링 서버를 별도로 분리하는 것이 적합
  • 메인서버에는 메트릭정보들을 수집하는 node exporter를 구동하고 모니터링 서버에 prometheus와 grafana를 구동하여 메트릭 정보들을 토대로 시각화

NODE EXPORTER

  • Prometheus Node Exporter는 하드웨어의 상태와 커널 관련 메트릭을 수집하는 메트릭 수집기

  • Node Exporter를 지속적으로 수행하기 위해 메인서버에 systemctl로 백그라운드 실행을 할 필요가 있음

NODE EXPORTER 설치

1.파일 이름 복사

프로메테우스_node_exporter에서

다음과 같은 파일이름중 자신의 운영체제에 맞는 파일에 오른쪽 클릭 후 링크주소복사를 한다.

2.wget을 통한 파일 설치

wget [복사한 링크]

3.압축해제

tar xvfz [압축된 파일명]

3.파일 확인

cd [압축해제된 폴더]
ls

다음과 같은 파일 목록돌이 있으면 된다.

4.systemctl에 서비스 등록

sudo vim /etc/systemd/system/node_exporter.service

아래의 내용으로 수정해준다.

[Unit]
Description=Prometheus Node Exporter
After=network-online.target

[Service]
User=[본인 ubuntu계정이름]
Group=[본인 ubuntu계정이름]
Type=simple
ExecStart=[node_exporter실행파일 경로]

[Install]
WantedBy=multi-user.target

5.systemctl리로드 및 node_export자동실행

sudo systemctl daemon-reload
sudo systemctl --now enable node_exporter

6.node_export 실행상태 확인

sudo systemctl status node_exporter

아래와 같이 초록불이 들어오면 정상실행중이다.

프로메테우스

1.yml설정

global:
  scrape_interval: 10s    # node_exporter에서 가져오는 간격
  evaluation_interval: 10s # 규칙 평가 및 알람 생성을 실행하는 간격

scrape_configs:
  - job_name: 'team7-ec2'
    metrics_path: /metrics
    static_configs:
      - targets: ['domain:port'] # node_exporter가 실행되고 있는 도메인version: '3'

2.docker-compose.yml 설정

version: '3'

services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    volumes:
      - ./prometheus.yml:/prometheus/prometheus.yml:ro
    ports:
      - 19090:9090
    command:
       - --storage.tsdb.retention.time=7d
      - "--web.enable-lifecycle"
    restart: always
    networks:
      - promnet
    user: root

  grafana:
    image: grafana/grafana
    container_name: grafana
    volumes:
      - ./grafana-volume:/var/lib/grafana
    restart: always
    networks:
      - promnet
    ports:
      - 13030:3000
    user: root

networks:
  promnet:
    driver: bridge

3.docker-compose 실행

 sudo docker-compose -f docker-compose.yml up -d

4. domain의 프로메테우스 확인

  • 브라우저에 domain:19090입력후 아래의 화면에서 status>tagets에서 다음과 같이 정상적으로 node_exporter에서 메트릭을 수집하고 있는지 확인한다.

grafana

  • 브라우저에 domain:13030 입력 창 확인

1.datasource 생성

  • Home>Connections>Data sources 에서 new 클릭 후 prometheus 주소를 기입 하고 save&test 후 정상적으로 연결 및 저장 확인

2.dashboard 생성

  • Home>Dashboards에서 new 클릭 후 import 선택

  • 위와 같이 미리 정의 된 json형식을 기입할 수 있고 또는 미리 제공하는 템플렛이 있어 필자는 1860을 입력하여 가져오겠다.

결과

profile
숲을 보는 코더

0개의 댓글