目录
一、Prometheus简介
1.1 Prometheus概述
二、Prometheus特点
三、Prometheus监控体系
1.系统层监控(需要监控的数据)
2.间件及基础设施类监控
3.应用层监控
4.业务层监控
一、Prometheus简介 1.1 Prometheus概述
Prometheus是一个开源系统监控和警报工具,最初是在SoundCloud建立的。自2012年成立以来,许多公司和组织都采用了普罗米修斯,该项目拥有一个非常活跃的开发者和用户社区。它现在是一个独立的开放源码项目,并且独立于任何公司。为了强调这一点,为了澄清项目的治理结构,普罗米修斯在2016年加入了云计算基金会,成为继Kubernetes之后的第二个托管项目。谷歌的内部大型集群系统borg,是kubernetes的前身。其监控系统是Prometheus,而iprometheus是其克隆版,所以非常契合k8s的监控对容器非常适用。
二、Prometheus特点
1、多维的数据模型(基于时间序列的Key、 value键值对)
2、灵活的查询和聚合语言PromQL
使用PromQL语言可以以多个条件定位到具体的键值对数据(首先确定时间段,其次具体到主机)
监控告警方式:首先记录时间刻度的值为时间序列持续数据,根据每个单位的持续数据组成趋势图,通过promQL语句去过滤时间序列中具体时间中的一个值,这个值作为告警指标,高于这个指标就进行告警,没有高于这个指标平稳运行监控
3、 提供本地存储和分布式存储
本地存储当监控部署在那个服务器中即使用那台服务器的存储资源
分布式存储:可以配合GFS,NFS客户端进行挂载使用
4、方式
4.1 通过基于HTTP和HTTPS的Pull模型采集时间序列数据(pull数据的推送,时间序列:每段时间点的数据值指标,持续性的产生。横轴标识时间,纵轴为数据值,一段时间内数值的动态变化,所有的点连线形成大盘式的折线图)
HTTP和HTTPS是两种监控中获取数据的方式,不同于其他监控Prometheus采用pull模式主动向服务器去询问数据,不易出现并发周期导致服务器宕机。
4.2 可利用Pushgateway (Prometheus的可选中间件)实现Push模式(只会对脚本执行或者一次性/短周期执行的任务,使用push方式
当请求数据时没有http和https的场景下采集数据时,使用push模式,数据就会被推送到Pushgateway这个组件上,等待Prometheus主动获取或者主动推给Prometheus
5、可通过动态服务发现或静态配置发现目标机器(通过consul自动发现和收缩)
当Prometheus监控大规模集群服务器时,当集群服务器中的服务器宕机时会进行告警(缺点:当服务器进行人为维护时也会发生告警)。
当Prometheus监控等待集群服务器进行扩展时,会自动发现将匹配服务器纳入自己的监控范围
6、支持多种图表和数据大盘
当收集的数据可以展示出多种图形的数据图表
三、Prometheus监控体系 1.系统层监控(需要监控的数据)
1.1 CPU、Load、Memory、swap、disk i/o、process等
1.2 网络监控:网络设备、工作负载、网络延迟、丢包率等 中
2.间件及基础设施类监控
2.1 消息中间件: kafka、RocketMg、等消息代理(redis中间件)
2.2 WEB服务器容器: tomcat、weblogic、apache、php、spring系列
2.3 数据库/缓存数据库:MySQL、PostgresQL、MogoDB、es、redisredis监控内容: redis所在服务器的系统层监控redis 服务状态 RDB AOF日志监控 日志—>如果是哨兵模式—>哨兵共享集群信息,产生的日志—>直接包含的其他节点哨兵信息及redis信息
3.应用层监控
用于衡量应用程序代码状态和性能#监控的分类#:黑盒监控,白盒监控PS: 白盒监控,自省指标,等待被下载( cadvisor) 黑盒监控:基于探针的监控方式,不会主动干预、影响数据
4.业务层监控
用于衡量应用程序的价值,如电商业务的销售量,ops、dau日活、转化率等业务接口:登入数量,注册数、订单量、搜索量和支付量