随着云计算和微服务架构的日益普及,容器技术已经成为现代软件开发和部署的核心。然而,随着容器数量的增长,管理和监控这些容器变得越来越复杂。Harbor作为一款开源的企业级Docker注册表项目,不仅提供了安全可靠的镜像存储解决方案,还内置了强大的监控功能。这使得企业能够实时了解其容器环境的状态,并迅速响应潜在问题。本文将详细介绍Harbor监控面板的功能及其对企业的重要意义。

预防胜于治疗,监控先行
1、添加harbor部署参数
$ cat <<'EOF' | sudo tee -a /etc/kubernetes/addons/harbor-value.yml
# harbor暴露metrics数据
metrics:
enabled: true
EOF
2、更新harbor
$ helm -n harbor upgrade harbor -f /etc/kubernetes/addons/harbor-value.yml /etc/kubernetes/addons/harbor
$ kubectl -n harbor get pod
NAME READY STATUS RESTARTS AGE
harbor-core-655b8cdd5d-n7vbx 1/1 Running 0 71s
harbor-core-655b8cdd5d-pb896 1/1 Running 0 51s
harbor-exporter-5b789d5fb6-4dcr2 1/1 Running 0 71s
harbor-exporter-5b789d5fb6-6lzgf 1/1 Running 0 95s
harbor-jobservice-69c54699b9-8wlhw 1/1 Running 0 71s
harbor-jobservice-69c54699b9-tsbm7 1/1 Running 0 41s
harbor-portal-767957d4c6-ggrc2 1/1 Running 1 (168m ago) 29h
harbor-portal-767957d4c6-lkrsj 1/1 Running 1 (168m ago) 30h
harbor-registry-86b67f89fc-7w67v 2/2 Running 0 68s
harbor-registry-86b67f89fc-rbqtf 2/2 Running 0 71s
harbor-trivy-0 1/1 Running 1 (168m ago) 29h
harbor-trivy-1 1/1 Running 1 (168m ago) 30h
1、Prometheus采集harbor数据
$ kubectl -n kube-system edit cm prometheus
- job_name: 'harbor-exporter'
scrape_interval: 15s
kubernetes_sd_configs:
- role: service
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_service_port_name]
action: keep
regex: harbor;harbor-exporter;http-metrics
- job_name: 'harbor-core'
scrape_interval: 15s
kubernetes_sd_configs:
- role: service
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_service_port_name]
action: keep
regex: harbor;harbor-core;http-metrics
- job_name: 'harbor-registry'
scrape_interval: 15s
kubernetes_sd_configs:
- role: service
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_service_port_name]
action: keep
regex: harbor;harbor-registry;http-metrics
- job_name: 'harbor-jobservice'
scrape_interval: 15s
kubernetes_sd_configs:
- role: service
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_service_port_name]
action: keep
regex: harbor;harbor-jobservice;http-metrics
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=~"harbor-.*"}' | jq '.data.result[] | {job: .metric.job, status: .value[1]}'
{
"job": "harbor-core",
"status": "1"
}
{
"job": "harbor-exporter",
"status": "1"
}
{
"job": "harbor-jobservice",
"status": "1"
}
{
"job": "harbor-registry",
"status": "1"
}
grafana上添加harbor_exporter官方面板地址:https://github.com/goharbor/harbor/blob/main/contrib/grafana-dashboard/metrics-example.json




Tip:register相关指标需要有pull或者push动作才会生成图标
在当前快速变化的技术环境中,有效的IT基础设施管理对于保持企业的竞争力至关重要。Harbor监控面板为企业提供了一种强有力的工具,帮助它们更好地理解和控制自己的容器生态系统。通过实施恰当的监控策略,组织可以显著增强其系统的稳定性、安全性及整体性能。希望本文能为读者提供宝贵的见解,并激发大家进一步探索Harbor监控面板的兴趣。无论是为了满足日常运维的需求还是应对未来的挑战,掌握这一工具都将为企业带来长远的利益。
别忘了,关注我们的公众号,获取更多关于容器技术和云原生领域的深度洞察和技术实战,让我们携手在技术的海洋中乘风破浪!

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




