tencent cloud

피드백

Prometheus를 기반으로 GooseFS 모니터링 시스템 구축

마지막 업데이트 시간:2022-03-09 16:58:15

    Goosefs는 설정을 통해 지표 데이터를 Prometheus와 같은 다른 모니터링 시스템으로 출력할 수 있습니다. Prometheus는 오픈 소스 모니터링 프레임워크로 현재 Tencent Cloud 모니터링은 Prometheus를 통합하였습니다. 다음으로 Goosefs의 모니터링 지표와 자체구축한 Prometheus와 클라우드 Prometheus에 모니터링 지표를 보고하는 과정을 중점적으로 소개합니다.

    준비 작업

    Prometheus를 통해 모니터링 시스템을 구축하려면 다음 준비 작업이 선행되어야 합니다.

    • GooseFS 클러스터 설정
    • Prometheus 공식 홈페이지의 설치 패키지 또는 Tencent Cloud Prometheus 설치 패키지 다운로드
    • Grafana 다운로드 및 설정

    GooseFS 모니터링 지표 보고 설정 활성화

    1. GooseFs를 편집하여 conf/goosefs-site.properties를 설정합니다. 다음과 같은 설정 항목을 추가하고 goosefs copyDir conf/를 모든 worker 노드로 복사하며 ./bin/goosefs-start.sh all 클러스터를 재시작합니다.
    goosefs.user.metrics.collection.enabled=true
    goosefs.user.metrics.heartbeat.interval=10s
    
    1. master와 worker의 Prometheus 모니터링 지표는 다음과 같은 명령어로 조회할 수 있습니다. 그중 master의 metrics 포트는 9201이며, worker의 metrics 포트는 9204입니다.
    curl <LEADING_MASTER_HOSTNAME>:<MASTER_WEB_PORT>/metrics/prometheus/
    # HELP Master_CreateFileOps Generated from Dropwizard metric import (metric=Master.CreateFileOps, type=com.codahale.metrics.Counter)
    ...
    curl <WORKER_IP>:<WOKER_PORT>/metrics/prometheus/
    # HELP pools_Code_Cache_max Generated from Dropwizard metric import (metric=pools.Code-Cache.max, type=com.codahale.metrics.jvm.MemoryUsageGaugeSet$$Lambda$51/137460818)
    ...
    

    자체구축 Prometheus에 모니터링 지표 보고

    1. Prometheus 설치 패키지를 다운로드 및 압축 해제하고, prometheus.yml을 수정합니다.

      
      # prometheus.yml
      global:
       scrape_interval:     10s
       evaluation_interval: 10s
      scrape_configs:
       - job_name: 'goosefs masters'
           metrics_path: /metrics/prometheus
           file_sd_configs:
           - refresh_interval: 1m
           files:
           - "targets/cluster/masters/*.yml"
       - job_name: 'goosefs workers'
           metrics_path: /metrics/prometheus
           file_sd_configs:
           - refresh_interval: 1m
           files:
           - "targets/cluster/workers/*.yml"
      
    2. targets/cluster/masters/masters.yml을 생성하여 master의 IP와 port를 추가합니다.

    
     - targets:
        - "<TARGERTS_MASTER_IP>:<TARGERTS_MASTER_PORT>"
    
    1. targets/cluster/workers/workers.yml을 생성하여 worker의 IP와 port를 추가합니다.
    
     - targets:
        - "<TARGERTS_WORKER_IP>:<TARGERTS_WORKER_PORT>"
    
    1. Prometheus를 실행하고, 그중 --web.listen-address는 Prometheus 수신 주소를 지정합니다. 기본 포트 번호: 9090
    
    nohup ./prometheus --config.file=prometheus.yml --web.listen-address="<LISTEN_IP>:<LISTEN_PORT>" > prometheus.log 2>&1 &
    
    1. 시각화 인터페이스를 조회합니다.
    http://<PROMETHEUS_BI_IP>:<PROMETHEUS_BI_PORT>
    
    1. 기기 인스턴스를 조회합니다.
      http://<PROMETHEUS_BI_IP>:<PROMETHEUS_BI_PORT>/targets
      

    Tencent Cloud Prometheus에 모니터링 지표 보고

    1. 설치 가이드의 가이드에 따라, master 기기에 Promethus agent를 설치합니다.
    
    wget https://rig-1258344699.cos.ap-guangzhou.myqcloud.com/prometheus-agent/agent_install && chmod +x agent_install && ./agent_install prom-12kqy0mw agent-grt164ii ap-guangzhou <secret_id> <secret_key>
    
    1. master와 worker의 캡처 작업을 설정합니다.

    방식1:

    
     job_name: goosefs-masters
     honor_timestamps: true
     metrics_path: /metrics/prometheus
     scheme: http
     file_sd_configs:
     - files:
        - /usr/local/services/prometheus/targets/cluster/masters/*.yml
        refresh_interval: 1m
    job_name: goosefs-workers
    honor_timestamps: true
    metrics_path: /metrics/prometheus
    scheme: http
    file_sd_configs:
     - files:
        - /usr/local/services/prometheus/targets/cluster/workers/*.yml
        refresh_interval: 1m
    
    주의:

    job_name에는 빈칸이 없지만, 오프라인 Prometheus의 job_name에는 빈칸이 포함될 수 있습니다.

    방식2:

    
    job_name: goosefs masters
    honor_timestamps: true
    metrics_path: /metrics/prometheus
    scheme: http
    static_configs:
    - targets:
     - "<TARGERTS_MASTER_IP>:<TARGERTS_MASTER_PORT>"
     refresh_interval: 1m
     
    job_name: goosefs workers
    honor_timestamps: true
    metrics_path: /metrics/prometheus
    scheme: http
    static_configs:
    - targets:
     - "<TARGERTS_WORKER_IP>:<TARGERTS_WORKER_PORT>"
     refresh_interval: 1m
    
    주의:

    캡처 작업은 두 번째 방법에 따라 구성되며 targets/cluster/masters/경로에 masters.yml 및 workers.yml 파일을 생성할 필요가 없습니다.

    Grafana를 사용하여 모니터링 지표 조회

    1. Grafana를 실행합니다.
    nohup ./bin/grafana-server web > grafana.log 2>&1 &
    
    1. 로그인 페이지 http://<GRAFANA_IP>:<GRAFANA_PORT>를 엽니다. Grafana 기본 포트: 3000,username과 password는 모두 admin이며,첫 로그인 후 비밀번호를 수정할 수 있습니다.
    2. 페이지 이동 후 Prometheus의 Datasource를 추가합니다.
    <PROMETHEUS_IP>:<PROMETHEUS_PORT>
    
    1. Goosefs의 Grafana 템플릿을 가져오고, 가져올 json 및 위에서 생성한 Datasource를 선택합니다(json 다운로드).
      주의:

      클라우드 Prometheus 구매 시 비밀번호를 설정해야 합니다. 클라우드 Grafana의 시각화 모니터링 인터페이스 설정은 위와 유사하며, job_name은 일치하도록 설정해야 합니다.

    2. DashBoard 수정 후 DashBoard 내보내기가 가능합니다.
    문의하기

    고객의 업무에 전용 서비스를 제공해드립니다.

    기술 지원

    더 많은 도움이 필요하시면, 티켓을 통해 연락 바랍니다. 티켓 서비스는 연중무휴 24시간 제공됩니다.

    연중무휴 24시간 전화 지원