06 k8s服务层event监控及报警 - xiaoxin01/Blog GitHub Wiki

本文介绍如何监控k8s服务层event及报警

问题

应用或服务部署到k8s集群时,首先会经过k8s的调度,这个过程可能会出现一些问题,比如 volume 无法正常挂载,没有足够的资源部署服务,服务异常退出等。

如何及时了解这些问题,保证服务正常运行?

监控层级

监控k8s集群,大致分为下面3个层级:

Yz3BuD.png

应用或服务部署到k8s集群时,k8s服务层会产生一系列的event事件,通过监控这些事件的类型,可以掌握服务状况

k8s event

k8s event是一种资源类型,当其他资源具有状态更改,错误或应向系统广播的其他消息时,会自动创建该资源类型。在调试Kubernetes集群中的问题时,它们是重要的渠道。

通过 kubectl get events 指令,可以看到集群当前的部分事件列表:

event源代码也可以看到有哪些event类型

type=Normal的event相当于应用层的 log.Info,比较有用的信息是 type=Warning的,可以加上过滤条件:

kubectl get events --field-selector type=Warning

可以通过Reason栏位看到更详细的信息,通过此栏位,可以根据我们服务的实际情况,来筛选出需要监控和报警的event

event 收集

使用kubernetes-event-exporter,可以方便的在k8s集群部署event收集服务并将其发送到 elasticsearch。

需要注意的是,目前该工具使用的是 elasticsearch 7.x 的api,并不兼容以下的版本。

使用 grafana 监控 event 和设定报警

参考

⚠️ **GitHub.com Fallback** ⚠️