当前位置:主页 > 查看内容

自建Kubernetes集群如何接入事件通知告警

发布时间:2021-05-14 00:00| 位朋友查看

简介:报警配置功能提供容器场景报警能力的统一管理 包括容器服务异常事件报警 以及容器场景指标报警 支持在创建集群时默认开启报警功能。容器服务的报警规则支持通过集群内部署CRD的方式配置管理。本文介绍如何接入报警配置功能及授予报警功能资源的访问权限。 功……

报警配置功能提供容器场景报警能力的统一管理 包括容器服务异常事件报警 以及容器场景指标报警 支持在创建集群时默认开启报警功能。容器服务的报警规则支持通过集群内部署CRD的方式配置管理。本文介绍如何接入报警配置功能及授予报警功能资源的访问权限。


功能使用场景

容器服务报警配置功能集合容器场景的监控报警能力 提供报警的统一配置管理 有如下几个典型的使用场景

集群运维可以通过监控报警第一时间了解集群管控、存储、网络、弹性扩缩容等异常事件。例如 可通过配置并查看集群异常事件报警规则集感知集群节点或容器节点通用异常 通过配置并查看集群存储异常事件报警规则集感知集群存储的变更与异常 通过配置并查看集群网络异常事件报警规则集感知集群网络的变更与异常 通过配置并查看集群管控运维异常报警规则集感知集群管控的变更与异常等。
应用开发可以通过监控报警第一时间了解在集群中运行应用的异常事件、指标是否异常。例如 集群容器副本异常或者应用Deployment的CPU、内存水位指标是否超过阈值等。可通过开启报警配置功能中的默认报警规则模板 即可快速接受集群内应用容器副本的异常事件报警通知。例如 通过配置并订阅关注集群容器副本异常报警规则集感知所属应用的Pod是否异常。
应用管理关注运行在集群上的应用健康、容量规划、集群运行稳定性及异常甚至是错误报警等贯穿应用生命周期的一系列问题。例如 通过配置并订阅关注集群重要事件报警规则集感知集群内所有Warning、Error等异常报警 关注集群资源异常报警规则集感知集群的资源情况 从而更好地做容量规划等。
多集群管理当您有多个集群需要管理 为集群配置报警规则往往会是一个重复繁琐且难以同步的操作。容器服务报警配置功能 支持通过集群内部署CRD配置的方式管理报警规则。可通过维护多个集群中同样配置的CRD资源 来方便快捷地实现多集群中报警规则的同步配置。


前提条件您需要创建一个注册集群 并将自建Kubernetes集群接入注册集群。具体操作 请参见创建阿里云注册集群并接入自建Kubernetes集群


步骤一 在自建集群中配置报警组件RAM权限

在注册集群中安装组件前 您需要在接入集群中设置AK用来访问云服务的权限。设置AK前 您需要创建RAM用户并为其添加访问相关云资源的权限。

创建RAM用户。有关如何创建RAM用户的具体步骤 请参见创建RAM用户。创建权限策略。有关创建权限策略的具体操作步骤 请参见创建自定义策略。请授权RAM权限如下所示
{
 Action : [
 log:* ,
 arms:* ,
 cs:UpdateContactGroup 
 Resource : [
 Effect : Allow 
}
为RAM用户添加权限。有关如何为RAM用户授权的具体步骤 请参见为RAM用户授权。为RAM用户创建AK。有关如何为子账户创建AK 请参见获取AccessKey。使用AK在自建Kubernetes集群中创建名为alibaba-addon-secret的Secret资源 步骤二中安装事件中心相关组件时将自动引用此AK访问对应的云服务资源。
kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal access-key-id your access key id --from-literal access-key-secret your access key secret 

您需要将上述代码中和替换为您获取的AK信息。


步骤二 组件安装与升级

控制台会自动检测报警配置环境是否符合要求 并会引导进行开通或安装、升级组件。

登录容器服务管理控制台。在控制台左侧导航栏中 单击集群。在集群列表页面中 单击目标集群名称或者目标集群右侧操作列下的详情。在集群管理页左侧导航栏 选择运维管理 报警配置。在报警配置页面控制台会自动检查以下条件。若不符合条件 请按以下提示完成操作。已开通SLS日志服务云产品。当您首次使用日志服务时 需要登录日志服务控制台 根据页面提示开通日志服务。已安装事件中心。具体操作 请参见事件监控。集群托管组件alicloud-monitor-controller升级到最新版本。更多信息 请参见alicloud-monitor-controllerimage.png如何接入报警配置功能

步骤一 开启默认报警规则

可在注册集群开启对应报警规则。

在目标集群左侧导航栏选择运维管理 报警配置配置管理。在报警规则管理页签 打开启动状态可开启对应报警规则集。

image.png

步骤二 手动配置报警规则

可进行报警规则、联系人和联系人分组管理。

登录容器服务管理控制台。在控制台左侧导航栏中 单击集群。在集群列表页面中 单击目标集群名称或者目标集群右侧操作列下的详情。在集群管理页左侧导航栏 选择运维管理 报警配置。功能特性说明报警规则管理容器服务报警规则功能会默认生成容器场景下的报警模板 包含异常事件报警、异常指标报警 。报警规则被分类为若干个报警规则集 可为报警规则集关联多个联系人分组 并启动或关闭报警规则集。报警规则集中包含多个报警规则 一个报警规则对应单个异常的检查项。多个报警规则集可以通过一个YAML资源配置到对应集群中 修改YAML会同步生成报警规则。关于报警规则YAML配置 请参见如何通过CRD配置报警规则。关于默认报警规则模板 请参见默认报警规则模板。报警历史目前可查看最近发送的近100条历史记录。单击对应报警报警规则类型的链接 可跳转到对应监控系统中查看详细规则配置 单击对应报警排查现场的链接可快速定位到异常发生的资源页面 异常事件、指标异常的资源 。联系人管理对联系人进行管理 可创建、编辑或删除联系人。联系人分组管理对联系人分组进行管理 可创建、编辑或删除联系人分组。当无联系人分组时 控制台会从您的阿里云账号注册信息中同步创建一个默认联系人分组。在报警规则管理页签 单击编辑联系人分组可设置关联的联系人分组 打开启动状态可开启对应报警规则集。


如何通过CRD配置报警规则

报警配置功能开启时 会默认在kube-system Namespace下创建一个AckAlertRule类型的资源配置 包含默认报警规则模板。容器服务报警规则集可通过此资源配置在集群中。

登录容器服务管理控制台。在控制台左侧导航栏中 单击集群。在集群列表页面中 单击目标集群名称或者目标集群右侧操作列下的详情。在集群管理页左侧导航栏 选择运维管理 报警配置。在报警规则管理页签中 单击右上角编辑报警配置 可查看当前集群中的AckAlertRule资源配置 并可通过YAML文件修改。报警规则配置的YAML文件示例如下
apiVersion: alert.alibabacloud.com/v1beta1
kind: AckAlertRule
metadata:
 name: default
spec:
 groups:
 - name: pod-exceptions ## 报警规则集名。
 rules:
 - name: pod-oom ## 报警规则名。
 type: event ## 报警规则类型 枚举值为event 事件类型 、metric 指标类型 。
 expression: sls.app.ack.pod.oom ## 报警规则表达式 当规则类型为event时 表达式的值为SLS日志服务事件报警sls_event_id。
 enable: enable ## 报警规则开启状态 枚举值为enable、disable。
 - name: pod-failed
 type: event
 expression: sls.app.ack.pod.failed
 enable: enable
默认报警规则模板

在以下情况下ACK会默认创建相应报警规则

开启默认报警规则功能。未开启默认报警规则 首次进入报警规则页面。

默认创建的报警规则如下表所示。

规则集类型规则名ACK_CR_Rule_NameSLS_Event_IDcritical-events集群重要事件报警规则集集群error事件error-eventsls.app.ack.error集群warning事件warn-eventsls.app.ack.warncluster-error集群异常事件报警规则集集群节点docker进程异常docker-hangsls.app.ack.docker.hang集群驱逐事件eviction-eventsls.app.ack.eviction集群GPU的XID错误事件gpu-xid-errorsls.app.ack.gpu.xid_error集群节点重启node-restartsls.app.ack.node.restart集群节点时间服务异常node-ntp-downsls.app.ack.ntp.down集群节点PLEG异常node-pleg-errorsls.app.ack.node.pleg_error集群节点进程异常ps-hangsls.app.ack.ps.hangres-exceptions集群资源异常报警规则集集群节点文件句柄过多node-fd-pressuresls.app.ack.node.fd_pressure集群节点磁盘空间不足node-disk-pressuresls.app.ack.node.disk_pressure集群节点进程数过多node-pid-pressuresls.app.ack.node.pid_pressure集群节点调度资源不足node-res-insufficientsls.app.ack.resource.insufficient集群节点IP资源不足node-ip-pressuresls.app.ack.ip.not_enoughpod-exceptions集群容器副本异常报警规则集集群容器副本OOMpod-oomsls.app.ack.pod.oom集群容器副本启动失败pod-failedsls.app.ack.pod.failed集群镜像拉取失败事件image-pull-back-offsls.app.ack.image.pull_back_offcluster-ops-err集群管控运维异常报警规则集无可用LoadBalancerslb-no-avasls.app.ack.ccm.no_ava_slb同步LoadBalancer失败slb-sync-errsls.app.ack.ccm.sync_slb_failed删除LoadBalancer失败slb-del-errsls.app.ack.ccm.del_slb_failed删除节点失败node-del-errsls.app.ack.ccm.del_node_failed添加节点失败node-add-errsls.app.ack.ccm.add_node_failed创建VPC网络路由失败route-create-errsls.app.ack.ccm.create_route_failed同步VPC网络路由失败route-sync-errsls.app.ack.ccm.sync_route_failed安全巡检发现高危风险配置si-c-a-risksls.app.ack.si.config_audit_high_risk托管节点池命令执行失败nlc-run-cmd-errsls.app.ack.nlc.run_command_fail托管节点池未提供任务的具体命令nlc-empty-cmdsls.app.ack.nlc.empty_task_cmd托管节点池出现未实现的任务模式nlc-url-m-unimpsls.app.ack.nlc.url_mode_unimpl托管节点池发生未知的修复操作nlc-opt-no-foundsls.app.ack.nlc.op_not_found托管节点池销毁节点发生错误nlc-des-node-errsls.app.ack.nlc.destroy_node_fail托管节点池节点排水失败nlc-drain-node-errsls.app.ack.nlc.drain_node_fail托管节点池重启ECS未达到终态nlc-restart-ecs-waitsls.app.ack.nlc.restart_ecs_wait_fail托管节点池重启ECS失败nlc-restart-ecs-errsls.app.ack.nlc.restart_ecs_fail托管节点池重置ECS失败nlc-reset-ecs-errsls.app.ack.nlc.reset_ecs_fail托管节点池自愈任务失败nlc-sel-repair-errsls.app.ack.nlc.repair_failcluster-network-err集群网络异常事件报警规则集Terway资源无效terway-invalid-ressls.app.ack.terway.invalid_resourceTerway分配IP失败terway-alloc-ip-errsls.app.ack.terway.alloc_ip_fail解析ingress带宽配置失败terway-parse-errsls.app.ack.terway.parse_failTerway分配网络资源失败terway-alloc-res-errsls.app.ack.terway.allocate_failureTerway回收网络资源失败terway-dispose-errsls.app.ack.terway.dispose_failureTerway虚拟模式变更terway-virt-mod-errsls.app.ack.terway.virtual_mode_changeTerway触发PodIP配置检查terway-ip-checksls.app.ack.terway.config_checkIngress重载配置失败ingress-reload-errsls.app.ack.ingress.err_reload_nginxcluster-storage-err集群存储异常事件报警规则集云盘容量少于20Gi限制csi_invalid_sizesls.app.ack.csi.invalid_disk_size容器数据卷暂不支持包年包月类型云盘csi_not_portablesls.app.ack.csi.disk_not_portable挂载点正在被进程占用 卸载挂载点失败csi_device_busysls.app.ack.csi.deivce_busy无可用云盘csi_no_ava_disksls.app.ack.csi.no_ava_disk云盘IOHangcsi_disk_iohangsls.app.ack.csi.disk_iohang磁盘绑定的PVC发生slowIOcsi_latency_highsls.app.ack.csi.latency_too_high磁盘容量超过水位阈值disk_space_presssls.app.ack.csi.no_enough_disk_space



本文转自网络,原文链接:https://developer.aliyun.com/article/784056
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐