行业知识
k8s笔记26--快速实现prometheus监控harbor
k8s笔记26--快速实现prometheus监控harbor
- 简介
- 采集指标&配置grafana面板
- 采集指标
- 配置grafana面板
- 说���
简介
harbor是当前最流行的开源容器镜像仓库项目,被大量IT团队广泛应用于生产、测试环境的项目中。本文基于Harbor、Prometheus、Grafana介绍快速实现监控harbor的方法和步骤。
采集指标&配置grafana面板
本文前置条件需要安装harbor、prometheus、grafana。harbor可以通过docker-compose的方式快速安装,安装方式可以参考 docker笔记10–安装与使用harbor 。prometheus 可以单独安装,也可以通过开源组件来安装,例如通过 kubesphere来安装(笔者直接使用这种方式)。grafana安装方式可以参考 k8s笔记12–grafana的配置和常见使用。
安装完成基础组件/系统后,我们可以参考如下采集指标、配置grafana面板的步骤完成harbor的监控。
采集指标
较新版本的harbor已经提供了metrics接口,即 ip:9090/metrics。能正常获取harbor指标后,我们只需要在集群中新建一个svc和 serviceMonitor,然后prometheus就能自动采集到harbor的指标。
主要配置案例yaml如下:
1) 新建Endpoints# vim harbor-ep.yamlapiVersion: v1kind: Endpointsmetadata: labels: app: harbor name: harbor namespace: devops-testsubsets:- addresses: - ip: 172.16.xx.xx ports: - name: metrics port: 9090 protocol: TCP2) 新建Service# vim harbor-svc.yamlapiVersion: v1kind: Servicemetadata: labels: app: harbor name: harbor namespace: devops-testspec: internalTrafficPolicy: Cluster ports: - name: metrics port: 9090 protocol: TCP targetPort: 9090 type: ClusterIP3) 新建 serviceMonitor# vim harbor-servicemonitor.yamlapiVersion: monitoring.coreos.com/v1kind: ServiceMonitormetadata: annotations: {} labels: app: harbor-exporter name: harbor namespace: devops-testspec: endpoints: - interval: 30s path: /metrics port: http scheme: http jobLabel: harbor-app namespaceSelector: matchNames: - devops-test selector: matchLabels: app: harbor-exporter新建serviceMonitor后就可以在prometheus的targets中看到监控实例,也可以在promethes中搜到harbor相关的指标,如下图
配置grafana面板
参考 grafana 官方dashboard,笔者结合 ID: 16686 和 ID: 14075 基本就可以快速作出一个想要的harbor监控面板了。通过该面板可以直观看到harbor实例状态、整体存储量、各个项目核心信息(仓库 数、镜像容量、拉取数等)。
效果如下:
至此,我们已经可以通过prometheus和grafana快速实现对harbor的监控了。通过监控发现harbor 仓库基础信息和存储量,对于存储量很大的project,我们可以按需在harbor中配置每天的清理测量(例如保留镜像最近10次推送的tag)。
说明
Prometheus监控Harbor实战
kubesphere官网–面向云原生应用的容器混合云
harbor官网
grafana官网