Docker DAY4

vinnnda·2024년 1월 6일
0
post-thumbnail

도커 컴포즈로 프로메테우스 그라파나 연동시키기

(사용 운영체제 우분투)

도커 컴포즈

  • 여러 개의 도커 컨테이너를 정의하고 실행하기 위한 도구
  • 여러 컨테이너 간의 서비스 및 의존성을 쉽게 관리하고자 할 때 사용
  • 도커 컴포즈를 사용하면 복잡한 멀티컨테이너 어플리케이션을 하나의 파일에 정의하여 관리가능

프로메테우스

  • 오픈소스 이벤트 모니터링 경고시스템
  • 대규모 분산시트템에서 사용되며, Docker와 같은 컨테이너 기술과도 통합
  • 트래픽 조사, 진행사항 조사 등이 가능, 서비스 통계 내기 기능 등이 잇음

먼저 실습구성을 위한 디렉토리 생성을 한다.
디렉토리이름은 example1로 설정

yml 파일구성하여 도커 컨테이너 만들기

도커 컴포즈를 사용함으로 컨테이너 하나하나 구성하지 않아도 된다.

프로메테우스 + 그라파나 도커 컴포즈yml 파일
네트워크는 기존에 생성한 mynet이용

version: '3'
services:
  prometheus:
    image: prom/prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus:/etc/prometheus
      - prometheus-data:/prometheus
    command:
      - --config.file=/etc/prometheus/prometheus.yml
    networks:
      - mynet

  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"
    environment:
      - GF_SERVER_ROOT_URL=http://localhost:3000
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
    volumes:
      - grafana-data:/var/lib/grafana
      - ./grafana/provisioning/:/etc/grafana/provisioning/
    networks:
      - mynet
    depends_on:
      - prometheus

networks:
  mynet:
    driver: bridge

volumes:
  grafana-data:
  prometheus-data:

도커 컴포즈파일 up시키기

성공이면 ls명령어를 통해 디렉토리내에 grafana파일과 prometheus파일이 만들어진 것을 확인할 수 있다.

페이지 확인
1. Grafana

  1. prometheus

도커 컴포즈로 ngnix , prometheus, grafana 연동 및 ngnix exporter를 사용하여 웹 서버 모니터링 하기

ngnix설치하기

docker run후 nginx페이지 확인하기 (임시 페이지)

docker 컴포즈 파일 생성
-nginx
-nginx-exporter
코드는 이 사이트껄 가져와서 만듦
https://github.com/gurumee92/getting-started-prometheus/blob/master/src/part2/ch06/docker-compose.yml#L41

version: "3"

services:
  
  nginx:
    container_name: nginx
    image: nginx:latest
    ports:
      - 8080:80
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
  
  nginx-prometheus-exporter:
    container_name: nginx-prometheus-exporter
    image: nginx/nginx-prometheus-exporter:latest
    ports:
      - 9113:9113
    command: -nginx.scrape-uri http://nginx/metrics

  prometheus:
    container_name: prometheus
    image: prom/prometheus:latest
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--web.console.libraries=/usr/share/prometheus/console_libraries'
      - '--web.console.templates=/usr/share/prometheus/consoles'
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - 9090:9090
  
  grafana:
    container_name: grafana
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    volumes:
      - ./grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yml
      - ./grafana/dashboard.yml:/etc/grafana/provisioning/dashboards/dashboard.yml
      - ./grafana/dashboard.json:/var/lib/grafana/dashboards/dashboard.json
    environment:
      - GF_AUTH_ANONYMOUS_ENABLED=true
      - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin

docker up후 각각사이트 확인하기

nginx exporter

grafana 확인

prometheus확인

->시간오류발생... 시간을 약간 미래로 두면 오류가 뜨지않긴함
--->date설정으로 3분정도 뒤로 설정해줌

->NGINX Prometheus Exporter 설정한뒤 dashbord 설정하기

json파일을 삽입해준다
->json파일 사이트 https://github.com/gurumee92/getting-started-prometheus/blob/master/src/part2/ch04/grafana/dashboard.json

dashboard를 잘못 선택했는지 자꾸 데이터가 없다고 뜬다
오류를 잡아보려했으나 찾지못함 ㅠㅜ

0개의 댓글