使用Prometheus监控Cloudflare的全球网络

Matt Bostock在SRECON 2017欧洲大会的演讲中,介绍了如何使用Prometheus实现对CloudFlare分布于全球的架构和网络的监控。Prometheus是一种基于度量进行监控的工具,CloudFlare是一家CDN、DNS和DDoS防御(Mitigation)服务提供商。

\\

基于度量的开源监控项目Prometheus最早推出于2012年,它是CNCF(原生云计算基金会,Cloud Native Computing Foundation)的成员。Prometheus的动态配置和查询语言PromQL支持用户编写对告警的复杂查询。CloudFlare提供CDN(内容分发网络,Content Delivery Network)、分布式DNS和DDoS防御服务,这意味着其架构已扩展到全球范围。监控这样的架构及网络无疑是一件复杂的工作。在演讲中,Bostock介绍了Prometheus在其中发挥的作用。在CloudFlare,前期部署的Nagios的职能已有87%被Prometheus所替代。

\\

CloudFlare提供类似于Anycast所提供的CDN服务。Anycast DNS使得DNS查询可以被最接近用户的服务器所处理,Anycast HTTP使得内容可以从距离用户最近的服务提供。作为原始Web站点和用户之间的中介,CloudFlare还检查访问者的流量中是否存在有威胁的模式。它提供了跨150个国家的116个数据中心,每秒处理500万次HTTP请求,120万次DNS请求,占全球因特网请求的10%。每个入网点(PoP,Point-Of-Presence)提供HTTP、DNS、DDoS防御和键值存储服务。截至演讲时,有188台运行在生产环境中的Prometheus服务器需要监控。

\\

d0e42317a03193328f141a0be178c7b0.png

\\

图片来源:https://promcon.io/2017-munich/talks/monitoring-cloudflares-planet-scale-edge-network-with-prometheus/

\\

Prometheus是基于度量的,也就是说它采集时序度量,并基于度量构建其余的特性。它工作于Pull模式下,每台监控服务器运行一个称作“exporter”的进程,通过HTTP发布所采集的度量。CloudFlare为每个服务域部署了一个exporter,使用它们采集系统(例如CPU、内存、TCP、磁盘等)、网络(例如HTTP、Ping等)、本地匹配(错误信息)和容器/命名空间的度量。其中,exporter使用了Google的开源项目cadvisor采集容器/命名空间的度量。Prometheus并不会永久地保存所有数据,因为它更侧重于“此时此地”(here-and-now)的监控情况。数据不做下采样,并在CloudFlare配置中保存15天。

\\

在CloudFlare的核心数据中心,服务包括日志访问、分析业务,以及使用Marathon、Mesos、Chronos、Docker、Sentry、Ceph(用于存储)、Kafka、Spark、Elasticsearch和Kibana等技术栈构建的API。Prometheus在每个PoP通过exporter查询服务器和服务获取度量。每个PoP的高可用性是由使用多个Prometheus服务提供的。

\\

Prometheus的报警管理称为“Alertmanager”。CloudFlare的部署中包括一个Alermanager,由每个Prometheus服务器推送事件,并考虑了配置的高可用性。报警基于历史数据做测试,确保服务的正确执行的。Bosun等新兴监控工具也包括类似的特性。为提供更好的报警服务,其它的一些特性还包括了描述性的名称、简单易用性和一些可使接收者立刻采取行动的信息。

\\

CloudFlare团队使用jiralerts实现JIRA工单系统与Alertmanager的集成。JIRA可以用户定制工作流,使得报警监控中可以包括一些监控工作流特定的用户定制状态。另一个称为alertmanagere2s的工具接收报警,并将报警信息集成到Elasticsearch索引中,用于进一步的检索和分析。CloudFlare已为Alertmanger构建了自己的仪表盘,称为“unsee”。

\\

那么Prometheus是如何监控自身情况的?这有两种实现方法。一种是混合方法,即在同一数据中心中,由一个Prometheus去监控另一个Prometheus。另一种方法是自顶向下的方法,由顶层Prometheus服务器监控位于数据中心层面的Prometheus服务器。

\\

CloudFlare SRE团队的经验是,尽早对环境和集群等的标签和组身份做标准化;其它一些经验是关于如何创建可视化,以及从同行和利益相关者生成买入。经验指出,团队的尽早参与将有助于服务与监控系统的更快整合。而报警本身则需要多次迭代进行调整和改进,这是一个开展中的过程。

\\

查看英文原文: Monitoring Cloudflare's Global Network Using Prometheus

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开始吧

2019独角兽企业重金招聘Python工程师标准>>> 写C三年有余,在技术方面也算小有所成。准备在这里分享一些C进阶、Python、Golang技术文章。 CSDN博客地址: http://blog.csdn.net/godmaycry 以后博客同步更新。 转载于:https://my.oschina.net/u…

Exchange server 2013(十四)WSUS部署及组策略设置(2)

我们继续上一节未完的博客,继续我们的WSUS设置。[上一章节标题:Exchange server 2013(十四)WSUS部署及组策略设置(1) 网址:http://1183839.blog.51cto.com/blog/1173839/1182366] 首先单击自动审批,来修改审批规则,也就是说当wsus侦测到新的更…

用MATLAB结合四种方法搜寻罗马尼亚度假问题

选修了cs的AI课,开始有点不适应,只能用matlab硬着头皮上了,不过matlab代码全网仅此一份,倒有点小自豪。 一、练习题目 分别用宽度优先、深度优先、贪婪算法和 A*算法求解“罗马利亚度假问题”。具体地图我这里不给出了&#xff0c…

[转]Paul Adams:为社交设计

为社交设计 Strong, Weak, and Temporary Ties by Paul Adams on 2010/04/09 PS:作者Paul Adams Facebook全球品牌体验总监 电话和手机聚集十亿用户用了15年的时间,而Facebook只用了9个月。我们看到越来越多的人开始用在线社交网络,这种网络好…

Android Framework中的Application Framework层介绍

Android的四层架构相比大家都很清楚,老生常谈的说一下分别为: Linux2.6内核层,核心库层,应用框架层,应用层。我今天重点介绍一下应用框架层Framework。 Framework层为我们开发应用程序提供了非常多的API,我…

ORACLE中创建如何创建表,并设置结构和默认值

使用select语句查看EMP表,根据COMM排序 默认情况下,空值会自动排列在尾部。 利用nulls last排序时将空值置底 利用nulls first排序时将空值置顶 例 创建一张出版社表 使用语句 create table 表名(列名1 类型,列名2 类型&#xff0…

暴风TV请来中国人工智能first lady冯雁教授任首席科学家

今日下午,暴风AI无屏电视发布会现场,暴风TV宣布邀请号称“中国人工智能first lady”、于香港科技大学任教的冯雁教授,担任暴风TV人工智能首席科学顾问。 冯雁教授于现场表示,选择暴风TV合作的重要原因,一方面在于其个人…

gulp之gulp.watch报错

gulpfile.js如下: 问题: 第一次改动文件,监听正常。再次改动,报错,如下: 解决: 总结: 意思,gulpsequence这玩意儿返回的thunk只能执行一次 转载于:https://www.cnblogs.c…

.NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)

今天继续利用准备WSE安全开发文章的空闲时间,完善《.NET深入学习笔记》系列(基本都是.Net重要的知识点,我都做了详细的总结,是什么、为什么、和怎么实现)。想必很多人也接触过这两个概念。做过C的人对深浅拷贝的概念一…

VIM一般模式操作

2019独角兽企业重金招聘Python工程师标准>>> vim介绍 vim和vi几乎是一样的,唯一的区别就是当编辑一个文本时,使用vi不会显示颜色,而使用vim会显示颜色。 vim有三个模式:一般模式,编辑模式,命令模…

stateful set 学习笔记

2019独角兽企业重金招聘Python工程师标准>>> 1、创建pv # cat pv.yaml kind: PersistentVolume apiVersion: v1 metadata:name: task-pv-volumelabels:type: local spec:capacity:storage: 3GiaccessModes:- ReadWriteOncehostPath:path: "/tmp/data" 2、…

自定义控件---重写Listbox实现item图标变换和item点击事件

博客开通有一阵了,就是没有时间写,遗憾啊。! 这几天做了个排序的自定义控件,在listbox item里放是button 并支持图标的交替变换 效果如下: 把代码贴上:1using System; 2using System.Collections.…

MySQL初识-架构-安装-初始化-连接-管理工具-数据文件

MySQL架构和结构分析 官方架构图 内部组件结构图 MySQL安装方式 MySQL初始化 MySQL工作模式及常用命令 交互式模式:mysql> 1234567891011121314# 交互式模式下的客户端命令mysql> help # 获取命令帮助 mysql> \? # 同上 mysql> \c # 取消命令执行 mysq…

mdm.Dialogs.promptModal()使用

这是prompt的扩展,提供了更多的功能,比如可以添加其他按钮和图标import mdm.*;mdm.Application.init(this, onInit);function onInit():void {// 启动程序...}quit.addEventListener(MouseEvent.CLICK,quitProgram);function quitProgram(evt:MouseEvent…

Gson的使用,对于不需要html escape的情况的处理

引入: 虽然是小问题,但是我还是需要记录下,我们知道,Google提供了一个Gson框架让我们高效的吧普通对象(一般VO为佳) 和json字符串之间进行互转。因为转换多数是和浏览器打交道的,所以一般默认的…

SpringBoot安装和创建简单的Web应用

SpringBoot安装 方式一: Eclipese->Help->Eclipse Marketplace ->Finde STS -> Install 注意:安装过程中挺慢,而且可能会报错,报错时需要重复以上步骤(重新安装STS后,安装进度接之前的继续进行…

ASP.NET Session 详解

[ASP.NET] Session 详解 开发者在线 Builder.com.cn 更新时间:2008-03-23作者:黑暗凝聚力量,堕落方能自由 来源:CSDN 本文关键词: Web开发 ASP session 详解 本文仅代表作者个人观点,正确与否请读者自行研究!阅读本文…

hadoop namenode管理元数据机制

一、简要namenode管理元数据机制: 二、详细namenode管理元数据机制: 三、secondary namenode 合并edits和fsimage: 四、namenode存储元数据细节: 五、checkpoint触发点: 本文转自lzf0530377451CTO博客,原文…

BABOK - 企业分析(Enterprise Analysis)概要

描述 企业分析描述我们如何捕捉、提炼并明晰业务需要,并定义一个可能实现这些业务需要的一个方案范围,它包括问题定义和分析,业务案例开发,可行性研究和方案范围定义 目的 明确业务战略需要和目标,并建议方案范围 任务…

6、EIGRP配置实验之负载均衡

1、实验拓扑 2、负载均衡原理 等价负载均衡:默认情况下EIGRP只支持等价负载均衡,默认支持4条线路的等价负载均衡,可以通过show ip protocols 查看,最大可以支持16条线路的等价负载均衡,可以在EIGRP路由进程下通过maxim…