集群报警发送给运维组(devops)
监测内容,
节点的磁盘空间,cpu,内存状态。
pod状态(是否重启,pending,error等)
deployment的状态(Jenkins发版更新确认是否成功)
邮件,短信(重要)。
发送给运维
报警发送给各个项目相关人员
检测日志是否error,1条就发(邮件,短信)
检测日志warring,根据频繁程度报警(邮件,企业微信webhook)
邮件,短信,企业微信webhook
发给每个对应的开发负责成员,兵总,运维
saas服务发给研发
直接通过日志进行报警,原理是我们安装的ack会开启事件中心,时间中心会记录下k8s的所有事件。日志是放在sls下边,名称为k8s-event。
这里可以通过关键字进行报警。
这个报警也是使用的sls日志报警,通过的是阿里云的CRD配置进去的。
点击“Prometheus监控”
点击实例进入
选择“报警配置”
这里可以看到系统内置的报警规则。
主要功能是监控是否有报警产生,
在“报警配置”页面开启需要报警的服务,可以进行自定义编辑。
告警运维中心地址:https://alerts-sg.console.aliyun.com/#/alarm/dispatch
没有很明显的入口,直接使用URL进入。
注意,这里需要配置通知策略里边的“分派规则”来关联前面的“报警策略”。
在告警运维中心可以查看报警历史和正在进行的报警。
官方:https://help.aliyun.com/document_detail/176180.html
查找某个image的pod的信息
bashkube_pod_container_info{image="registry-vpc.ap-southeast-1.aliyuncs.com/acs/node-problem-detector:v0.6.3-29-71bd5f8"}
kube_pod_container_info是标签
支持正则表达式匹配
http_requests_total{code!="200"}// 表示查询 code 不为 "200" 的数据
http_requests_total{code=~"2.."}// 表示查询 code 为 "2xx" 的数据
http_requests_total{code!~"2.."}// 表示查询 code 不为 "2xx" 的数据
查找某个pod_name前缀为ad-go-sg的pod的信息
bashkube_pod_container_info{pod_name=~"ad-go-sg.*"}
.* 表示所有
统计匹配到的pod个数
bashcount(kube_pod_container_info{pod_name=~"ad-go-sg.*"})
# 支持的聚合运算符
## sum,min,max,avg,stddev,stdvar,count,count_values,bottomk,topk,quantile,
bashkube_deployment_status_replicas{deployment=~".*ad.*"}
kube_pod_container_status_waiting_reason == 1
获取pending的容器
bashkube_pod_status_phase{phase=~"Pending",pod!~"ad-go-sg.*"}> 0
点击"创建报警"
配置策略
这里是测试出来的,一些告警信息可以选的变量。
bash$labels的内容: {phase=Pending, _aliyun_arms_alert_level=ERROR, instance=kube-state-metrics:8080, pod=fluent-bit-46jqk, clustername=en-sg-prod, _aliyun_arms_alert_type=101, _aliyun_arms_integration_name=ARMS-DEFAULT, alertname=pending的容器(排除ad-namespace下的容器), _aliyun_arms_userid=1919028704903788, _aliyun_arms_involvedObject_name=en-sg-prod, pod_name=fluent-bit-46jqk, _aliyun_arms_involvedObject_id=ca3135b0b22024faf895e826d6c241c9e, __name__=kube_pod_status_phase, _aliyun_arms_region_id=ap-southeast-1, _aliyun_arms_involvedObject_kind=cluster, _aliyun_arms_product_type=ARMS_PROMETHEUS, namespace=kubesphere-logging-system, _aliyun_arms_integration_id=105, _aliyun_arms_involvedObject_type=ManagedKubernetes, job=_kube-state-metrics, _aliyun_arms_alert_rule_id=18804}
简单模板:
pod状态:{{$labels.phase}}
pod名称:{{$labels.pod}}
集群名称:{{$labels.clustername}}
报警名称:{{$labels.alertname}}
命名空间:{{$labels.namespace}}
Service:{{$labels.name}}
如果是根据某个值进行的监控使用: 当前查出来的值,{{$value}}
创建完成。
通知策略同模式配置方式。
bashkube_deployment_status_replicas_unavailable and kube_deployment_status_replicas_available / kube_deployment_status_replicas < 1 and kube_deployment_status_replicas > 9
bash
本文作者:mykernel
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!