2022-06-23-[Prometheus]서비스-디스커버리-설정하기
본문 바로가기
PoC

2022-06-23-[Prometheus]서비스-디스커버리-설정하기

by KyeongMin 2022. 6. 23.
728x90
반응형

01.서비스 디스커버리란?

  • 타겟 서버에 대한 정보를 가지고 오기 위한 설정
  • 라벨을 통한 타겟 서버 관리
    • 대상서버를 선정하기 위한것
    • static config는 정적으로 타겟 서버 지정
      • 새로운 서버 삭제 , 수정시 프로메테우스 재기동하는것 리로드하는것 번거로워서
        • 서비스 디스커버리를 이용해서 타겟서버를 관리함

02.파일 서비스 디스커버리

  • 0개 이상의 static config로 이루어진 파일 목록 읽음
    • 해당 파일 변경되면 감지해서 즉시 설정으로 적용됨
  • 해당 파일, json, yml, yaml로 쓸 수 있음

  • sd 폴더 생성
  • cd /prometheus/config/
    mkdir sd
  • 심볼릭 링크 걸기
    • -s 심볼릭 링크 걸리
    • -f 기존에 심볼릭 링크로 해당파일이 되어 있어도 원하는 파일로 link함
  • ln -sf
  • 이름 바꿔서 이동
  • mv prometheus.yml static_sd.yml
  • file_sd.yml 작성
    scrape_configs:
      - job_name: 'node_exporter'
        follow_redirects: true
        scrape_interval: 5s
        scrape_timeout: 1s
      
        file_sd_configs:
        - files:
          - 'sd/*.yml'
    ln -sf file_sd.yml prometheus.yml
  • vim file_sd.yml
  • 수집대상 서버가 명시될 파일
    - targets:
      - localhost:9100
      labels:
        region: KR
        tier: frontend
        environment: development
        disk: NVMe
    
  • vim /sd/localhost.yml
  • reload 하기
  • curl localhost:9090/-/reload -XPOST -D /dev/stdout

  • status -> service Discovery 에서 확인 할 수 있음

02.1 relabel

  • before
  • scrape_configs:
      - job_name: 'node_exporter'
        follow_redirects: true
        scrape_interval: 5s
        scrape_timeout: 1s
        file_sd_configs:
        - files:
          - 'sd/*.yml'
  • after
    curl localhost:9090/-/reload -XPOST -D /dev/stdout
    • page reload
  • scrape_configs:
      - job_name: 'node_exporter'
        follow_redirects: true
        scrape_interval: 5s
        scrape_timeout: 1s
        
        file_sd_configs:
        - files:
          - 'sd/*.yml'
          
        relabel_configs:
        - source_labels: ['__address__'] # 참조하는 레이블
          regex: '(.*):(.*)' # host명 : 포트
          replacement: '${1}' # 매칭되는 부분의 첫번째를
          target_label: 'instance' #레이블의 값을 사용하겠음

  • 위와 같이 바뀜이 확인됨
  • target_label: 'instance'
    • target_label: 'instance'
      • 새로운 레이블을 만들기 위해서는 위를 host로 변경해주면됨
728x90
반응형

댓글