コンテンツにスキップ

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_tokenmetrics_pathschemetargets が含まれます。これらの情報を組み合わせて最終的な 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 = []

  # メトリクスを保持して、タイムラインの爆発を防ぐ
  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 は無視されるが、対応するデータは引き続き送信される
  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 を含むメトリクスを 1 つのメトリクスセットとしてまとめられる
  # カスタムメトリクスセット名の設定は 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.*"]

  # データ取得時の 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 を無視します
  • 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 最後の使用アクティビティからの経過時間

フィードバック

このページは役に立ちましたか?