6 监控与日志

容器检查

kubectl get 和kubectl describe 查询部署状态

kubectl logs将容器的标准输出重定向到终端

kubectl top查看CPU和内存使用情况

kubectl exec 可在容器内运行shell

K8s仪表盘

整合上述数据,web可视化展示

监控k8s

应用程序:关注内部状态数据,可用分析profiling工具或跟踪tracking工具诊断

主机:监控框架提供的代理完成主机数据采集,如负载、磁盘、网络连接

外部资源:检查其他依赖组件的状态

容器:将容器相关逻辑附加到度量指标,如Pod标签、控制器名称

k8s:负责管理、调度、编排应用程序,关注k8s状态

k8s监控要点:监控栈的每层,找到对应的采集器,如cAdvisor来满足容器级别指标收集需求,聚合主机上每个运行的容器的资源使用情况和性能统计信息(cAdviser部署在主机而非容器,嵌入在kubelet中);监控栈另一个重要组件Heapster,从每个节点检索监控统计信息,主要是节点上的kubelet然后写入外部接收器;通过restfull api公开聚合度量指标

cAdvisor和Heapster专注于监控物理指标,kube-state-metrics关注逻辑状态,监控Kubernetes master节点,并将监控内容转换为Prometheus格式的指标

监控实践

Prometheus介绍

Prometheus框架包含若干组件

依靠代理从系统组件中收集统计信息,采用pull拉取模型的方式收集数据,不被动接收指标而是主动从exporter拉数据

存储后端是内嵌的LevelDB,可以切换到其他存储如InfluxDB或Graphite

Prometheus服务器负责根据预先配置的规则向警报管理器Alert Manager发送警报,警报管理器处理警报并发送作业,将警报分组并发送到消息推送工具,如电子邮件、Slack、Pagerduty

使用PromQL

三种数据类型

即时向量instant vector:数据采样的时间序列

范围向量range vector:包含特定时间范围内的数据的一组时间序列

标量scalar:具体的数值

Kubernetes目标发现

Prometheus只从它知道的端点中提取指标,要明确告诉他从哪里收集数据

路径/config是当前已配置目标的列表,默认情况下,会有一项作业(job)收集Prometheus自身的指标,位于路径/metrics下

Prometheus的默认作业被配置为静态目标,但Kubernetes中的容器是动态创建和销毁的,Prometheus通过k8s内部服务发现功能,查询运行服务的信息,并相应的将目标配置添加或删除

四种发现机制

节点发现模式:为每个节点创建一个目标,默认情况下,目标端口是kubelet的端口

服务发现模式:为每个服务对象创建目标,并且服务中的所有已定义端口将成为抓取目标

Pod发现模式:为每个pod创建目标,为每个pod保留所有已定义的容器端口

端口发现模式:发现服务创建的端口对象

Prometheus只获取集群中被标记的资源,如pod注解格式如下:

prometheus.io/scrape:true 表示应拉取这个pod

prometheus.io/path:公开指标路径,只有目标pod使用/metrics之外路径才需要配置

prometheus.io/port:如定义的端口和实际端口不同,注释覆盖

从Kubernetes收集数据

Prometheus监控步骤:

安装exporter、适当标记进行注解、自动发现端点上收集数据

Kubernetes组件其他指标

Kubernetes API服务器:在/metrics处显示其状态,默认情况此目标会启动

kube-controller-manager:端口10252

kube-scheduler:端口10251

kube-dns:两个容器dnsmasq、sky-dns,端口10054、10055

etcd:端口4001

nginx Ingress控制器:端口10254

使用Grafana查看指标

Grafana查看Prometheus指标,必须先添加数据源,连接到Prometheus服务器

配置参数:

示例:

日志

日志系统主要组件

日志代理:程序的抽象层,收集、转换、分发日志到后端

日志后端:存储接收到的日志

三种日志记录方式

将所有内容发送到stdout/stderr

写入日志文件

将日志发送到日志代理或直接记录到后端

日志聚合模式

节点代理方式收集日志

kubectl logs查看的消息是从容器stdout/stderr重定向输出的

kubectl log从kubelet获取日志,kubelet将日志从容器引擎聚合到主机的/var/log/containers.

配置日志代理从系统、Kubernetes、Master和节点上的/var/log下的各组件收集日志

如kube-proxy.log、kube-apiserver.log、kube-scheduler.log、kube-controller-manager.log、etcd.long

Sidecar容器方式转发日志

每个应用程序的pod都有两个容器共享相同的emptyDir卷,Sidecar容器可以跟踪应用程序容器中的日志并将它们发送到Pod之外,利用Sidecar容器将日志输出到标准流

获取Kubernetes事件

Eventer可以帮助观察k8s API服务器并将事件聚合到日志记录接收器中

Eventer是Heapster的一部分,支持ES、InfluxDB、Riemann、Google Cloud Logging作为接收器

Fluentd和Elasticsearch日志

日志系统和监控系统架构:采集器、存储、用户界面

相应组件:Fluentd\Eventer、ES、Kibana

ES:文本搜索和分析引擎,是数据存储、处理和分析的理想选择

Fluentd:较低内存占用空间,满足日志代理选项,FluentBit 可资源利用最小化

从日志中提取指标

构建针对Kubernetes上应用程序的监控和日志系统

Prometheus善于处理时间序列数据,但没法提取文本

mtail、GrokExporter等工具会计算日志条目,并将这些数字组织到指标中,以便可以在Prometheus中处理它们

总结

kubectl获取容器运行状态

Prometheus为核心构建监控系统,通过Exporter收集Kubernetes指标,Grafana可视化监控数据

EFK堆栈来处理日志,ES存储日志,Kibana可视化日志

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容