监控系统作用

监控系统主要用于保证所有业务系统正常运行, 和业务的瓶颈监控. 需要周期性采集和探测.

采集的详情

  • 采集: 采集器, 被监控端, 监控代理, 应用程序自带仪表盘, 黑盒监控, SNMP.
  • 存储: SQL, NoSQL(k/v, document, TSDB(series))
  • 展示: Grafana
  • 报警: Alert 通知 Email, 短信, 微信, 钉钉,
  • 常见开源实现: (Cacti/Nagios/ zabbix/ Prometheus)

监控体系

  • 系统层监控

    • 系统监控: CPU, Memory, Swap, Disk, Process, Load
    • 网络监控: 网络设备, 工作负载, 网络延迟, 丢包率...
  • 基础设施是监控
    • 消息中间件: Kafka, RocketMQ, RabbitMQ等..
    • Web服务容器: Tomcat, Jetty, Nginx等..
    • 数据库及缓存系统: Mysql, Redis, MogoDB, ElasticSearch.
    • 存储系统: Ceph等.
  • 应用层监控
    • 用于衡量应用程序代码的状态和性能.
  • 业务层监控
    • 用于衡量应用程序价值, 例如电子商务网站的销售量.
    • QPS,DAU日活, 转化率.
    • 业务接口: 登录数, 注册数, 订单量 搜索量, 的支付量等.

 云原生时代可观测性

  • 可观测性系统

    • 指标监控(Metrics): 随时间推移产生的一些于监控相关的可集合数据点.
    • 日志监控(Logging): 离散式的日志或事件.
    • 链路跟踪(Tracing): 分布式应用调用链链跟踪.

CNCF 将可观测性和数据分析归类一个单独的类别, 且划分成了4个子类

  • 系统监控: 以 Prometheus 等为代表.
  • 日志系统: 以 ElasticStack和PLG Stack等为代表
  • 分布式调用链跟踪系统: 以 Zipkin, Jaeger, SkyWalking, Pinpoint等为代表.
  • 混沌工程系统: 以 ChaosMonkey, 和 ChaosBlade等为代表.

Prometheus

prometheus 是一款时序(time series)数据库,  但他的功能却并非止步于TSDB,  而是一款设计用于进行目标(Target)监控的关键组件.

组合生态系统内的其他组件, 例如 Pushgateway, Altermanager 和 Grafana等, 可构成完整的IT监控系统.

Metric, 有独创的指标格式, Prometheus 格式.

多维度标签, 每个独立的标签组合都代表一个独立的时间序列.

内建时序数据的聚合, 切割, 切片功能.

支持双精度浮点型数据.

时序数据简介

时序数据, 是在一段时间内通过重复测量(measurement)而获得的观测值的集合; 将这些观测值绘制于图形之上, 它会有一个数据轴和一个时间轴.

服务器指标数据, 应用程序性能监控数据, 网络数据等也是时序数据.

如何抓取数据Pull?

基于 HTTP call, 从配置文件中指定的网络端点(endpoint) 上周期性获取指标数据.

Prometheus 支持通过三种类型的途径从目标上抓取(Scrape) 指标数据.

  • Exporters 内建不支持指标暴露

  • Instrumentation 应用程序内建的

  • Pushgateway

Prometheus 同其它 TSDB 相比有一个非常经典的特性; 他可以主动从 Target 上"拉取" 数据, 而非等待被监控端的agent推送"push";

两种方式各有优劣, 其中 Pull 模型的优势在于:

  • 集中控制: 有利于将配置集中在 Prometheus Server上完成, 包括指标即采集速率等.

  • Prometheus 的根本目标在于收集 在 Target 上预先完成集合的聚合性数据.而非一款由时间驱动的存储系统.

Prometheus 生态组件

  • Prometheus Server: 收集和存储时间序列数据.
  • Client Library: 客户端库, 目的在于为那些期望原生提供 Lnstrumentation 更的应用程序提供便捷的开发途径.
  • Push Gateway: 接收那些通常由短期作业生成的指标数据的网关, 并支持Prometheus Server 进行指标拉取操作;
  • Exporters: 用于暴露现有应用程序或者服务(不支持Instrumentation) 的指标给Prometheus Server.
  • Alertmanager: 从 Prometheus Server 接收到告警通知后, 通过去重分组, 路由等预处理功能以高效向用户完成告警信息发送.
  • Data Visuaization: Prometheus Web UI(Prometheus Server 内建), 及 Grafana 等,
  • Service Discovery: 动态发现待监控的Target, 从而完成监控配置的中间组件, 从容器化环境尤为重要, 该组件目前由 Prometheus Server内建支持.

Prometheus 数据模型

Prometheus 仅用于以键值形式存储的时间式的聚合数据, 它并不支持存储文本信息.

其中 键 成为指标 "Metric", 它通常意味着 CPU速率, 内存使用速率, 或 分区空闲比例等.

用一指标可能会适配到读个目标或设备, 因而他使用标签作为元数据, 从而为 Metric 添加更多的信息描述纬度.

这些标签还可以作为过滤器进行指标过滤机聚合运算.

指标类型

Counter 计数器

用于保存单调递增的数据, 例如访问站点访问次数等, 不能为负值, 也不支持减少, 但是可以重置为0.

Gauge 仪表盘

用于 存储有着起伏特征的指标数据, 例如内存空间大小等;

Gauge 是 Counter 的超集, 但存在指标数据丢失的可能性是, Counter 能让用户确切来哦接指标随时间的变化, 而 Gauge 则可能随时间流逝而精准度越来越低.

Histogram 直方图

它会在一段时间内对数据进行采样, 并将其计入可配置的 bucket 之中, Histogram 能够储存更多的信息, 包括样本值分部在每个 bucket (bucket 自身的可配置) 中的数量, 所有样本值之和和以及总的样本数量, 从而 Prometheus 能够使用内建函数进行如下操作:

  • 计算样本平均值: 以值的总和除以值的数量.

  • 计算样本分位值: 分为数有助于了解符合特定标准的数据个数. 例如评估响应时长超1秒中的请求比例, 若超过20%即发送告警等.

summary 摘要

Histogram 扩展类型, 单它使直接由被检测端自行聚合计算出分位数, 并将计算结果响应给 Prometheus Server 的样本采集请求, 因而, 其分位数计算是由监控端完成.

Prometheus基础的更多相关文章

  1. Prometheus基础应用

    简介 Prometheus使用扫盲,包含基础的概念和操作说明,基于官网和个人测试. versoin: 2.14 官网 GitHub 安装 prometheus安装运行非常方便,下载后解压,运行根目录下 ...

  2. Prometheus基础(二)

    1.什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB).Prometheus使用Go语言开发,是Google BorgMon监控 ...

  3. Prometheus监控学习记录

    官方文档 Prometheus基础文档 从零开始:Prometheus 进阶之路:Prometheus —— 技巧篇 进阶之路:Prometheus —— 理解篇 prometheus的数据类型介绍 ...

  4. 360 基于 Prometheus的在线服务监控实践

    转自:https://mp.weixin.qq.com/s/lcjZzjptxrUBN1999k_rXw 主题简介: Prometheus基础介绍 Prometheus打点及查询技巧 Promethe ...

  5. 《为什么说 Prometheus 是足以取代 Zabbix 的监控神器?》

    为什么说 Prometheus 是足以取代 Zabbix 的监控神器?   Kuberneteschina 致力于提供最权威的 Kubernetes 技术.案例与Meetup! ​关注他 12 人赞同 ...

  6. prometheus学习系列一: Prometheus简介

    Prometheus简介 prometheus受启发于Google的Brogmon监控系统(相似kubernetes是从Brog系统演变而来), 从2012年开始由google工程师Soundclou ...

  7. Prometheus 学习目录

    Prometheus 介绍 Prometheus 安装 https://www.bookstack.cn/read/prometheus-book/quickstart-why-monitor.md ...

  8. 01 . Prometheus简介及安装配置Grafana

    Promethus简介 Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在S ...

  9. Python调用Prometheus监控数据并计算

    Prometheus是什么 Prometheus是一套开源监控系统和告警为一体,由go语言(golang)开发,是监控+报警+时间序列数 据库的组合.适合监控docker容器.因为kubernetes ...

随机推荐

  1. Vagrant 搭建开发环境实践

    介绍 Development Environments Made Easy -官网标题 vagrant是一个命令行的虚拟机管理程序.用于简化搭建开发环境. vagrant使用ruby语言基于Chef ...

  2. 好的编程习惯是减少bug最有效的方法

    公司来了几个新手,有时候很简单的一个功能模块都要耗费好几天时间,总是在一些不相关的问题上死耗一整天,搞出莫名其妙的问题,找不到具体原因,总是怀疑编译出问题了,系统出问题了,板子出问题了,搞到快下班了叫 ...

  3. 视频编码GOP

    GOP group of pictures GOP 指的就是两个I帧之间的间隔. 比较说GOP为120,如果是720 p60 的话,那就是2s一次I帧. 在视频编码序列中,主要有三种编码帧:I帧.P帧 ...

  4. Docker 18.03 Centos7.6 安装 内网

    首先访问https://download.docker.com/linux/centos/7/x86_64/stable/Packages/获取对应版本的rpm包docker包docker-ce-18 ...

  5. Jetbrains 系 IDE 编辑器的代码提示功能

    著名的 Jetbrains 可谓编程界的一大福音,众多有名代码编辑器比如 ItelliJ IDEA.PHPStorm.WebStorm.PyCharm 等,均出自这家公司麾下. 对于中国的Java开发 ...

  6. .Net Core微服务——网关(1):ocelot集成及介绍

    网关是什么 简单来说,网关就是暴露给外部的请求入口.就和门卫一样,外面的人想要进来,必须要经过门卫.当然,网关并不一定是必须的,后端服务通过http也可以很好的向客户端提供服务.但是对于业务复杂.规模 ...

  7. 通俗易懂的HTML全知识梳理笔记(第一部分)

    文章目录 什么是HTML 块级元素和内联元素 属性 给`a`元素添加属性 布尔属性 HTML的空白 实体引用: 在HTML中包含特殊字符 head中的元数据 meta元素 在你的站点中增加自定义的图标 ...

  8. adduser vs useradd

    Always use adduser (and deluser when deleting users) when you're creating new users from the command ...

  9. 72.Financial Management

    描述 Larry graduated this year and finally has a job. He's making a lot of money, but somehow never se ...

  10. vs2012换肤功能,vs2012主题及自定义主题

    vs2012 默认的主题只有浅色和深色两种,深色太黑了,浅色又太亮了!怎么办? 研究不少时间终于找到了怎么编辑vs2012的皮肤 现在开始吧 打开vs2012-工具--扩展和更新 在联机中搜索 The ...