cAdvisor와 prometheus를 Single Node로 연동시켜 보았습니다.

Docker의 모니터링 등은 최근에는 어떤 것이 있는 것일까, 라고 보고 있으면 cAdvisor( 1 )를 보았습니다.

InfluxDB, Grafana와 연계시켜 가시화도 할 수 있는 것 같습니다. ( 2 )

InfluxDB 사용하고 싶다-, 라고 생각하면서, 최근은 prometheus에 익숙해져 가고 싶기 때문에, 제휴할 수 있을까 보았습니다.
빙글빙글 보면 이미 구현하고 있는 사람이 있네요.
  • htps //w w. ctl. 이오 / ゔ ぇ ぺ rs / b ぉ g / 포 st / 모토 린 g-c r r r r

  • 어쨌든 사경하고 싶습니다.

    실시 순서



    1. cAdvisor 컨테이너 시작


    sudo docker run -d \
      -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro \
      -p 8080:8080 --privileged --name=cadvisor_with_influxdb \
      google/cadvisor:latest
    

    2. prometheus.yml 준비



    prometheus가 지표 수집을 위한 엔드포인트를 설정합니다.
    여기서 AWS 환경을 사용했기 때문에 VPC의 사설 IP 주소와 1. 에서 지정한 cAdvisor의 8080 포트를 지정했습니다.

    그러면 [프라이빗 IP:8080/metrics]에서 수집한 정보를 축적·가시화해 주는 것 같습니다.

    prometheus.yml
    
    global:
      scrape_interval: 15s # By default, scrape targets every 15 seconds.
      evaluation_interval: 15s # By default, scrape targets every 15 seconds.
      # scrape_timeout is set to the global default (10s).
    
      # Attach these extra labels to all time-series collected by this Prometheus instance.
      #labels:
        #monitor: 'panamax-monitor'
    
    rule_files:
      - '/etc/prometheus/alert.rules'
    
    # A scrape configuration containing exactly one endpoint to scrape:
    scrape_configs:
    # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
    
      # Panamax
      - job_name: 'panamax'
        scrape_interval: 5s
    
        # Override the global default and scrape targets from this job every 5 seconds.
        scrape_interval: 5s
        scrape_timeout:  3s
    
        target_groups:
          - targets: ['プライベートIP:8080']
            labels:
              group: 'development'
    

    3. alert.rule 추가



    여기는 아직 깊은 해자가 아닙니다. 아래와 같이 둥근 복사했습니다.
    ALERT pmx_down
      IF up == 0
      FOR 5m
    

    4. prometheus 서버 시작



    아래와 같이 시작했습니다.
    alertmanager.url에서 공용 IP를 지정했습니다. [0.0.0.0]과 [localhost]를 지정하면 화가났습니다. 수수하게 똑똑하네요. .

    run-prometheus.sh
    docker run -i -p 9090:9090 \
                  -v $PWD/prometheus.yml:/etc/prometheus/prometheus.yml \
                  -v $PWD/alert.rules:/etc/prometheus/alert.rules \
                  prom/prometheus \
                  -config.file=/etc/prometheus/prometheus.yml \
                  -alertmanager.url=http://${AWSのパブリックIP}:9093
    

    5. UI를 보았다.



    4. 에서 지정한 UI를 보면 다음과 같이 지표 수집된 결과를 볼 수 있습니다.



    참고(또는 TODO)


  • cAdvisor가 할 수없는 일 (멀티 호스트 수집 및 시각화) 구현
  • prometheus 데이터 계층 등의 격리
  • alert 설정 방법 확인. htps : // p 뻗어 s. 이오 / 도 cs / 아 r 친 g / 루 ぇ s /
  • exporter라는 개념도 있어, 아래와 같은 커멘드가 소개되고 있습니다.
  • docker run -d --name PROM_CON_EXP \
      -p 9104:9104 \
      -v /sys/fs/cgroup:/cgroup -v /var/run/docker.sock:/var/run/docker.sock \
      prom/container-exporter
    
  • htps : // p 뻗어 s. 이오/도 cs/인 st 루멘 친g/에 x포 rs rs/

  • 위 사이트를 보면 다른 타사 그룹에 대응한 것도 다수 있는 것 같습니다.
    개념 이해와 사용할 수 있다면 꾸준히 도입도 해 나가고 싶은 곳입니다.

    InfluxDB도 사용하고 싶습니다.
  • ㅜㅜㅜㅜㅜㅜㅜㅜㅜ 네 / 아 rc c / s / mp ぇ - da- ゔ ぃ す ぃ ざ ち ん - s ck ぃ th - c r r f f xdb an dg 라후 /

  • 인용





    htps : // 기주 b. 코 m / 오오 g / d ゔ ぃ 소 r 

    cAdvisor, InfluxDB, Grafana에서 Docker 컨테이너 리소스 모니터링 

    좋은 웹페이지 즐겨찾기