12 可观测性:监控与日志

背景

监控和日志是大型分布式系统的重要基础设施,监控可以帮助开发者查看系统的运行状态,而日志可以协助问题的排查和诊断。

在k8s中,监控和日志属于生态的一部分,并不是核心组件,因此大部分的能力依赖上层的云厂商的适配。k8s定义了解毒的接口规范和标准,任何符合接口标准的组件都可以快速集成。

监控

监控的类型

  • 资源监控
    • CPU、内存、网络等资源类的指标,常以数值、百分比为单位进行统计,是最常见的资源监控方式。
  • 性能监控
    • 应用的内部监控,通常是通过Hook的机制在虚拟机层、字节码执行层隐式回调,或者在应用层显示注入,获取更深层次的监控指标,常用来应用诊断和调优
  • 安全监控
    • 针对安全进行的一系列监控策略,例如越级监控、安全漏洞扫描等
  • 事件监控
    • k8s中另一类的监控方式,紧密贴合k8s的设计理念,补充常规监控方案的欠缺与弊端

k8s的监控演进

早期:每个kubelet上有一个cadvisor采集信息,Heapster定期拉去数据,进行聚合,暴露接口供查询。

 

K8s监控接口标准

通过APIServer Aggregated API注册了三种不同的metrics接口,将监控的消费能力进行标准化和解耦,从而实现了与社区的融合

Prometheus-开源社区的监控“标准”

  • 简洁强大的接入标准
  • 多种数据采集、离线方式
  • k8s的兼容
  • 丰富的插件机制与生态
  • prometheus operator的助力

kube-eventer-k8s事件离线工具

日志

日志的场景

  • 主机内核的日志
    • 主机内核日志可以协助开发者诊断例如:网络栈异常,驱动异常,文件系统异常,影响节点(内核)稳定的异常
  • Runtime的日志
    • 最常见的运行时时Docker,可以通过Docker的日志排查例如删除Pod Hang等问题
  • 核心组件的日志
    • APIServer日志可以用来审计,Sheduler日志可以诊断调度,etcd日志可以查看存储状态,ingress日志可以分析接入层流量
  • 部署应用的日志
    • 可以通过应用日志分析查看业务层的状态,诊断异常

日志的采集

从采集位置上划分,需要支持如下三种:

Fluentd日志采集方案

总结

阿里云容器服务监控体系

阿里云容器服务日志体系

总结

  • 监控
    • 四种容器场景下常见的监控方式
    • k8s监控的演进与接口标准
    • 两种常见的开源监控方案
  • 日志
    • k8s日志的四种不同场景
    • Fluentd日志采集方案

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值