介绍

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

Prometheus的特点:

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

架构图

Prometheus服务大致过程:

  • Prometheus 定时去目标上抓取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 支持通过SNMP协议获取mertics数据.通过配置job,利用snmp_export读取设备监控信息.

指标(Metric)类型

  • Counter 计数器,从数据0开始累计计算. 理想状态会永远增长. 累计计算请求次数等
  • Gauges 瞬时状态的值. 可以任意变化的数值,适用 CPU 使用率 温度等
  • Histogram 对一段时间范围内数据进行采样,并对所有数值求和与统计数量、柱状图. 某个时间对某个度量值,分组,一段时间http相应大小,请求耗时的时间。
  • Summary 同样产生多个指标,分别带有后缀_bucket(仅histogram)、_sum、_count

Histogram和Summary都可以获取分位数。
通过Histogram获得分位数,要将直方图指标数据收集prometheus中, 然后用prometheus的查询函数histogram_quantile()计算出来。 Summary则是在应用程序中直接计算出了分位数。
Histograms and summaries中阐述了两者的区别,特别是Summary的的分位数不能被聚合。
注意,这个不能聚合不是说功能上不支持,而是说对分位数做聚合操作通常是没有意义的。
LatencyTipOfTheDay: You can’t average percentiles. Period中对“分位数”不能被相加平均的做了很详细的说明:分位数本身是用来切分数据的,它们的平均数没有同样的分位效果。

主要我们监控用到最上面两种,下面两种类型目前我没有接触,上面这段文字与介绍引用自lijiaocn

安装Prometheus

本次搭建利用docker方式.整体搭建完成需要两个容器.暂不配置告警相关,只做监控数据

前提

  • 搭建位置: /home/aLong/prometheus/

  • 环境:docker19.03.1 需要指定版本请查阅官方文档.

  • 系统:centos7

准备工作

Prometheus的配置文件: prometheus.yml
我们建立在搭建位置的根下: touch prometheus.yml
在配置文件中加入测试演示配置

global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
scrape_configs:
- job_name: prometheus
honor_timestamps: true
scrape_interval: 5s
scrape_timeout: 3s
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- localhost:9090

注意配置文件的格式为yaml,语法问题请参考这里.

安装与运行

  • 通过docker 启动 prometheus.

    docker run -d -p 9090:9090 \
    -v /home/along/prometheus.yml:/etc/prometheus/prometheus.yml \
    --name prometheus \
    prom/prometheus \
    --config.file=/etc/prometheus/prometheus.yml \
    --web.enable-lifecycle

–web.enable-lifecycle 启用远程热加载配置文件
curl -X POST http://IP:9090/-/reload


注意这里docker热加载存在一个问题,上面挂在文件为/home/along/prometheus.yml 如果直接编辑此文件会改变文件的inode, 热加载不会成功.

**解决办法: 我们不在挂在配置文件上做修改,复制一份,通过冲顶下方式到prometheus.yml上面 **

例如:

  1. cp /home/along/prometheus.yml /home/along/prom-edit.yml

  2. vi /home/along/prom-edit.ym

  3. cat /home/along/prom-edit.ym > /home/along/prometheus.yml

  4. 此时 curl -X POST http://IP:9090/-/reload 会成功加载.


验证服务

访问 http://IP:9090 会进入简单webUI界面中.这是prometheus的web界面.

里面看到一些信息和监控数据.可以展示图表.

点击 Status->Target 可以看到监控的设备信息.

访问http://IP:9090/metrics 可以看到监控数据.

到这里,Prometheus已经安装成功,并监测到本机数据.

Grafana安装

Grafana是用于可视化大型测量数据的开源程序,它提供了强大和优雅的方式去创建、共享、浏览数据。
Dashboard中显示了你不同metric数据源中的数据。
Grafana最常用于因特网基础设施和应用分析,但在其他领域也有用到,比如:工业传感器、家庭自动化、过程控制等等。
Grafana支持热插拔控制面板和可扩展的数据源,目前已经支持Graphite、InfluxDB、OpenTSDB、Elasticsearch、Prometheus等

官方:docker run -d -p 3000:3000 --name grafana grafana/grafana

汉化:docker run -d -p 3000:3000 --name grafana chenwl2016/grafana-chs:0.1.5

执行后,通过http:IP:3000 访问grafana.
缺省账号密码admin

进入后会有首页的一个引导.
添加数据源,选择prometheus.
之后可以看到默认的模板上会有数据.

通过官网查询模板插件.导入到系统中.
自定义模板选择需要的数据来展示,这里我还没玩6,暂不多说了.

参考

https://grafana.com/docs/
https://prometheus.io/docs/introduction/overview/
https://www.hi-linux.com/posts/25047.html#%E5%AE%89%E8%A3%85prometheus
https://www.lijiaocn.com/%E9%A1%B9%E7%9B%AE/2018/08/03/prometheus-usage.html#metric%E7%B1%BB%E5%9E%8B

Prometheus+Grafana安装搭建的更多相关文章

  1. Prometheus(一):Prometheus+Grafana 安装配置

    一.基础环境 系统 IP 监控主机 CentOS 7 192.168.56.200 被监控主机 CentOS 7 192.168.56.201 二.Prometheus服务端安装 以下操作皆在监控主机 ...

  2. Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统

    prometheus安装和配置 prometheus组件介绍 1.Prometheus Server: 用于收集和存储时间序列数据. 2.Client Library: 客户端库,检测应用程序代码,当 ...

  3. Prometheus Grafana快速搭建

    Prometheus Prometheus和Grafana组合基本上是监控系统的标配.Prometheus做存储后端,Grafana做分析及可视化界面. 普罗米修斯是开源的系统监控/报警工具库,功能非 ...

  4. prometheus + grafana安装部署(centos6.8)

    官方网址:https://prometheus.io/ GitHub网址:https://github.com/prometheus/prometheus 软件下载地址:https://prometh ...

  5. Prometheus+Grafana+Altermanager搭建监控系统

    基本概念 Prometheus 时间序列化数据库,我的理解就是将数据打上标签,以时间维度存储.后面有机会在深入研究. Prometheus架构如下: Grafana Prometheus中存储的数据, ...

  6. Prometheus 和 Grafana 安装部署

    Prometheus 是一套开源的系统监控报警框架.Prometheus 作为生态圈 Cloud Native Computing Foundation(简称:CNCF)中的重要一员,其活跃度仅次于 ...

  7. Prometheus+Grafana监控-基于docker-compose搭建

    前言 Prometheus Prometheus 是有 SoundCloud 开发的开源监控系统和时序数据库,基于 Go 语言开发.通过基于 HTTP 的 pull 方式采集时序数据,通过服务发现或静 ...

  8. k8s集群监控 cadvisor/exporter+prometheus+grafana

    ### k8s监控处理 ### 1.cadvisor/exporter+prometheus+grafana 安装#### 1.1 配置nfs安装```shellubuntu: nfs 服务器 apt ...

  9. Prometheus+Grafana+kafka_exporter监控kafka

    Prometheus+Grafana+kafka_exporter搭建监控系统监控kafka 一.Prometheus+Grafana+kafka_exporter搭建监控系统监控kafka 1.1K ...

随机推荐

  1. 在Ubuntu 内安装spin

    相关课程:协议分析与设计 虽然一些镜像仓库内提供了spin,并且可以直接使用apt 或者yum 安装,但其版本总不是最新的,而且无法使用ispin 图形界面.因此本文介绍了手动下载编译spin 的步骤 ...

  2. Numpy库基础___五

    Numpy数据存取 •NumPy的随机数函数 a = np.random.rand(1,2,3) print(a) #[[[0.03339719 0.72784732 0.47527802] # [0 ...

  3. Buffer 和 cache

    要问Cache和Buffer的区别,首先要问另一个问题:为何会存在Cache和Buffer? 无论缓存还是缓冲,其实本质上解决的都是读写速度不匹配的问题,从这个角度,他们非常相似. 知乎上关于Cach ...

  4. CentOS 7 源码安装 Zabbix 6.0

    Zabbix 主要有以下几个组件组成: Zabbix Server:Zabbix 服务端,是 Zabbix 的核心组件.它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中. Zabbix ...

  5. python+pytest接口自动化(10)-session会话保持

    在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能请求,否则会提示请登录,那么怎样解决呢? 上一篇文章我们介绍了Cookie绕过登录,其实这就是保持登录状态的方法之一. 另外一种方式则是通过 ...

  6. 【Vulnhub练习】Acid

    靶机信息 下载链接 https://download.vulnhub.com/acid/Acid.rar 靶机说明 Welcome to the world of Acid. Fairy tails ...

  7. Spring Cloud Alibaba 之 Nacos

    Nacos 技术讲解 一提到分布式系统就不的不提一下 CAP 原则 什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability ...

  8. 一条SQL语句执行得很慢的原因有哪些

    说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你"输入URL回车之后,究竟发生了什么"一样,看看你能说出多少了. 之前腾讯 ...

  9. 数据库连接Database link?

    在一个用户下,可以获取到另外的用户下的表的数据,通常在跨数据库时使用. create database link link93 connect to scott identified by tiger ...

  10. zookeeper 是如何保证事务的顺序一致性的?

    zookeeper 采用了全局递增的事务 Id 来标识,所有的 proposal(提议)都在被 提出的时候加上了 zxid,zxid 实际上是一个 64 位的数字,高 32 位是 epoch(时 期; ...