prometheus的介绍及安装
文章目录
- 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接口查询和面板,默认端口为9090short-lived jobs:
存在时间不足以被删除的短暂或批量业务,无法通过pull的方式拉取,需要使用push的方式,与pushgeteway结合使用Service Discovery:
服务发现,prometheus支持多种服务发现机制: 文件,DNS,k8s,openstack,等,基于服务发现的过程,通过第三方接口,prometheus查询到需要监控的target列表,然后轮询这些target获取监控数据客户端SDK
官方提供的客户端类库有go,java,python,rubypushgateway
支持临时性的job主动推送指标的中间网关,prometheus默认通过pull方式从exporters拉取,但有些情况我们是不允许promethes与exporters直接进行通信的,这时候我们可以使用pushgateway由客户端主动push数据到pushgateway,在由prometheus拉取。很多时候我们需要自定义一些组件来采集proDash
使用rails开发的dashboard,用于可视化指标数据exporters
支持其他数据源的指标导入到prometheus,支持数据库,硬件,消息中间件,存储系统,http服务器,jmx等
负责收集目标对象的性能数据,并通过http接口供prometheus server获取
只要符合接口格式,就可以被采集alertmanager
实验性组件,用来进行报警prometheus_cli
命令行工具
prometheus的工作流程
prometheus server 定期从配置好的jobs或者exporters中拉metrics.或者接受来自pushgateway发过来的metrics,或者从其他的prometheus server中拉取metrics
prometheus server 在本地存储收集到的metrics,并运行已经定义好的arlt.rules,记录新的时间序列或者向alertmanager推送报警
Alertmanager根据配置文件,对接受的警报进行处理,发出告警
在图形界面中,可视化采集数据,可以使用别人写好的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的介绍及安装相关推荐
- 监控工具普罗米修斯(Prometheus)的介绍与安装
以下我们在arm架构上以Prometheus2.28.1为例来进行一下安装(支持arm和mips) 环境准备 登录后复制 下载安装包 wget https://github.com/prometheu ...
- 监控工具—Prometheus—基础介绍
原文作者:IT有意思 原文地址:Prometheus(普罗米修斯)--适合k8s和docker的监控系统 目录 1.介绍 2.监控原理 3.监控指标 4.系统架构 5.功能用途 6.面临挑战 1.介绍 ...
- y70.第四章 Prometheus大厂监控体系及实战 -- Prometheus监控介绍(一)
1.监控简介 亚马逊副总裁.CTO 沃纳 · 沃格斯(Werner Voegls)说过:"You build it,you run it,you monitor it." (你构建 ...
- Scrapy-Splash的介绍、安装以及实例
scrapy-splash的介绍 在前面的博客中,我们已经见识到了Scrapy的强大之处.但是,Scrapy也有其不足之处,即Scrapy没有JS engine, 因此它无法爬取JavaScrip ...
- Springlake-01 介绍功能安装
Springlake-01 介绍&功能&安装 1. 简介与功能 1)Springlake 是一个企业内容平台SECP 2)是一个可配置的系统,80%内容可以配置 3)允许建立和配置垂直 ...
- Kafka系列一之架构介绍和安装
Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...
- SharpWebMail介绍和安装(转)
SharpWebMail介绍和安装 什么是:SharpWebMail SharpWebMail是一款C#开发的基于WEB应用程序的多语言的WEB邮件服务.它允许我们使用SMTP或IMAP服务来完成发送 ...
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...
- Storm介绍及安装部署
本节内容: Apache Storm是什么 Apache Storm核心概念 Storm原理架构 Storm集群安装部署 启动storm ui.Nimbus和Supervisor 一.Apache S ...
最新文章
- 最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)
- docker学习笔记(五)docker实战
- li 字多出了省略号_文字溢出自动显示省略号css方法 -
- Magicodes.IE 2.0发布
- python如何设置字体大小_[Python Basic]如何设置 Python 的运行环境
- 精通SpringBoot---整合RabbitMQ消息队列
- 面试容易问的 JavaScript 知识点,你知道几个?
- conda添加清华镜像源在cmd环境下执行下列命令
- php学习_第8章_PHP面向对象的程序设计
- 机器学习算法时间复杂度的考虑
- 比较两个字符数组是否相等_Java比较两个数组是否相等(equals())
- 一元线性回归Python实现
- 驾驶证机动车查询验证WebSerivce调用编程接口说明及示例代码
- 电子商务专业英语参考试卷
- 三国志2017服务器维护时间,《三国志2017》版本更新公告
- ajax如何传递josn数据,jq之ajax以及json数据传递
- 5,10,15,20-四(3,5-二甲氧基苯基)卟啉((TdmPP)H2)/2-硝基-5,10,15,20-四(3,5-二甲氧基苯基)卟啉铜(NO2TdmPP)Cu)齐岳供应
- TCP/IP_UDP归纳
- Linux抓包和分析
- 为了让创作的用心被更好地看到 爱奇艺帧绮映画又给自己的“表现力”扩容了...