暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

企业级MinIO监控面板:确保数据存储的高性能与安全

Linux运维智行录 2024-12-20
127

随着大数据时代的来临,企业对于数据存储和管理的需求愈发苛刻。MinIO作为一款高性能的对象存储解决方案,其企业级监控面板为企业提供了强大的工具来确保数据的安全性和可用性。本文将详细介绍该监控面板如何帮助企业提升数据管理水平,实现高效的数据管理和运维。

预防胜于治疗,监控先行


01
Minio开启metrics

1、创建minio客户端并配置连接信息

$ kubectl run minio-client --rm -it --image 172.139.20.170:5000/library/minio/minio-client:2024.10.29-debian-12-r1 -- bash
If you don't see a command prompt, try pressing enter.
I have no name!@minio-client:/opt/bitnami/minio-client$ mc alias set '
minio' 'http://minio-headless.kube-system.svc:9000' admin clouD@0209
mc: Configuration written to `/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/.mc/share`.
mc: Initialized share uploads `/.mc/share/uploads.json` file.
mc: Initialized share downloads `/.mc/share/downloads.json` file.
Added `minio` successfully.



2、获取minio集群指标

I have no name!@minio-client:/opt/bitnami/minio-client$ mc admin prometheus generate minio
scrape_configs:
- job_name: minio-job
  bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiYWRtaW4iLCJleHAiOjQ4ODgyODU4NjV9.tj9LKCNNbVpSV9GAtzN4lnJHiwnGmP7I00wygUTIAZdpdb7r6cfhsFb-b-MgAZWv0KmGt43rVcvvgCReLEyHQw
  metrics_path: minio/v2/metrics/cluster
  scheme: http
  static_configs:
  - targets: ['minio-headless.kube-system.svc:9000']


3、获取minio节点

I have no name!@minio-client:/opt/bitnami/minio-client$ mc admin prometheus generate minio node
scrape_configs:
- job_name: minio-job-node
  bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiYWRtaW4iLCJleHAiOjQ4ODgyODU4ODN9.ENu1FTNMyl0rimO5MS0LG8So-lvr_RcLpDJdjanjtKvYyT7stL03Uwg47yHhLcU4sU5bCs0x0onAIPQh3MDKvg
  metrics_path: minio/v2/metrics/node
  scheme: http
  static_configs:
  - targets: ['minio-headless.kube-system.svc:9000']


4、获取minio桶

I have no name!@minio-client:/opt/bitnami/minio-client$ mc admin prometheus generate minio bucket
scrape_configs:
- job_name: minio-job-bucket
  bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiYWRtaW4iLCJleHAiOjQ4ODgyODU4OTF9.2_VULWlR_DQePcE4GgNgDthIeMkHOvgNfsy35iWVWbCHfVVbzKK8jE5fytWEomiLnQewYtDndZIIXKvq7IHpOQ
  metrics_path: minio/v2/metrics/bucket
  scheme: http
  static_configs:
  - targets: ['minio-headless.kube-system.svc:9000']


5、获取minio资源

I have no name!@minio-client:/opt/bitnami/minio-client$ mc admin prometheus generate minio resource
scrape_configs:
- job_name: minio-job-resource
  bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiYWRtaW4iLCJleHAiOjQ4ODgyODU4OTZ9.zvIDGTuo_LjxKvSydlP3V_DBGz0LMY5MUHMjha6n20RJswaRIvH7JVd020QWWdrtvWIoS-pAWqMLzK3umGkRSw
  metrics_path: minio/v2/metrics/resource
  scheme: http
  static_configs:
  - targets: ['minio-headless.kube-system.svc:9000']


02
Prometheus采集gitlab指标

1、Prometheus采集gitlab数据

$ kubectl -n kube-system edit cm prometheus
    - job_name: minio
      bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiYWRtaW4iLCJleHAiOjQ4ODgwMjYxMzd9.x_LnmpMpyA2wJAtzBPBv47AXLDqq4RmJcaCfbXkwkuc
FwmNhtr-UDY3IXSYRIuyMjmucDa99rBIvsHUMefc_Pw
      metrics_path: minio/v2/metrics/cluster
      scheme: http
      static_configs:
      - targets: ['minio.kube-system.svc:9000']

    - job_name: minio-node
      bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiYWRtaW4iLCJleHAiOjQ4ODgwMjYxNDh9.l-Fkcq2dGXwHNtKDj1c5qRmGEIez4qGoGRAQwJXHSjp
96bAKFQbVfoJLLMj4UMOqmPGF3eDZbLJ25b9pdNXRfw
      metrics_path: minio/v2/metrics/node
      scheme: http
      kubernetes_sd_configs:
      - role: endpoints
      relabel_configs:
      - action: keep
        source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_endpoints_name, __meta_kubernetes_endpoint_port_name]
        regex: kube-system;minio;minio-api

    - job_name: minio-bucket
      bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiYWRtaW4iLCJleHAiOjQ4ODgwMjYxNTd9.YIiuBB-NrHwe1v8m0DiGBirlqB5UdailbTUUQCMLPY1
T4gTuaipIKHLCMP5S5Ym1P3tXCIr6twEQwsTOeo-uxw
      metrics_path: minio/v2/metrics/bucket
      scheme: http
      static_configs:
      - targets: ['minio.kube-system.svc:9000']

    - job_name: minio-resource
      bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiYWRtaW4iLCJleHAiOjQ4ODgwMjYxNjh9.roXpbUb4vAYfe-0y6ew6oxeC5hEeS_0VmHMkzsIPRLU
MYtVNFY4vXrpn9LGnTxwvR730o0LSkc5lzY0g8vxwCw
      metrics_path: minio/v2/metrics/resource
      scheme: http
      static_configs:
      - targets: ['minio.kube-system.svc:9000']

Tip:minio-node要采集到所有minio-server的实例,建议使用endpoint的方式来采集

2、验证是否采集成功

$ curl -s $(kubectl -n kube-system get svc prometheus -ojsonpath='{.spec.clusterIP}:{.spec.ports[0].port}')/prometheus/api/v1/query --data-urlencode 'query=up{job=~"minio.*"}' | jq '.data.result[] | {job: .metric.job, instance: .metric.instance ,status: .value[1]}'
{
  "job": "minio-bucket",
  "instance": "minio.kube-system.svc:9000",
  "status": "1"
}
{
  "job": "minio-resource",
  "instance": "minio.kube-system.svc:9000",
  "status": "1"
}
{
  "job": "minio",
  "instance": "minio.kube-system.svc:9000",
  "status": "1"
}
{
  "job": "minio-node",
  "instance": "10.244.85.203:9000",
  "status": "1"
}
{
  "job": "minio-node",
  "instance": "10.244.217.116:9000",
  "status": "1"
}
{
  "job": "minio-node",
  "instance": "10.244.135.186:9000",
  "status": "1"
}
{
  "job": "minio-node",
  "instance": "10.244.58.210:9000",
  "status": "1"
}


03
grafana添加gitlab监控面板

grafana上导入以下 dashboard ID号: 19237(Minio Bucket)、13502(Minio Grafana)。以及raw.githubusercontent.com/minio/minio/master/docs/metrics/prometheus/grafana/node/minio-node.json 文件 




效果图



04
结语

MinIO企业级监控面板不仅是技术上的革新,更是企业实现高效数据管理和维护的重要工具。它不仅简化了复杂的存储管理任务,提高了运维效率,更为重要的是强化了数据的安全性和服务稳定性。随着技术的不断发展,MinIO将继续优化和完善其监控解决方案,帮助企业更好地应对未来的挑战,在激烈的市场竞争中脱颖而出。


别忘了,关注我们的公众号,获取更多关于容器技术和云原生领域的深度洞察和技术实战,让我们携手在技术的海洋中乘风破浪!

END

文章转载自Linux运维智行录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论