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.yaml
apiVersion: v1
kind: Endpoints
metadata:labels:app: harborname: harbornamespace: devops-test
subsets:
- addresses:- ip: 172.16.xx.xxports:- name: metricsport: 9090protocol: TCP2) 新建Service
# vim harbor-svc.yaml
apiVersion: v1
kind: Service
metadata:labels:app: harborname: harbornamespace: devops-test
spec:internalTrafficPolicy: Clusterports:- name: metricsport: 9090protocol: TCPtargetPort: 9090type: ClusterIP3) 新建 serviceMonitor
# vim harbor-servicemonitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:annotations: {}labels:app: harbor-exportername: harbornamespace: devops-test
spec:endpoints:- interval: 30spath: /metricsport: httpscheme: httpjobLabel: harbor-appnamespaceSelector:matchNames:- devops-testselector: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官網