콘텐츠로 이동

MinIO

MinIO 성능 지표를 표시합니다. MinIO 온라인 시간, 저장 공간 분포, bucket 상세, 파일 크기 구간 분포, S3 TTFB (s) 분포, S3 트래픽, S3 요청 등을 포함합니다.

설정

버전 지원

  • MinIO 버전: ALL

설명: 예시 MinIO 버전은 RELEASE.2022-06-25T15-50-16Z (commit-id=bd099f5e71d0ea511846372869bfcb280a5da2f6) 입니다

지표 수집

MinIO는 기본적으로 metric 을 노출하므로, Prometheus를 통해 관련 지표를 직접 수집할 수 있습니다.

  • minio-client(mc로 줄여 부름)를 사용해 인증 정보를 생성합니다
$ mc alias set myminio http://192.168.0.210:9000 minioadmin minioadmin

scrape_configs:
- job_name: minio-job
  bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ4MTAwNzIxNDQsImlzcyI6InByb21ldGhldXMiLCJzdWIiOiJtaW5pb2FkbWluIn0.tzoJ7ifMxgx4jXfUKdD_Sq5Ll2-YlbaBu6FuNTZcc88t9o9STyg4yicRAgYmezVGFwYR2VFKvBSBnOnVnb0n4w
  metrics_path: /minio/v2/metrics/cluster
  scheme: http
  static_configs:
  - targets: ['192.168.0.210:9000']
주의

MinIO는 mc를 통해서만 token 정보를 생성할 수 있으며, prometheus 지표 수집에 사용할 수 있습니다. 여기에는 대응하는 prometheus server 생성은 포함되지 않으며, 출력 정보에는 bearer_token, metrics_path, scheme, targets가 포함됩니다. 이 정보들을 이용해 최종 url을 조합할 수 있습니다.

  • DataKit 수집기를 활성화합니다
cd /usr/local/datakit/conf.d/samples/
cp prom.conf.sample prom-minio.conf
  • prom-minio.conf 설정 파일 수정
prom-minio.conf
[[inputs.prom]]
  # Exporter URLs
  urls = ["http://192.168.0.210:9000/minio/v2/metrics/cluster"]

  # url 요청 오류 무시
  ignore_req_err = false
  # 수집기 별칭
  source = "minio"
  metric_types = []

  # 지표 보존, time line 폭주 방지
  metric_name_filter = ["minio_bucket","minio_cluster","minio_node","minio_s3","minio_usage"]
  # 수집 간격 "ns", "us" (or "µs"), "ms", "s", "m", "h"
  interval = "1m"

  # TLS 설정
  tls_open = false
  # tls_ca = "/tmp/ca.crt"
  # tls_cert = "/tmp/peer.crt"
  # tls_key = "/tmp/peer.key"

  # tag 필터링, 여러 tag를 설정할 수 있음
  # 일치한 tag는 무시되지만, 해당 데이터는 여전히 보고됩니다
  tags_ignore = ["version","le","commit"]

  # 사용자 정의 인증 방식, 현재는 Bearer Token만 지원
  # token 과 token_file: 둘 중 하나만 설정하면 됨
  [inputs.prom.auth]
    type = "bearer_token"
    token = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ4MTAwNzIxNDQsImlzcyI6InByb21ldGhldXMiLCJzdWIiOiJtaW5pb2FkbWluIn0.tzoJ7ifMxgx4jXfUKdD_Sq5Ll2-YlbaBu6FuNTZcc88t9o9STyg4yicRAgYmezVGFwYR2VFKvBSBnOnVnb0n4w"
  # token_file = "/tmp/token"

  # 사용자 정의 지표 세트 이름
  # prefix를 포함한 지표를 하나의 지표 세트로 묶을 수 있음
  # 사용자 정의 지표 세트 이름 설정은 measurement_name 설정 항목보다 우선함
  #[[inputs.prom.measurements]]
  #  prefix = "cpu_"
  #  name = "cpu"

  # [[inputs.prom.measurements]]
  # prefix = "mem_"
  # name = "mem"

  # 아래 tag와 일치하는 데이터는 수집하지 않고 버림
  [inputs.prom.ignore_tag_kv_match]
  # key1 = [ "val1.*", "val2.*"]
  # key2 = [ "val1.*", "val2.*"]

  # 데이터 pull HTTP 요청에 추가 요청 헤더를 삽입
  [inputs.prom.http_headers]
  # Root = "passwd"
  # Michael = "1234"

  # prom 데이터의 tag key 이름 변경
  [inputs.prom.tags_rename]
    overwrite_exist_tags = false
    [inputs.prom.tags_rename.mapping]
    # tag1 = "new-name-1"
    # tag2 = "new-name-2"
    # tag3 = "new-name-3"

  # 수집한 지표를 로그로 중앙에 전송
  # service 필드가 비어 있으면 service tag를 지표 세트 이름으로 설정
  [inputs.prom.as_logging]
    enable = false
    service = "service_name"

  # 사용자 정의 Tags
  [inputs.prom.tags]
  # some_tag = "some_value"
  # more_tag = "some_other_value"

주요 파라미터 설명:

  • urls: prometheus 지표 주소로, 여기에는 MinIO가 노출한 지표 url을 입력합니다
  • source: 수집기 별칭이며, minio로 쓰는 것을 권장합니다
  • interval: 수집 간격
  • metric_name_filter: 지표 필터링으로, 필요한 지표 항목만 수집합니다
  • tls_open: TLS 설정
  • metric_types: 지표 유형으로, 비워 두면 모든 지표를 수집합니다
  • tags_ignore: 필요 없는 tag를 무시합니다
  • [inputs.prom.auth]: 인증 정보를 설정합니다
  • token : bearer_token 값

  • DataKit 재시작

DataKit 재시작

지표

지표 의미
node_process_uptime_seconds 노드 온라인 시간
node_disk_free_bytes 노드 공간 여유 크기
node_disk_used_bytes 노드 공간 사용 크기
node_file_descriptor_open_total 노드 파일 설명자 열기 횟수
node_go_routine_total 노드 go_routine 횟수
cluster_disk_online_total 클러스터 디스크 온라인 수
cluster_disk_offline_total 클러스터 디스크 오프라인 수
bucket_usage_object_total bucket 사용 중인 객체 수
bucket_usage_total_bytes bucket 사용 바이트 수
bucket_objects_size_distribution bucket 객체 크기 구간 분포
s3_traffic_received_bytes s3 수신 트래픽
s3_traffic_sent_bytes s3 송신 트래픽
s3_requests_total s3 요청 총수
s3_requests_waiting_total s3 대기 중인 요청 수
s3_requests_errors_total s3 예외 총수
s3_requests_4xx_errors_total s3 4xx 예외 수
s3_time_ttfb_seconds_distribution s3 TTFB
usage_last_activity_nano_seconds 마지막 사용 활동 이후 경과 시간

문서 평가

이 페이지가 도움이 되었나요?