0x00 Prometheus容器监控解决方案

Prometheus(普罗米修斯)是一个开源系统监控和警报工具,最初是在SoundCloud建立的。它是一个独立的开放源码项目,并且独立于任何公司。不同于传统的运维监控工具,Prometheus是面向容器和微服务的监控系统,采用基于时间序列的存储方式,监控采集更加精确,监控频率更高,和容器和微服务兼容性更好。随着目前容器和微服务的使用日趋广泛,Prometheus的应用范围将会越来越广。

0x01 Prometheus架构

Prometheus是面向容器和微服务的监控系统,对容器和微服务的兼容性好。

服务器通过Pull模型以http协议监控数据,监控精确,监控频率高。

图形数据化展示通过Grafana展示,采用专业的数据函数和公式,将数据以更精准和可读的方式展现出来。

报警方式通过AlertManager输出,兼容目前市场是主流的报警方式,例如微信,电话,邮件等。

下面这张图说明了Prometheus的整体架构,以及生态中的一些组件作用:

0x02 Prometheus主要特征和优势

Prometheus的主要特征有:

  • 多维度数据模型
  • 灵活的查询语言
  • 不依赖分布式存储,单个服务器节点是自主的
  • 以HTTP方式,通过pull模型拉去时间序列数据
  • 也通过中间网关支持push模型
  • 通过服务发现或者静态配置,来发现目标服务对象
  • 支持多种多样的图表和界面展示,grafana也支持它

Prometheus相对比其他监控的优势:

  • 监控数据的精细程度高,采集精度可以达到1~5s
  • 集群部署速度和监控脚本制作快,大大缩短监控搭建的时间成本
  • 开源软件更新快,bug修复快,周边插件丰富,到手即用,支持多种客户端开发语言
  • 本身基于数学计算模型,直接使用数学公式和数学函数,可以实现很复杂的业务逻辑监控(例如QPA曲线的弯曲、凸起,下跌的比例等模糊概念)
  • 结合Grafana展示图形,效果美观实用
  • 特别针对目前流行容器监控适配,采集深度大

Prometheus生态包括了很多组件,它们中的一些是可选的:

  • 主服务Prometheus Server负责抓取和存储时间序列数据
  • 客户库负责检测应用程序代码
  • 支持短生命周期的PUSH网关
  • 基于Rails/SQL仪表盘构建器的GUI
  • 多种导出工具,可以支持Prometheus存储数据转化为HAProxy、StatsD、Graphite等工具所需要的数据存储格式
  • 警告管理器
  • 命令行查询工具
  • 其他各种支撑工具
  • 多数Prometheus组件是Go语言写的,这使得这些组件很容易编译和部署

0x03 Prometheus配合Grafana和AlertManager实现数据展示和多渠道报警

Grafana展示Prometheus监控的数据

如下是Prometheus支持的报警渠道,支持邮件,Pageduty,Wehooks,微信等。

# Configurations for several notification integrations.
email_configs:
[ - <email_config>, ... ]
hipchat_configs:
[ - <hipchat_config>, ... ]
pagerduty_configs:
[ - <pagerduty_config>, ... ]
pushover_configs:
[ - <pushover_config>, ... ]
slack_configs:
[ - <slack_config>, ... ]
opsgenie_configs:
[ - <opsgenie_config>, ... ]
webhook_configs:
[ - <webhook_config>, ... ]
wechat_configs:
[ - <wechat_config>, ... ]

Prometheus监控学习笔记之Prometheus监控简介的更多相关文章

  1. Prometheus监控学习笔记之prometheus的federation机制

    0x00 概述 有时候对于一个公司,k8s集群或是所谓的caas只是整个技术体系的一部分,往往这个时候监控系统不仅仅要k8s集群以及k8s中部署的应用,而且要监控传统部署的项目.也就是说整个监控系统不 ...

  2. Prometheus监控学习笔记之Prometheus的Relabel,SD以及Federation功能

    0x00 k8s 的监控设计 k8s 默认以及推荐的监控体系是它自己的一套东西:Heapster + cAdvisor + Influxdb + Grafana,具体可以看 这里 . 包括 k8s 自 ...

  3. Prometheus监控学习笔记之Prometheus存储

    0x00 概述 Prometheus之于kubernetes(监控领域),如kubernetes之于容器编排.随着heapster不再开发和维护以及influxdb 集群方案不再开源,heapster ...

  4. Prometheus监控学习笔记之prometheus的远端存储

    0x00 概述 prometheus在容器云的领域实力毋庸置疑,越来越多的云原生组件直接提供prometheus的metrics接口,无需额外的exporter.所以采用prometheus作为整个集 ...

  5. Prometheus监控学习笔记之Prometheus的架构及持久化

    0x00 Prometheus是什么 Prometheus是一个开源的系统监控和报警工具,特点是 多维数据模型(时序列数据由metric名和一组key/value组成) 在多维度上灵活的查询语言(Pr ...

  6. Prometheus监控学习笔记之Prometheus不完全避坑指南

    0x00 概述 Prometheus 是一个开源监控系统,它本身已经成为了云原生中指标监控的事实标准,几乎所有 k8s 的核心组件以及其它云原生系统都以 Prometheus 的指标格式输出自己的运行 ...

  7. Prometheus监控学习笔记之Prometheus普罗米修斯监控入门

    0x00 概述 视频讲解通过链接网易云课堂·IT技术快速入门学院进入,更多关于Prometheus的文章. Prometheus是最近几年开始流行的一个新兴监控告警工具,特别是kubernetes的流 ...

  8. Prometheus监控学习笔记之Prometheus 2.x版本的常用变化

    最近用了prometheus 2.0 版本,感觉改变还是有点大,现将改变相关记录如下: 1.prometheus.yml文件配置修改后,要想重新加载,必须在启动的时候添加参数: --web.enabl ...

  9. Prometheus监控学习笔记之Prometheus查询无数据或者Grafana不显示数据的诡异问题

    0x00 概述 Prometheus和Grafana部署完成后,网络正常,配置文件正常,抓取agent运行正常,使用curl命令获取监控端口数据正常,甚至Prometheus内的targets列表内都 ...

随机推荐

  1. ELKStack的基础入门和中文指南

    一.ELKStack的中文指南 redhat系列配置repo源 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch vi / ...

  2. Linux命令:tar命令批量解压方法总结

    tar命令批量解压方法总结 (2010-05-24 17:48:46) 转载▼ 标签: tar 批量解压 杂谈 分类: linux学习 由于linux的tar命令不支持批量解压,所以很多网友编写了好多 ...

  3. synchronized的简单用法

    synchronized 锁定要操作的对象: emp: synchronized(要锁定的对象){ //要做的动作 }

  4. 开发中清除css加载的缓存使用

  5. NserviceBus:消息Message、Command、Event(2)

    NServiceBus.IMessage 用于定义消息.NServiceBus.ICommand 用于定义命令.NServiceBus.IEvent 用于定义事件. ICommand 命令 用于点对点 ...

  6. SQL Server 2014忘记SA密码或禁用而且Windows身份验证也无法登录的解决办法

    SQL Server双重验证都无法验证的情况下如何处理 1.以管理员身份运行sql配置管理器 2.打开[Sql Server 服务]节点关掉所有服务 3.双击本地实例[SQL Server (MSSQ ...

  7. iOS UIViewController生命周期控制

    具体流程,看下图: init方法在init方法中实例化必要的对象(遵从LazyLoad思想)init方法中初始化ViewController本身 loadView方法当view需要被展示而它却是nil ...

  8. 地图服务报 error #2035

    参考:https://blog.csdn.net/iteye_20296/article/details/82395628 现在问题解决了,确实是config.xml里关于这个widget的配置url ...

  9. efcore从数据库快速生成实体及context

    有些项目开发时先建立数据库,再用codefirst来书写entity和EntityConfiguration,比较耗费功夫. 1.在vs2017中新建个asp.net core的web项目,或者其他项 ...

  10. Oracle10g 连接 sqlserver 在server2008r2 中连接 iis7 .net4.0

    一.做好了连接但是到了64位的server2008r2上就是不行,报错dns上不匹配.最后找到原因了 自己到c盘里面找32位的odbc管理工具然后建立连接,然后一切正常. 二.iis7 .net4.0 ...