文章目录

  • Prometheus 是什么?
  • Prometheus 的优点
    • 1. 配置灵活
    • 2. 监控更多多样性
    • 3. 非常高效的存储
  • prometheus的架构
  • prometheus的工作流程
  • prometheus 部署
  • 通过网址访问

Prometheus 是什么?

Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社区也十分活跃,他们便将它独立成开源项目,并且有公司来运作。google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。

Prometheus 的优点

1. 配置灵活

使用过zabbix的同学应该都体验过安装时候的安装依赖包的痛苦,而premetheus核心部分只有一个单独的二进制文件,下载解压安装即可,没有依赖的第三方库。

2. 监控更多多样性

prometheus支持多种语言的的客户端,我们通过客户端方便对核心业务进行埋点,比如下单,添加购物车等流程。
而且prometheus已经有非常多的系统集成:比如
应用层面的监控:nginx,haproxy,mysql ,docker等
系统层面如: SNMP协议监控,主机监控,进程监控
容器云监控: docker,k8s openstack私有云

3. 非常高效的存储

平均一个采样数据占 ~3.5 bytes左右,320万的时间序列,每30秒采样,保持60天,消耗磁盘大概228G。

prometheus的架构


对照图中的每一部分进行介绍:

  • prometheus server
    主要负责数据的采集和存储,提供PromQL查询语言支持
    Retrieval:采样模块,prometheus的服务器在哪里拉取数据,检索拉取到的数据分发给 TSDB进行存储
    TSDB:存储模块默认本地存储为TSDB
    HTTP server : 提供http接口查询和面板,默认端口为9090

  • short-lived jobs:
    存在时间不足以被删除的短暂或批量业务,无法通过pull的方式拉取,需要使用push的方式,与pushgeteway结合使用

  • Service Discovery:
    服务发现,prometheus支持多种服务发现机制: 文件,DNS,k8s,openstack,等,基于服务发现的过程,通过第三方接口,prometheus查询到需要监控的target列表,然后轮询这些target获取监控数据

  • 客户端SDK
    官方提供的客户端类库有go,java,python,ruby

  • pushgateway
    支持临时性的job主动推送指标的中间网关,prometheus默认通过pull方式从exporters拉取,但有些情况我们是不允许promethes与exporters直接进行通信的,这时候我们可以使用pushgateway由客户端主动push数据到pushgateway,在由prometheus拉取。很多时候我们需要自定义一些组件来采集

  • proDash
    使用rails开发的dashboard,用于可视化指标数据

  • exporters
    支持其他数据源的指标导入到prometheus,支持数据库,硬件,消息中间件,存储系统,http服务器,jmx等
    负责收集目标对象的性能数据,并通过http接口供prometheus server获取
    只要符合接口格式,就可以被采集

  • alertmanager
    实验性组件,用来进行报警

  • prometheus_cli
    命令行工具

prometheus的工作流程

  1. prometheus server 定期从配置好的jobs或者exporters中拉metrics.或者接受来自pushgateway发过来的metrics,或者从其他的prometheus server中拉取metrics

  2. prometheus server 在本地存储收集到的metrics,并运行已经定义好的arlt.rules,记录新的时间序列或者向alertmanager推送报警

  3. Alertmanager根据配置文件,对接受的警报进行处理,发出告警

  4. 在图形界面中,可视化采集数据,可以使用别人写好的grafana模板。

prometheus 部署

下载地址:https://github.com/prometheus/prometheus/releases/

[root@zmedu-17 ~]# tar xf prometheus-2.7.2.linux-amd64.tar.gz
[root@zmedu-17 ~]# mv prometheus-2.7.2.linux-amd64 /usr/local/prometheus
[root@zmedu-17 ~]# cd /usr/local/prometheus/
[root@zmedu-17 prometheus]# pwd
[root@zmedu-17 prometheus]# ls
console_libraries  NOTICE          promtool
consoles           prometheus
LICENSE            prometheus.yml[root@zmedu-17 prometheus]# ./prometheus --version
prometheus, version 2.7.2 (branch: HEAD, revision: 82f98c825a1437c0a24056eb4dc986d9a3fc7fae)build user:       root@ab86c672c33abuild date:       20190302-14:57:04go version:       go1.11.5
[root@zmedu-17 prometheus]# 

后台启动普罗米修斯:

[root@zmedu-17 prometheus]# ./prometheus &
[1] 66474

通过网址访问

通过后台执行http://192.168.1.17:9090

prometheus的介绍及安装相关推荐

  1. 监控工具普罗米修斯(Prometheus)的介绍与安装

    以下我们在arm架构上以Prometheus2.28.1为例来进行一下安装(支持arm和mips) 环境准备 登录后复制 下载安装包 wget https://github.com/prometheu ...

  2. 监控工具—Prometheus—基础介绍

    原文作者:IT有意思 原文地址:Prometheus(普罗米修斯)--适合k8s和docker的监控系统 目录 1.介绍 2.监控原理 3.监控指标 4.系统架构 5.功能用途 6.面临挑战 1.介绍 ...

  3. y70.第四章 Prometheus大厂监控体系及实战 -- Prometheus监控介绍(一)

    1.监控简介 亚马逊副总裁.CTO 沃纳 · 沃格斯(Werner Voegls)说过:"You build it,you run it,you monitor it." (你构建 ...

  4. Scrapy-Splash的介绍、安装以及实例

    scrapy-splash的介绍   在前面的博客中,我们已经见识到了Scrapy的强大之处.但是,Scrapy也有其不足之处,即Scrapy没有JS engine, 因此它无法爬取JavaScrip ...

  5. Springlake-01 介绍功能安装

    Springlake-01 介绍&功能&安装 1. 简介与功能 1)Springlake 是一个企业内容平台SECP 2)是一个可配置的系统,80%内容可以配置 3)允许建立和配置垂直 ...

  6. Kafka系列一之架构介绍和安装

    Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...

  7. SharpWebMail介绍和安装(转)

    SharpWebMail介绍和安装 什么是:SharpWebMail SharpWebMail是一款C#开发的基于WEB应用程序的多语言的WEB邮件服务.它允许我们使用SMTP或IMAP服务来完成发送 ...

  8. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  9. Storm介绍及安装部署

    本节内容: Apache Storm是什么 Apache Storm核心概念 Storm原理架构 Storm集群安装部署 启动storm ui.Nimbus和Supervisor 一.Apache S ...

最新文章

  1. 最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)
  2. docker学习笔记(五)docker实战
  3. li 字多出了省略号_文字溢出自动显示省略号css方法 -
  4. Magicodes.IE 2.0发布
  5. python如何设置字体大小_[Python Basic]如何设置 Python 的运行环境
  6. 精通SpringBoot---整合RabbitMQ消息队列
  7. 面试容易问的 JavaScript 知识点,你知道几个?
  8. conda添加清华镜像源在cmd环境下执行下列命令
  9. php学习_第8章_PHP面向对象的程序设计
  10. 机器学习算法时间复杂度的考虑
  11. 比较两个字符数组是否相等_Java比较两个数组是否相等(equals())
  12. 一元线性回归Python实现
  13. 驾驶证机动车查询验证WebSerivce调用编程接口说明及示例代码
  14. 电子商务专业英语参考试卷
  15. 三国志2017服务器维护时间,《三国志2017》版本更新公告
  16. ajax如何传递josn数据,jq之ajax以及json数据传递
  17. 5,10,15,20-四(3,5-二甲氧基苯基)卟啉((TdmPP)H2)/2-硝基-5,10,15,20-四(3,5-二甲氧基苯基)卟啉铜(NO2TdmPP)Cu)齐岳供应
  18. TCP/IP_UDP归纳
  19. Linux抓包和分析
  20. 为了让创作的用心被更好地看到 爱奇艺帧绮映画又给自己的“表现力”扩容了...

热门文章

  1. Java石头迷阵小游戏
  2. 小学计算机社团会议记录,关于社团会议记录 .doc
  3. linux数据结构和uthash,UThash 的数据结构
  4. 分享|Strata Data Conference北京见闻
  5. 小技巧!无需插件,一键批量下载微信公众号的图片!
  6. Android开发工程师如何区分其能力等级(初级,中级,高级)
  7. 生鲜系统应用的主要技术
  8. Android 语音提示
  9. 新媒体运营岗位 部分公司要求汇编
  10. 九九乘法表的写法,简单易懂!