1. Prometheus + Grafana 组合
这是 Ubuntu Kubernetes 集群最主流的监控解决方案,专注于时间序列指标收集与可视化。Prometheus 作为开源监控系统,通过 Kubernetes 服务发现自动采集集群节点、Pod、容器、网络等指标(如 CPU、内存、磁盘使用率、请求延迟),并支持灵活的 PromQL 查询语言;Grafana 则作为可视化工具,通过 Prometheus 数据源创建自定义仪表盘(如集群资源概览、Pod 状态趋势、应用性能指标),还能设置告警规则(如实例宕机、资源阈值超标)。两者结合能满足从基础监控到高级可视化的需求,且均有活跃社区支持,适合需要高度定制化的场景。
2. ELK Stack(Elasticsearch + Logstash + Kibana)
主要用于集群日志收集、分析与可视化。Elasticsearch 存储和处理日志数据,Logstash 作为数据管道负责采集(从容器 stdout/stderr、系统日志等)、过滤(提取关键字段如 timestamp、log level)和转发,Kibana 则提供日志搜索、分析和可视化界面(如日志趋势图、错误统计、按 namespace/pod 筛选)。该组合适合需要集中管理日志、排查应用故障(如通过日志定位容器崩溃原因)的场景,但配置相对复杂,资源消耗较大。
3. cAdvisor
Kubernetes 内置的容器资源监控代理,默认集成在 Kubelet 中,无需额外部署。它能自动发现节点上所有运行的容器,收集 CPU、内存、磁盘 I/O、网络带宽等基础指标,并通过 Kubernetes API 暴露给 Prometheus 等监控系统。cAdvisor 适合快速获取容器级别的资源使用情况,是监控集群的基础工具,但功能有限(如无告警、无高级分析),通常作为其他监控系统的补充。
4. kube-state-metrics
Kubernetes 原生对象状态指标生成器,监听 Kubernetes API Server,生成集群中各种资源对象(如 Pod、Deployment、Service、Node、PersistentVolume)的状态指标(如 Pod 是否 Running、Deployment 副本数是否达标、Node 是否 Ready)。这些指标以 Prometheus 格式暴露,可与 Prometheus 集成,用于监控集群资源的状态变化(如 Deployment 扩缩容事件、Node 不可用)。它是 Kubernetes 监控体系中不可或缺的一部分,适合需要了解集群资源状态的场景。
5. Jaeger
针对分布式追踪的开源工具,用于监控微服务架构下的请求链路。在 Ubuntu Kubernetes 集群中,Jaeger 可追踪请求从入口(如 Ingress)到各个微服务(Pod)的完整路径,记录请求延迟、错误、调用次数等信息,帮助开发者快速定位性能瓶颈(如某个微服务响应慢导致整体请求延迟)或故障根源(如服务间调用失败)。Jaeger 支持 OpenTracing 标准,与 Kubernetes 无缝集成(可通过 DaemonSet 部署 Agent 采集数据),适合微服务场景的性能优化和故障排查。
6. Weave Scope
提供集群可视化与交互式管理的工具,通过直观的拓扑图展示 Kubernetes 集群的结构(如节点、Pod、容器、服务之间的关系),并能实时监控资源使用情况(如 CPU、内存)。用户可直接在界面中运行诊断命令(如进入容器查看日志、重启容器、删除 Pod),快速解决问题。Weave Scope 适合需要快速了解集群状态、进行日常运维管理的场景,尤其是新手用户,能降低监控门槛。
7. Fluentd/Fluent Bit
日志收集与转发工具,作为 CNCF 项目,与 Kubernetes 深度集成。Fluentd 功能全面(支持多种输入/输出插件,如文件、syslog、Kafka),适合大规模集群;Fluent Bit 更轻量(资源消耗低),适合边缘计算或资源受限的场景。两者都能采集容器日志,附加 Kubernetes 元数据(如 namespace、pod name、container ID),并转发到日志存储系统(如 Elasticsearch、S3)或其他分析工具(如 Fluentd 可转发到 Kafka 进行流处理)。它们适合需要灵活日志收集和转发的场景,是 ELK 或其他日志系统的前置组件。
8. kube-ops-view
集群运行状态可视化工具,以只读方式展示 Kubernetes 集群的整体状态(如节点健康度、Pod 运行状态、资源使用率)。它通过 Kubernetes API 获取数据,提供直观的 Web 界面,帮助管理员快速了解集群的健康状况(如哪些节点宕机、哪些 Pod 异常)。kube-ops-view 不支持告警或详细分析,适合需要快速查看集群状态的场景,尤其是运维人员日常巡检。