docker-安装prometheus

概述

什么是Prometheus

如果对Prometheus不熟悉的, 可以先了解一下Prometheus的官网或者文档;
Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

特点

普罗米修斯的主要特点是:

  1. 具有由指标名称和键/值对标识的时间序列数据的多维数据模型
  2. PromQL,一种灵活的查询语言,可利用此维度
  3. 不依赖分布式存储;单服务器节点是自治的
  4. 时序收集通过 HTTP 上的拉取模型进行
  5. 通过中间网关支持推送时间序列
  6. 通过服务发现或静态配置发现目标
  7. 多种图形和仪表板支持模式

什么是样本

样本:在时间序列中的每一个点称为一个样本(sample),样本由以下三部分组成:

  • 指标(metric):指标名称和描述当前样本特征的
    labelsets;通俗地说,指标是数字度量。时间序列意味着随时间记录更改。用户想要测量的内容因应用程序而异。对于Web服务器,它可能是请求时间,对于数据库,它可能是活动连接数或活动查询数等。
    指标在理解应用程序以某种方式工作的原因方面起着重要作用。假设您正在运行一个 Web
    应用程序,发现该应用程序很慢。您将需要一些信息来了解您的应用程序发生了什么。例如,当请求数很高时,应用程序可能会变慢。如果您有请求计数指标,则可以找出原因并增加处理负载的服务器数量。
  • 时间戳(timestamp):一个精确到毫秒的时间戳;
  • 样本值(value): 一个 folat64 的浮点型数据表示当前样本的值。

表示方式:通过如下表达方式表示指定指标名称和指定标签集合的时间序列:{

例如,指标名称为 api_http_requests_total,标签为 method=“POST” 和 handler=“/messages” 的时间序列可以表示为:api_http_requests_total{method=“POST”, handler=“/messages”}

组件

  • Prometheus Server: 用于收集和存储时间序列数据。
  • Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。
  • Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端,所有向promtheus server提供监控数据的程序都可以被称为exporter
  • Alertmanager: 从 Prometheus server 端接收到 alerts后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。
  • 各种支持工具:如Grafana监控仪表盘,可视化监控数据
  • pushgateway: 各个目标主机可上报数据到pushgateway,然后prometheus server统一从pushgateway拉取数据。

在这里插入图片描述

从上图可发现,Prometheus整个生态圈组成主要包括prometheus server,Exporter,pushgateway,alertmanager,grafana,Web ui界面,Prometheus server由三个部分组成,Retrieval,Storage,PromQL

Retrieval负责在活跃的target主机上抓取监控指标数据
Storage存储主要是把采集到的数据存储到磁盘中
PromQL是Prometheus提供的查询语言模块。

Prometheus工作流程

  • Prometheus
    server可定期从活跃的(up)目标主机上(target)拉取监控指标数据,目标主机的监控数据可通过配置静态job或者服务发现的方式被prometheus server采集到,这种方式默认的pull方式拉取指标;也可通过pushgateway把采集的数据上报到prometheus server中;还可通过一些组件自带的exporter采集相应组件的数据;
  • Prometheus server把采集到的监控指标数据保存到本地磁盘或者数据库;
  • Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到alertmanager
  • Alertmanager通过配置报警接收方,发送报警到邮件,微信或者钉钉等
  • Prometheus 自带的web ui界面提供PromQL查询语言,可查询监控数据
  • Grafana可接入prometheus数据源,把监控数据以图形化形式展示出

Prometheus四种指标分类

  • Counter: 计数器类型,只增不减,如机器的启动时间,HTTP 访问量等。机器重启不会置零,在使用这种指标类型时,通常会结合rate()方法获取该指标在某个时间段的变化率。
  • Gauge: 仪表盘,可增可减,如CPU使用率,大部分监控数据都是这种类型的。
  • Histogram: 是一个对数据分布情况的图形表示,由一系列高度不等的长条图(bar)或线段表示,用于展示单个测度得知的分布。
  • Summary: 与Histogram类型类似,摘要用于表示一段时间内的数据采样的结果(通常是请求持续时间或响应大小等)

安装

安装docker

  1. docker基础
    1.1 docker的安装
    1.2 docker-compose的安装
    curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    #下载docker-compose文件
    mv docker-compose /usr/local/bin
    #将文件复制到/usr/local/bin环境变量下面
    chmod +x /usr/local/bin/docker-compose
    #给他一个执行权限
    

docker-compose安装prometheus以及其他

具体文件在https://gitee.com/zhangzonghai/prometheus-docker-compose,
执行docker-compose -f docker-compose-prometheus.yml up -d 即可

安装完成后可以访问
prometheus: 你的ip:9090
grafana: 你的ip: 3000
alertmanager: 你的ip:9093
node_exporter: 你的ip:9100

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值