06-k8s服务层event监控及报警(代码片段)

windchen windchen     2022-12-13     261

关键词:

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

问题

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

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

监控层级

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

技术图片

应用或服务部署到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 和设定报警

在grafana中设定好 elasticsearch 的 source,然后在dashboard中建立Graph 图表(Grafana的Alert功能目前只支持 Graph 图表)。

可以通过下面两个指标来设定报警:

  • type.keyword
  • reason.keyword

type

部分值:

  • Warning
  • Normal

Warning基本上就是k8s的调度没有按照预期执行,只要有该类型的event,就可以发出alert

reason

部分值:

  • UPDATE
  • SuccessfulDelete
  • SuccessfulCreate
  • Started
  • Scheduled
  • ScalingReplicaSet
  • SawCompletedJob
  • Pulling
  • Pulled
  • Killing
  • FailedMount
  • Failed
  • Created
  • BackOff

可以根据服务的场景来确定需要alert的reason

Alert设定

  1. 在Panel中添加query:_index:[index-name] AND type:Warning
  2. Visualization选择graph
  3. Alert
    1. Rule设定规则,Evaluate every 1m For 2m,表示每1分钟计算一次,第3次计算仍然满足报警条件,则发出Alert
    2. Conditions设定报警条件,WHEN avg () OF query (A, 5m, now) IS ABOVE 0,表示检查5分钟内是否有Warning的Event
    3. Notifications设定Alert渠道,可以用webhook来发送消息到Server酱,调试webhook可以用在线工具webhook.site

参考

阿里云环境迁移记录-服务监控及报警(代码片段)

服务监控的方案有很多,譬如naigos,zabbix这种,不但可以监控服务,还可以监控cpu、内存、磁盘、网络流量、服务端口等,关于naigos和zabbix的搭建配置,需要另外篇幅介绍,这里使用服务器自身的定时任务+脚本+邮件功能完成一... 查看详情

在lamp架构中部署zabbix监控系统及邮件报警机制(代码片段)

初步了解zabbix:Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方... 查看详情

05zabbix邮件报警(代码片段)

Zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常,通过查看Zabbix监控服务器,可以了解服务器的运行状态是否正常,运维人员不会时刻登录Zabbix监控平台刷新,查看服务器的状态。可以在Zabbix... 查看详情

nagios监控(代码片段)

...机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。Nagios和cacti有什么区别呢?简单的来说cacti主要监控流量,服... 查看详情

zabbix邮件报警及自定义脚本实战(代码片段)

...gent部署与zabbixweb配置>的又一后续补充篇,众所周知作为监控系统主要就是数据采集,监控数据存储,再根据监控数据进行判断产生事件,进行报警通知管理员,同时通过展示接口进行数据的展示;本文主要关注zabbix的报警系统的实现... 查看详情

zabbix安装配置及邮件报警(代码片段)

目录环境一、zabbix服务器的安装1.部署LAMP架构1.1安装依赖包1.2修改配置文件1.3启动apache和mariadb1.4初始化数据库1.5验证php网页是否可以打开1.6对zabbix用户授权1.7验证php和mysql的联动性2.部署zabbix服务器2.1添加zabbix源2.2安装zabbix服务... 查看详情

zabbix安装配置及邮件报警(代码片段)

目录环境一、zabbix服务器的安装1.部署LAMP架构1.1安装依赖包1.2修改配置文件1.3启动apache和mariadb1.4初始化数据库1.5验证php网页是否可以打开1.6对zabbix用户授权1.7验证php和mysql的联动性2.部署zabbix服务器2.1添加zabbix源2.2安装zabbix服务... 查看详情

微服务监控和报警-prometheus简介及环境搭建(代码片段)

...们的配置去用于收集和存储时间序列数据。Servicediscovery服务的发现,通过Servicediscovery,Prometheusserver就会知道去哪里采集数据,有两种方式,一种是静态的,通过文件去配;另外一种是动态的,可以通过zookeeper或者其他的配置中... 查看详情

超详细配置zabbix监控通过钉钉实现报警(3.4和4.0版本)(代码片段)

...添加到刚刚创建的群组,安全设置选IP地址,需要在zabbix服务获取出口IP地址[root@centos01alertscripts]#curlip.sb183.199.188.2055)保存获取的wehookhttps://oapi.dingtalk.com/robot/send?access 查看详情

zabbix搭建-服务监控报警与自动恢复(代码片段)

#zabbix部署参考https://www.cnblogs.com/itbox/p/12142066.html#关闭防火墙systemctldisablefirewalld.service#关闭Selinuxvim/etc/selinux/configSELINUX=diabled#安装apacheyum-yinstallhttpd#启动并设置为自启动systemctlenablehttpdsy 查看详情

8.kong入门与实战基于nginx和openresty的云原生微服务网关---指标监控与报警(代码片段)

第 8章指标监控与报警  常见的监控指标有,cpu使用率,内使用率,GC,磁盘IO,网络流量,网络延迟,请求速度,请求排队,链接数,用户态与内核态的上下文切换等。 指标监控和报警主要分为以下6个方面: 1.采集指标数据... 查看详情

zabbix监控模板修改及调优(不完整版)(代码片段)

...间的访问质量(如我们之前介绍的全国maps网络监控);服务器监控,了解服务器各项性能参数(如常见的zabbix、cacti、nagios、ganglia等);应用性能监控,深入监测具体业务的性能情况(如我们之前提到的APM监控系统)其中,服... 查看详情

nagios监控(代码片段)

...、Nagios的安装五、Nagios配置文件介绍六、监控本机的公共服务七、监控远程主机的公有服务八、监控远程主机的私有服务九、实现邮件报警Nagios监控课程目标:了解监控端重要性能够说出企业里常用端监控软件了解Nagios的工作原... 查看详情

微服务监控和报警-自定义metrics指标监控(代码片段)

...新启动时递增或重置为零。例如,可以使用计数器表示已服务的请求数、已完成的任务数或错误数。1.2、Gauge:是一种度量,它表示一个可以任意上下移动的数值。例如,温度或当前内存使用量。1.3、Histogram:直方图对观察结果... 查看详情

监控软件zabbix之配置qq邮箱报警机制(代码片段)

...篇继续讲解如何配置邮件报警机制;本篇我就在此前zabbix服务端和客户端都已经配置好的基础上进行试验;在监控主机上进行配置:1.使用yum安装mailx邮箱服务:*yuminstallmailx-y2.安装完后在末行加入以下配置:*vim/etc/mail.rc#注意网... 查看详情

zabbix监控平台深入了解(代码片段)

Zabbix监控(二)深入了解一,ZabbixWeb操作深入1.1ZabbixWeb下的主机和模版以及监控项的添加方式1.2ZabbixWeb下触发器与表达式的编写方法1.3ZabbixWeb创建触发器过程以及触发器与监控项对应关系1.4再创建一个监控项同时创建它的触发器... 查看详情

zabbix安装配置及邮件报警(代码片段)

Zabbix安装配置及邮件报警环境zabbix192.168.80.4/24centos7.6linux192.168.80.1/24centos7.6windows192.168.80.50/24一、zabbix服务器的安装1.部署LAMP架构1.1安装依赖包[root@zabbix~]#yuminstall-yhttpdmariadb-servermariadbphpphp-mysql 查看详情

磁盘监控报警并发邮件(代码片段)

#!/bin/sh#autodiskmonitor#byzkg2019-07-15echo-e" 查看详情