
Harbor 導入官方 Grafana 儀表盤可視化 Exporter 監控指標【免費下載鏈接】harborAn open source trusted cloud native registry project that stores, signs, and scans content.項目地址: https://gitcode.com/GitHub_Trending/ha/harborHarbor 自帶一個 Exporter 組件通過 Prometheus 格式的/metrics端點暴露組件健康、項目配額、任務隊列、Core/Registry 請求等指標倉庫在contrib/grafana-dashboard/目錄下隨源碼提供了一份官方 Grafana 儀表盤。本文的任務是先讓 Harbor 開啟并驗證 Exporter 指標輸出再把倉庫中的metrics-example.json導入 Grafana讓指標以面板形式可視化。適用前提Harbor 已通過 install 腳本docker compose 方式部署并可正常訪問已有一套 Grafana 實例。倉庫contrib/grafana-dashboard/README.md明確說明該儀表盤基于Grafana v8制作可能不兼容更早的 Grafana 版本儀表盤內各面板引用的是 Prometheus 類型數據源因此需要一個已配置好的 Prometheus 數據源或已指向 Harbor 指標的 Prometheus 實例供導入時選擇。儀表盤截圖來自倉庫文檔尺寸偏高僅作面板參考一、在 harbor.yml 中開啟 ExporterHarbor 安裝目錄下的harbor.yml中有一段默認注釋掉的 metric 配置見 make/harbor.yml.tmpl# metric: # enabled: false # port: 9090 # path: /metrics取消注釋并按需修改metric: enabled: true port: 9090 path: /metricsport與path即上面模板注釋中給出的默認值9090、/metrics。Exporter 是否隨實例啟動完全由metric.enabled決定prepare 腳本只有在config_dict[metric].enabled為真時才會渲染 exporter 配置并寫入 docker-composecompose 模板中的 exporter 服務同樣包裹在{% if metric.enabled %}條件里見 docker-compose.yml.jinja。修改harbor.yml后重新執行 Harbor 的安裝/更新腳本使配置生效離線安裝腳本為install.sh與harbor.yml位于同一目錄。副作用提示該腳本會重新 prepare 配置并重啟各組件容器執行前確認harbor.yml中其他項數據庫密碼、證書路徑等無誤。二、驗證 Exporter 與 /metrics 端點確認容器與默認參數開啟后 compose 中會多出如下服務模板渲染結果exporter: image: goharbor/harbor-exporter:版本 container_name: harbor-exporter env_file: - ./common/config/exporter/env restart: always depends_on: - core可用docker ps | grep harbor-exporter確認容器在運行。Exporter 的關鍵默認值由 env.jinja 生成環境變量默認值用途HARBOR_EXPORTER_PORT8080Exporter 監聽端口HARBOR_EXPORTER_METRICS_PATH/metrics指標路徑HARBOR_EXPORTER_MAX_REQUESTS30限制請求數HARBOR_EXPORTER_CACHE_TIME23指標緩存時間秒HARBOR_SERVICE_HOST/HARBOR_SERVICE_PORTcore/ 8080啟用 internal_tls 時為 https:8443Exporter 回調 Harbor core 的地址Exporter 連接 core、數據庫與 Redis 采集數據注冊的采集器包括 health、system info、project、job service、statistics見 exporter.go。/路徑返回一個簡單的 HTML 頁頁面內有指向 metrics 路徑的鏈接可用瀏覽器打開做連通性檢查。從 metrics 端點核對指標名倉庫的 API 測試 test_verify_metrics_enabled.py 給出了端點用法向 metrics 地址發起請求不帶參數返回 exporter 指標帶compcore、compregistry、compjobservice參數分別代理對應組件的指標。以 Harbor 對外地址為例harbor替換為你的 Harbor 主機名/IP端口為harbor.yml中metric.port的值默認 9090# exporter 自身指標 curl http://harbor:9090/metrics # core / registry / jobservice 組件指標 curl http://harbor:9090/metrics?compcore curl http://harbor:9090/metrics?compregistry curl http://harbor:9090/metrics?compjobservice返回文本中應能看到 exporter 側的指標名例如harbor_up、harbor_health、harbor_system_info、harbor_project_total、harbor_project_quota_usage_byte、harbor_task_concurrency、harbor_task_queue_size、harbor_artifact_pulled以及 Go 運行時基礎指標go_gc_duration_seconds、go_goroutines等。這些名稱與上文 curl 輸出的對應關系來自該測試用例的斷言列表。若某個指標缺失先回到上一步確認metric.enabled: true已生效、harbor-exporter容器存活。三、導入官方 Grafana 儀表盤打開 Grafana 的 Dashboards → New → Import。上傳倉庫中的儀表盤文件 contrib/grafana-dashboard/metrics-example.jsonGrafana v8 導出的 JSONschemaVersion: 36標題為Harbor。導入時選擇 Prometheus 數據源。注意該 JSON 沒有__inputs/templating變量定義但面板里引用了${datasource}、${DS_PROMETHEUS}這類數據源占位寫法導入后需要把面板/行級數據源指向你的 Prometheus 數據源Grafana 導入界面通常會提示替換數據源若界面不提示則進入儀表盤編輯逐個檢查面板的數據源設置。保存儀表盤。導入后儀表盤包含的分組與面板與該 JSON 中panels定義一致Infocomponent up status基于harbor_up、Quota Usage基于harbor_project_quota_usage_byte項目維度project members、Project repo total、artifacts pulledCore Metricsharbor core request rate、API request time 0.9、harbor core inflight requestsGeneral metricsProcess opened fd、Process CPU time、go threads、goroutines、Go heap objects、go allocated memory、go next gc bytes、go gc time分位面板JobService Metricstask latency、task concurrency、task queue pending size、tasks per minute、number of running scheduled jobsRegistry MetricRegistry request inflight、Registry request rate、registry request time 0.9、registry request size 0.9、registry response size 0.9。四、結果驗證與邊界驗證方式是打開導入后的儀表盤確認各分組面板出現曲線或數值而不是 No data。判斷方法component up status面板應有組件記錄對應指標為harbor_up第二步 curl/metrics能取到即說明數據鏈已通Core/Registry 分組面板依賴compcore、compregistry路徑上的指標harbor_core_http_request_total、registry_http_requests_total等有推拉流量后面板才會上數若所有面板均無數據依次檢查Prometheus 數據源配置Scrape 是否覆蓋第二步的 metrics 地址、harbor-exporter容器狀態、harbor.yml中metric.enabled是否已生效。需要留意的邊界Grafana 版本低于 v8 時該儀表盤可能無法正常工作這是倉庫 README 的明確說明Exporter 指標帶緩存HARBOR_EXPORTER_CACHE_TIME默認 23 秒緩存清理間隔默認 14400 秒面板數值刷新存在延遲屬預期行為儀表盤只覆蓋上述 exporter/core/registry/jobservice 指標面板未包含告警規則或通知渠道配置這些需在 Grafana 中自行添加?!久赓M下載鏈接】harborAn open source trusted cloud native registry project that stores, signs, and scans content.項目地址: https://gitcode.com/GitHub_Trending/ha/harbor創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考