helm 部署Prometheus-Operator
监控基本知识 常用监控方法:(在文章中会持续穿插以下方法的使用) (1) USE方法: 即使用率(Utilization),饱和度(Staturation),错误(Error),针对于每个资源,检查使用率饱和度和错误,侧重于主机层面监控
资源: 系统的组件,例如CPU,内存,IO等 使用率: 资源处理工作的平均时间,通常为百分比表示 饱和度: 资源排队工作的指标, 通常为队列长度表示 错误: 资源错误事件的计数 将以上结合起来创建一份资源清单,并采用一种方法来监控每个要素,例如系统性能出现瓶颈时,我们可以参考以下要素:
1:CPU的清单 CPU使用率随时间的百分比 CPU饱和度,等待CPU的进程数 CPU错误(比较少) 2:内存的清单 内存使用率随时间的百分比 内存饱和度,通过监控swap测量 内存错误(比较少) 其他Linux系统资源的示例可以参考BrenDan Gregg所提供的清单
(2) Google的四个黄金指标: 延迟, 流量, 错误, 饱和度, 更多是针对于应用程序或面向用户部分, 依次选择对应的指标设置报警
延迟: 服务请求所花费的时间, 而成功请求和失败请求有所区别, 例如失败请求会以很低的延迟返回错误的结果 流量: 针对系统,例如每秒HTTP请求数或数据库系统的事务 错误: 请求失败的速率, 例如HTTP 500错误等显示失败, 返回错误内容或无效内容的隐式失败或者强制要求相应时间超过30s的请求视为错误的基于策略原因的失败 饱和度: 应用程序处理极限或系统资源极限,例如到达程序最大处理请求数量或内存cpu等资源饱和 通常监控应用程序主要有两种方法:
黑盒监控:查询程序外部特征,例如端口是否正常,数据或状态码返回是否正常,或者执行ICMP检查服务器是否正常 例如ping服务器,telnet端口号,curl状态码等 白盒监控:主要查看程序内部特征, 例如应用程序检查后所返回其状态,内部组件或事务和事件性能的度量,将事件,日志和指标发送到监控工具 例如redis的info中显示redis slave down, mysql使用show variables暴露内部指标信息,httpd使用mod_status来暴露内部信息等 报警和通知 告警和通知是监控工具的主要输出方式,一个出色的通知系统需包含以下基础信息: