tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

TKE 审计日志分析

PDF
聚焦模式
字号
最后更新时间: 2024-01-20 17:28:40

概述

以前,排查这些问题,对用户来说并不容易。生产环境中的 Kubernetes 集群通常是一个相当复杂的系统,底层是各种异构的主机、网络、存储等云基础设施,上层承载着大量的应用负载,中间运行着各种原生(例如:Scheduler、Kubelet)和第三方(例如:各种 Operator)的组件,负责对基础设施和应用进行管理和调度; 此外不同角色的人员频繁地在集群上进行部署应用、添加节点等各种操作。因此在集群运维场景中, 用户常见的问题有:
集群中的某个应用被删除了,谁干的?
Apiserver 的负载突然变高,大量访问失败,集群中到底发生了什么?
集群节点被封锁了,是谁在什么时候操作的?
当前日志服务(Cloud Log Service,CLS)与 容器服务(Tencent Kubernetes Engine,TKE) 已实现打通。 其中,Kubernetes 审计日志(Audit)将是可以帮助用户快速解决以上这些问题的重要工具。

什么是审计日志

在 Kubernetes 中,所有对集群状态的查询和修改都是通过向 Apiserver 发送请求,而审计日志是 Kube-apiserver 产生的可配置策略的结构化日志,记录了对 Apiserver 的访问事件。通过查看、分析审计日志,可以追溯对集群状态的变更;了解集群的运行状况;排查异常;发现集群潜在的安全、性能风险等等。

审计日志字段说明

每一条审计日志都是一个 JSON 格式的结构化记录,包括元数据(metadata)、请求内容(requestObject)和响应内容(responseObject)3个部分。其中元数据一定会存在,请求和响应内容是否存在取决于审计级别。元数据包含了请求的上下文信息,例如谁发起的请求,从哪里发起的,访问的 URI 等等。
img



如何使用审计日志去排查问题

CLS 提供针对 kubernetes 审计日志的一站式服务,包含采集,存储,检索分析能力。用户仅需一键开启集群审计日志功能,即可获取开箱即用的审计日志可视化分析仪表盘。通过可视化的图表,用户可以轻松通过控制台解决大多数常见的运维问题。

前提条件

已购买 TKE,并开启集群审计日志,详情请参考 操作指南

场景1:集群中的某个应用被删除了,谁操作的?

1. 登录 TKE 控制台
2. 在左侧导航栏中,单击集群运维 > 审计检索
3. 在审计检索页面,单击K8S对象操作概览标签,指定操作类型为 delete 和资源对象 nginx。
查询结果如下图所示:
由图可见,是 10001****7138 这个账号,对应用「nginx」进行了删除。可根据账号 ID 在访问管理 > 用户列表中找到关于此账号的详细信息。

场景2:Apiserver 的负载突然变高,大量访问失败,集群中到底发生了什么?

1. 登录 TKE 控制台
2. 在左侧导航栏中,单击集群运维 > 审计检索
3. 在审计检索页面,单击聚合检索标签,该页签提供了从用户、操作类型、返回状态码等多个维度对于 Apiserver 访问聚合趋势图。
通过以上图表得知,用户tke-kube-state-metrics的访问量远高于其他用户,并且在“操作类型分布趋势”图中可以看出大多数都是 list 操作,在“状态码分布趋势”图中可以看出,状态码大多数为403,根据tke-kube-state-metrics关键词,检索日志。
结合业务日志可知,由于 RBAC 鉴权问题导致tke-kube-state-metrics组件不停的请求 Apiserver 重试,导致 Apiserver 访问剧增。

场景3:集群节点被封锁了,是谁在什么时候操作的?

1. 登录 TKE 控制台
2. 在左侧导航栏中,单击集群运维 > 审计检索
3. 在审计检索页面,单击节点操作概览标签,填写被封锁的节点名。
查询结果如下图所示:
由图可见,是10001****7138这个账号在2020-11-30T06:22:18时对172.16.18.13这台节点进行了封锁操作。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈