目录
一、常用的监控
二、Prometheus特性
三、运维监控平台设计思路
四、监控系统体系
1.系统层监控(需要监控的数据)
2.中间件及基础应用监控 端监控(移动app,特定程序等)
3.应用层监控
4.业务层监控
五、Prometheus生态组件
六、prometheus数据模型(什么是标签(标签值)、什么是指标、什么是样本)
指标类型
一、常用的监控
cactiNagiosZabbixPrometheusopen-Falcaon
二、Prometheus特性
多维的数据模型(基于时间序列的Key、 value键值对)
灵活的查询和聚合语言PromQL——类似于mysql的sql语句
提供本地存储和分布式存储
提供基于HTTP和HTTPS(七层)的Pull模型采集时间序列数据(pull数据的推送,时间序列:每段时间点的数据值指标,持续性的产生。横轴标识时间,纵轴为数据值,一段时间内数值的动态变化,所有的点连线形成大盘式的折线图)
可利用Pushgateway (Prometheus的可选中间件)实现Push模式(只会对脚本执行或者一次性/短周期执行的任务,使用push方式) 七层用pull,四层用push
可通过动态服务发现或静态配置发现目标机器(通过consul自动发现和收缩)
支持多种图表和数据大盘(测试时用) 可视化的图标和类型有多种
三、运维监控平台设计思路
1.数据收集模块
2.数据提取模块(prometheus-TSDB 查询语言是PromQL)
3.监控告警模块(布尔值表达式判断是否需要告警PromQL (CPU使用率)>80%)
细化为
第六层——用户展示管理层——同一用户管理、集中监控、集中维护
第五层——告警事件生成层——实时记录告警事件、形成分析图表(趋势分析、可视化)
第四层——告警规则配置层——告警规则设置、告警伐值设置(定义布尔值表达式,筛选异常状态)
第三层——数据提取层——定时采集数据到监控模块
第二层——数据展示层——数据生成曲线图展示(对时序数据的动态展示)
第一层——数据收集层——(多渠道监控数据)——(网络,硬件,应用,数据,物理环境)
四、监控系统体系 1.系统层监控(需要监控的数据) 2.中间件及基础应用监控 端监控(移动app,特定程序等) 3.应用层监控
2.中间件及基础应用监控 端监控(移动app,特定程序等) 3.应用层监控
三种途径从目标抓取(scrape)指标数据:
Exporters ——>工作在被监控端,周期性的抓取数据并转换为pro兼容格式等待prometheus来收集,自己并不推送
Instrumentation(内建的指标暴露器) ——>指被监控对象内部自身有数据收集、监控的功能,只需要prometheus直接去获取——docker
Pushgateway ——>短周期5s—10s的数据收集,或者不适合通过/使用7层暴露的指标数据
4.业务层监控 五、Prometheus生态组件
1.Prometheus Server:收集和储存时间序列数据 通过scraping以刮擦的方式去获取数据放入storge(TSDB时序数据库),制定Rules/alerts:告警规则,service discovery是自动发现需要监控的节点
2.Client Library:客户端库,目的在于为那些期望原生提供Instrumentation功能的应用程序提供便捷的开发途径;
3.Push Gateway:接收那些通常由短期作业生成的指标数据的网关,并支持由Prometheus Server进行指标拉取操作;
4.Exporters:用于暴露现有应用程序或服务(不支持Instrumentation)的指标给Prometheus Server而pro内建了数据样本采集器,可以通过配置文件定义,告诉prometheus到那个监控对象中采集指标数据,prometheus 采集过后,会存储在自己内建的TSDB数据库中,提供了promQL 支持查询和过滤操作,同时支持自定义规则来作为告警规则,持续分析一场指标,一旦发生,通知给alerter来发送告警信息,还支持对接外置的UI工具(grafana)来展示数据。采集、抓取数据是其自身的功能,但一般被抓去的数据一般来自于:export/instrumentation (指标数据暴露器) 来完成的,或者是应用程序自身内建的测量系统(汽车仪表盘之类的,测量、展示)来完成
5.alertmanager:由告警规则对接,从Prometheus Server接收到"告警通知"后,通过去重、分 组、路由等预处理功能后以高效向用户完成告警信息发送
6.Data Visualization(Dashboards): 与TSDB对接并且展示数据库中的数据,Prometheus web UI (Prometheus Server内建),及Grafana等;
7.Service Discovery:动态发现待监控的Target,从而完成监控配置的重要组件,在容器化环境中尤为有用;该组件目前由PropetheusServer内建支持
六、prometheus数据模型(什么是标签(标签值)、什么是指标、什么是样本)
什么是指标:能够产生监控数据的具体的对象。例如cpu使用率,内存空闲率是一个指标
什么是标签,什么是标签值:按照指标名称/对象,按照特定的条件精确过滤指标数据,标签和标签值
标签和标签值,是指标数据的筛选方式和筛选依据。
指标类型
默认都是以双精度浮点型数据(服务端无数据量类型数据)
① counter : 计数器单调递增② gauge:仪表盘:有起伏特征的③ histogram:直方图④ summary,摘要,histogram直方图的扩展类型