大家好, 本篇为我在做公司容器化监控平台选型时的一些调研思路和资料记录,希望可以给到大家启发和帮助。
阅读本文,你可以了解到:
容器化监控曾经出现过的几种方案:
1/ Heapster[1] + ElasticSearch + Kibana
2/ Heapster[2] + influxdb + grafana
Heapster 通过 cAdvisor 组件收集 Node 和 容器的监控数据。kubernetes 1.13 彻底移除对 Heapster 的使用,Heapster 仓库也归档,不再更新维护。
3/ 基于 Prometheus 生态的监控方案;
站在2022这个时间点,Prometheus已是容器化监控的首选。各种资料对比显示它已经成为容器监控领域的标准。
基于 Prometheus的监控栈,主要有以下两套部署方案:
- 手动部署可参考文档:https://docs.prometheus.cool/Kubernetes/Prometheus-Statefulsets-1/
该存储库收集了 Kubernetes 清单、Grafana 仪表板和 Prometheus 规则以及文档和脚本,以使用 Prometheus Operator 提供易于操作的端到端 Kubernetes 集群监控与 Prometheus。
- 部署可参考文档:http://gitlab.bokecc.com/opgroup/dev/cc_dev_docs/blob/master/dev/container/k8s_operator.md
- k8s 官方 Operator 文档:https://kubernetes.io/zh/docs/concepts/extend-kubernetes/operator/
- Operator Hub 文档:https://operatorhub.io/
- Prometheus Operator 文档:https://prometheus-operator.dev/
日常监控的采集项:
容器需要采集或监控的数据指标:
各指标对应采集方案和组件如下:
基础设置
node 主机信息 ---> node-exporter
各组件监控及资源使用情况、容器性能(如容器的 CPU、内存、文件和网络的使用情况),cAdvisor ---> state-metrics
业务信息:
容器健康状态,Probes ---> state-metrics
健康探测(link/trace)---> 外部探测(自建、阿里云)
自定义,---> 自己暴露 metrics 接口
Prometheus 作为收集和临时存储使用,因为单点不具备扩容能力,不适合做持久化存储。
持久化存储,目前业界有三种种比较成熟的开源方案:
thanos-arch
cortex-arch
vm-cluster-arch
Thanos vs VictoriaMetric 两种方案对比,可参考文档:
Cortex vs VictoriaMetric 对比:
总结下三种方案对比大致如下:
多 Prometheus 副本,接后端 VictoriaMetric 聚合去重查询。
根据上边的记录分析,我相信大家心里应该有了自己的选择。技术选型除了目标技术栈本身,还需要根据自己业务架构和团队人员技术栈等其他因素综合考虑,所以选用符合自己业务架构和团队的便是最好的技术选型。
[1]Heapster: https://github.com/kubernetes-retired/heapster
[2]Heapster: https://github.com/kubernetes-retired/heapster
[3]v5版本: https://n9e.github.io/
[4]kube-prometheus: https://github.com/prometheus-operator/kube-prometheus
[5]Thanos: https://thanos.io/v0.24/thanos/getting-started.md/
[6]Cortex: https://cortexmetrics.io/
[7]VictoriaMetric: https://docs.victoriametrics.com/
[8]只支持写,不支持读: https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage
[9]vm: https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#replication-and-data-safety
[10]cortex: https://github.com/cortexproject/cortex/blob/fe56f1420099aa1bf1ce09316c186e05bddee879/docs/architecture.md#hashing
[11]这里: https://docs.victoriametrics.com/CaseStudies.html
[12]v5.3.0: https://github.com/didi/nightingale/releases/tag/v5.3.0
[13]这里: https://www.ancii.com/at6lje4j8/
[14]Prometheus Operator: https://prometheus-operator.dev/docs/prologue/introduction/
[15]Rancher 监控和报警: https://rancher.com/docs/rancher/v2.6/en/monitoring-alerting/
[16]Kubernetes主机和容器的监控方案: https://www.kubernetes.org.cn/2432.html
[17]云原生监控神器Prometheus: https://docs.prometheus.cool/
[18]高可用 Prometheus:Thanos 实践: http://www.xuyasong.com/?p=1925
[19]使用Victoriametrics作为prometheus高可用性长期存储方案-中文版: https://blog.csdn.net/weixin_26711867/article/details/108971299
[20]使用Victoriametrics作为prometheus高可用性长期存储方案-英文版: https://medium.com/miro-engineering/prometheus-high-availability-and-fault-tolerance-strategy-long-term-storage-with-victoriametrics-82f6f3f0409e
[21]thanos vs victoria: https://blog.csdn.net/alex_yangchuansheng/article/details/108271368
[22]victoriaMetric 存储机制: https://zhuanlan.zhihu.com/p/368912946
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8