什么是Prometheus?

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。
2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。
Prometheus目前在开源社区相当活跃。
Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。

Prometheus的特点

  • 多维度数据模型。
  • 灵活的查询语言。
  • 不依赖分布式存储,单个服务器节点是自主的。
  • 通过基于HTTP的pull方式采集时序数据。
  • 可以通过中间网关进行时序列数据推送。
  • 通过服务发现或者静态配置来发现目标服务对象。
  • 支持多种多样的图表和界面展示,比如Grafana等。

官网地址:https://prometheus.io/

架构图

基本原理

Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

服务过程

  • Prometheus Daemon负责定时去目标上抓取metrics(指标)数据,每个抓取目标需要暴露一个http服务的接口给它定时抓取。Prometheus支持通过配置文件、文本文件、Zookeeper、Consul、DNS SRV Lookup等方式指定抓取目标。Prometheus采用PULL的方式进行监控,即服务器可以直接通过目标PULL数据或者间接地通过中间网关来Push数据。
  • Prometheus在本地存储抓取的所有数据,并通过一定规则进行清理和整理数据,并把得到的结果存储到新的时间序列中。
  • Prometheus通过PromQL和其他API可视化地展示收集的数据。Prometheus支持很多方式的图表可视化,例如Grafana、自带的Promdash以及自身提供的模版引擎等等。Prometheus还提供HTTP API的查询方式,自定义所需要的输出。
  • PushGateway支持Client主动推送metrics到PushGateway,而Prometheus只是定时去Gateway上抓取数据。
  • Alertmanager是独立于Prometheus的一个组件,可以支持Prometheus的查询语句,提供十分灵活的报警方式。

Prometheus 安装

二进制包方式

二进制包方式非常简单,推荐使用这种方式。从 官网 下载对应平台的二进制包,然后解压即可。以 Linux 64 位平台为例,当前版本为 2.19.1。

wget https://github.com/prometheus/prometheus/releases/download/v2.19.1/prometheus-2.19.1.linux-amd64.tar.gz
tar xvfz prometheus-2.19.1.linux-amd64.tar.gz
cd prometheus-2.19.1.linux-amd64
./prometheus

上面的命令会在默认的 9090 端口启动 Prometheus 服务,打开地址 http://localhost:9090/ 即可看到其 Web 界面。


后续ing

参考链接:

https://www.cnblogs.com/chenqionghe/p/10494868.html
https://blog.jaggerwang.net/cloud-native-monitor-system-prometheus-intro/

云原生自动监控报警系统Prometheus相关推荐

  1. 阿里云容器Kubernetes监控(七) - Prometheus监控方案部署

    前言 Prometheus是一款面向云原生应用程序的开源监控工具,作为第一个从CNCF毕业的监控工具而言,开发者对于Prometheus寄予了巨大的希望.在Kubernetes社区中,很多人认为Pro ...

  2. 全套生产环境监控报警系统(Prometheus+Grafana+alertmanager)

    一.什么是promethues? 由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB). 二.promethues为什么更适合云监控? 云原生使用容器和k8s环境作为运行基础,一个整 ...

  3. 云原生分布式监控系统?看鹅厂 T11 架构师如何整活儿

    来源 | 机智的程序员小熊 责编 | 寇雪芹 头图 | 下载于视觉中国 笑谈监控系统 随着时间的积累,出现故障的风险越来越高,事故的发生总是出人预料,如果采用人力运维的方式,对于故障定位.故障处理都是 ...

  4. 银行110自动监控报警系统解决方案

    110自动报警系统中增加视频服务功能,就是对金融系统原有报警及监控系统进行整合,避免了重复建设.重复投资,为银行网点安全防范提供多重保险,进而更加放心地以技术取代人工防范. 做什么说什么,所以今天我想 ...

  5. 基于TIG的云原生系统监控方案

  6. 作者领读 | Prometheus云原生监控

    撰文:朱政科 01 作者导读 昨天收到书,用了两天时间,我也亲自把这本书读完了一遍.今天写这篇文章的目的是带读者用正确的方式读这本书. <Prometheus云原生监控:运维与开发实战> ...

  7. 从零搭建Prometheus监控报警系统

    从零开始搭建Prometheus自动监控报警系统 从零搭建Prometheus监控报警系统 什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据 ...

  8. 沃特玛采集均衡模块_云原生在京东丨云原生时代下的监控:如何基于云原生进行指标采集?...

    从 Kubernetes 成为容器管理领域的事实标准开始,基于云原生也就是基于 Kubernetes 原生.在云的体系下,基础硬件基本上都被抽象化.模糊化,硬故障需要人为干预的频次在逐渐降低,健康检查 ...

  9. 云原生应用 Kubernetes 监控与弹性实践

    前言 云原生应用的设计理念已经被越来越多的开发者接受与认可,而Kubernetes做为云原生的标准接口实现,已经成为了整个stack的中心,云服务的能力可以通过Cloud Provider.CRD C ...

最新文章

  1. python中的正则表达式语法_Python基础教程之正则表达式基本语法以及re模块
  2. MySQL 重要函数实例
  3. 认识Linux设备驱动模型和Kobject
  4. 第五章-分布式并行编程框架MapReduce
  5. 区块链BaaS云服务(40) 泰岳联盟链
  6. cannot和can not的区别 666666
  7. mandatory oracle 字段,Oracle 数据库需要在2019年April之前Mandatory升级的说明
  8. WordPress分类列表函数:wp_list_categories用法及参数详解举例
  9. 理解 Linux 配置文件【转】
  10. 金蝶盘点机PDA轻松扫码生产领料,生产型企业进销存条码管理软件
  11. 北华大学c语言题库百度云,北华大学C语言题库精简打印版(全).docx
  12. VUE项目配置UEditor集成秀米编辑器
  13. 服务器word文档会是只读的,WORD文档一保存就提示只读是什么原因
  14. 硬盘检测重映射扇区计数失败
  15. VR乒乓球项目Unity3D 开发经验整理,1总纲
  16. web开发中移动端适配
  17. 幽默故事:1、小帅哥应聘;2、不交作业(木子家原创)
  18. 【云开发】全网最详细壁纸小程序教程+源码
  19. 内存系列三:内存初始化浅析
  20. 现代计算机系统必须配置的核心,第一章 计算机系统概述

热门文章

  1. java+nginx+tomcat+memcache
  2. 数据结构基础(9) --单链表的设计与实现(2)之高级操作
  3. Vue入坑——vue-router单页面多路由配置
  4. 在MSP432 LaunchPad上运行MicroPython
  5. SpringMVC自定义注入controller变量
  6. JQ之路——layer第三方弹窗
  7. 杂记 C中的volatile
  8. GNS3-ENSP对接实验
  9. 自定义的html radio button的样式
  10. IBM胡世忠谈大数据时代企业面临的四大挑战