用甲骨文云OCI日志分析监控Kubernetes和OKE集群,提升云管理效率
2024-03-07
原创文章
Kubernetes提供了一个高度稳健且极其可定制的平台,用于自动部署和扩展容器化工作负载。为这个整体环境构建监控和故障排除系统是一个非常具有挑战性的任务,可能会占用开发和IT团队的宝贵时间。许多基于Kubernetes的项目由于缺乏与之相辅相成的监控解决方案而无法启动,这些解决方案需要同样的稳健、可定制、可扩展,并且能够自动部署。Oracle云基础设施(OCI)日志分析通过提供一键式端到端的Kubernetes监控解决方案,弥补了这一监控差距,适用于底层基础设施、Kubernetes平台和云原生应用程序。基于Kubernetes的环境可以分为三个层次,每个层次包含众多不断演进的组件,这些组件由业务需求驱动。
- 基础设施层:包含众多组件,包括网络资源、计算实例和Kubernetes节点宿主。
- Kubernetes平台层:包含各种Kubernetes服务,如网络、kubelet服务和DNS,这些服务为Kubernetes平台提供动力。
- 应用层:包含不同的技术、数据库和应用程序。
架构
此架构展示了如何使用Oracle云基础设施(OCI)日志分析来监控Kubernetes平台和云原生应用程序。
为整个环境构建监控和故障排除系统是一个非常具有挑战性的任务,可能会占用开发和IT团队的宝贵时间。许多基于Kubernetes的项目由于缺乏与之相辅相成的监控解决方案而无法启动,这些解决方案需要同样的稳健、可定制、可扩展,并且能够自动部署。OCI日志分析通过提供一键式端到端的Kubernetes监控解决方案,弥补了这一监控差距,适用于底层基础设施、Kubernetes平台和云原生应用程序。
下图是Oracle云基础设施单一地区中Kubernetes集群的示例拓扑,如《在Oracle云上部署容器化应用程序的Kubernetes集群设置》解决方案手册中所讨论的。图中展示了基础设施层,而第二张图突出显示了Kubernetes和应用层。

下图展示了这一参考架构,用于通过日志分析进行Kubernetes监控。这个解决方案提供了将Kubernetes集群的各种日志收集到OCI日志分析中,并在收集的日志上提供丰富的分析功能。用户可以通过修改现成的配置来自定义日志收集。

架构包括以下组件:
租户
- 租户是Oracle在您注册Oracle云基础设施时,在Oracle云中设置的一个安全且独立的分区。您可以在租户内创建、组织和管理您的Oracle云资源。租户相当于公司或组织。通常,一家公司会有一个单独的租户,并在该租户内反映其组织结构。一个单独的租户通常与一个订阅关联,而一个订阅通常只有一个租户。
地区
- Oracle云基础设施地区是一个地理位置集中的区域,包含一个或多个数据中心,称为可用性域。地区彼此独立,距离可能非常遥远(跨越国家甚至大洲)。
分区
- 分区是Oracle云基础设施租户内跨地区的逻辑分区。使用分区来组织Oracle云中的资源,控制对资源的访问,并设置使用配额。要控制对特定分区中资源的访问,您需要定义策略,指定谁可以访问资源以及他们可以执行哪些操作。
虚拟云网络(VCN)和子网
- VCN是您在Oracle云基础设施地区中设置的可自定义的软件定义网络。与传统数据中心网络一样,VCN让您完全控制您的网络环境。VCN可以有多个不重叠的CIDR块,您可以在创建VCN后更改这些块。您可以将VCN细分为子网,子网可以限定在一个地区或一个可用性域。每个子网由一系列不与VCN中其他子网重叠的地址组成。您可以在创建后更改子网的大小。子网可以是公共的或私有的。
负载均衡器
- Oracle云基础设施负载均衡服务提供了从单个入口点到后端多个服务器的自动流量分配。
服务网关
- 服务网关提供从VCN到其他服务(如Oracle云基础设施对象存储)的访问。从VCN到Oracle服务的流量通过Oracle网络结构传输,不经过互联网。
日志分析
- 日志分析是一项在超过27个地区提供的完全托管的SaaS区域服务,提供来自任何运行在本地、OCI或第三方云上的IT组件的日志的收集、索引、丰富、查询、可视化和报警。
日志分析源
- 日志分析的配置资源,为解析、提取、标记、数据屏蔽和其他丰富功能提供规范,以确保日志被正确摄取和索引以进行分析和监控。此架构使用了超过30个预定义源,适用于Kubernetes服务、应用程序和对象。这些源持续增强,以提供更深入的分析能力。
Kubernetes系统Pods
- Kubernetes系统Pods是在Kubernetes中可以创建和管理的小型可部署计算单元。一个Pod是一个或多个容器,具有共享存储和网络资源,以及运行容器的规则。
用户Pods
- 在Kubernetes集群上启动的应用程序。所有写入STDOUT/STDERR的应用程序Pod的日志通常可在/var/log/containers/下找到。具有自定义日志处理程序的应用程序可能会以不同方式路由其日志,但通常可在节点上通过卷访问。
控制平面服务和Pods
- Kubernetes平台控制平面服务和Pods。控制平面管理Kubernetes集群中的工作节点和Pods。工作节点运行容器化应用程序。每个集群至少有一个工作节点。工作节点托管组成应用程序工作负载的组件的Pods。
节点操作系统服务
- 在安装了Kubernetes的实例上运行的Linux服务。收集操作系统服务的日志。
日志和对象收集器Pods
- 日志和对象收集器Pods由副本集、FluentD和守护进程集合组成。
- FluentD收集器FluentD是一款开源数据收集器,提供了数据源与后端系统之间的统一日志层。它允许统一数据收集和消费,用于构建数据处理管道。这一架构使用作为守护进程集和副本集在Kubernetes集群上运行的容器化FluentD容器。它使用日志分析FluentD输出插件将日志上传到Oracle云日志分析。
- 日志分析FluentD插件连接到您租户中的Oracle云日志分析服务的FluentD输出插件,用于上传或摄取FluentD收集器收集的日志。
- Kubernetes对象Kubernetes对象是Kubernetes系统中的持久实体。Kubernetes使用这些实体来表示集群的状态。在这一架构中,以下Kubernetes对象状态作为日志收集,用于历史分析和故障排除:
- Kubernetes守护进程集Kubernetes守护进程集是在Kubernetes上运行的一种工作负载类型,确保所有(或部分)节点运行一个Pod的副本。随着节点被添加到集群中,Pods会被添加到它们上面。当节点从集群中移除时,这些Pods会被垃圾回收。
- Kubernetes副本集Kubernetes副本集是在Kubernetes上运行的一种工作负载类型。它维护在任何给定时间运行的一组稳定的副本Pods。因此,它通常用于保证一定数量的相同Pods的可用性。
Kubernetes容器引擎
- Oracle云基础设施容器引擎为Kubernetes是一个完全托管的、可扩展的、高可用的服务,您可以使用它将容器化应用程序部署到云上。您指定应用程序所需的计算资源,容器引擎为Kubernetes将它们预置在Oracle云基础设施的现有租户中。容器引擎使用Kubernetes自动部署、扩展和管理跨主机集群的容器化应用程序。
服务连接器
- 服务连接器中心是一个云消息总线平台。您可以使用它在Oracle云基础设施中的服务之间移动数据。数据通过服务连接器移动。服务连接器指定包含待移动数据的源服务、对数据执行的任务以及在完成指定任务后必须交付数据的目标服务。在这一架构中配置了一个服务连接器,用于收集网络和负载均衡器日志。
OCI服务
- Oracle云基础设施(OCI)服务是一个云服务平台,使您能够在高可用、性能一致的环境中构建和运行广泛的应用程序。
服务和审计日志
- 服务和审计日志在OCI日志服务中被捕获。OCI日志是一种高度可扩展且完全托管的服务,用于通过服务连接器访问VCN和负载均衡器服务日志。 默认情况下,收集了Kubernetes系统服务日志和Kubernetes对象数据。
OKE或Kubernetes内置了多种服务,每种服务都有不同的职责,并在集群中的一个或多个节点上以部署或守护进程集的形式运行。

建议
以下建议可作为起点。您的需求可能与此处描述的架构不同。
日志组
- 应定义多个日志组,以提供不同团队的正确访问权限,并避免共享敏感数据。日志组可以基于Oracle E-Business Suite、数据库、OCI基础设施、主机日志等。
成本管理
- 日志分析服务的收费基于活动存储和归档存储中数据的容量。为了便于日常问题的排查并利用异常检测、模式检测和其他机器学习功能,我们建议将活动存储期限设为90天,并将超过90天的日志移至归档存储。归档存储的日志可以根据需求快速恢复。
FluentD多工作模式
- FluentD应配置为多工作模式,用于处理时间敏感的日志。
自定义应用程序日志
- 此解决方案自动捕获在Kubernetes集群中运行的应用程序生成的所有日志。默认情况下,这些日志被映射到Kubernetes通用容器日志日志源。
- 应在Oracle云基础设施日志分析中创建特定于应用程序日志的解析器、源和丰富功能,以提取所需字段并将问题标签附加到日志上。
认证
- 该架构支持实例主体和Oracle云基础设施配置文件基础的认证。对于Oracle容器引擎Kubernetes(OKE),推荐使用基于实例主体的认证。
考虑因素
性能
- 查询性能基于时间范围和操作数量,如过滤器、分组等。为了获得更好的查询性能,建议在摄取时用特定标签和字段丰富日志。这是IT运营持续改进的一部分。
安全性和角色基访问控制(RBAC)
- 自定义日志源定义以过滤任何个人身份信息(PII)数据,并启用地理位置丰富。
可用性
- Oracle云日志分析是一个完全托管的高可用SaaS服务。
部署
用于部署日志分析守护进程集和副本集的Kubernetes清单和helm图表可在GitHub上获取。
- 访问GitHub。
- 克隆或下载仓库到您的本地计算机。
- 按照README文档中的说明操作。
开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴
作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。
Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。
利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。
Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。