【Prometheus】2. 概述及部署

2021-05-01 17:01:03 浏览数 (1)

概述

1. Prometheus是什么

简介

Prometheus 是由 SoundCloud 开源监控告警解决方案。2012年成为在社区开源,拥有非常活跃的开发人员和用户社区,Prometheus于2016年加入云原生计算基金会(CNCF),成为继k8s之后的第二个托管项目。

https://prometheus.io/

https://github.com/prometheus

特点

  • 多维数据模型:由度量名称和键值对标示的时间序列数据
  • PromSQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询
  • 不依赖分布式存储,单个服务节点可以直接工作
  • 基于HTTP的pull方式采集时间序列数据
  • 推送时间序列数据通过PushGateWay组件支持
  • 通过服务发现或静态配置发现目标
  • 多种图形模型以及仪表盘支持

2. Prometheus组成以及架构

  • 数据采集:
    • Push gateway:短期存储指标数据,主要用于临时性任务
    • jobs/exporters:采集已有的第三方服务监控指标并暴露metrics,类似sql/http任务,通过jobs(类似http会暴露metrics接口供Prometheus抓取) 或者 exporters(监控agent,获取不同的数据源,再通过Prometheus serve抓取)
  • Prometheus Server:收集并存储时间序列数据库,并提供查询接口
  • Service discovery:服务发现与监控原生支持k8s全方位监控
  • WEB UI:通过PromQL查看数据,Prometheus web UI(简单的web控制台),grafana,API clients
  • Alertmanager:监控告警组件,支持email/wechat
  • ClientLibray:客户端库,支持python java golang等,支持暴露metrics

3. 数据模型

  • Prometheus 将所有数据存储为时间序列,具有相同度量名称以及标签属于同一个指标;
  • 每一个时间序列都有度量标准名称和一组的键值对(也称为标签)
  • 时间序列格式: <metric name>{<label name>=<label value>, ...}

示例:api_http_requests_total{method="POST", handler="/messages"}

4. 指标类型

  • counter:递增的计数器
  • gauge:可以任意变化的数值
  • histogram:对一段时间范围内数据进行采样,并对所有数据数值求和与统计数量
  • summary:与histogram类似

5. 作业和实例

实例:可以抓取的目标成为实例(Instances)

作业:具有相同目标的实例集合称为作业(jobs)

部署

1. 二进制部署

  • 下载二进制包:prometheus.io
  • 解压prometheus:tar -zxvf prometheus-2.26.0.linux-amd64.tar.gz
  • 修改工作目录:mv prometheus-2.26.0.linux-amd64 /usr/local/prometheus
  • 进入工作目录:cd /usr/local/prometheus
  • 查看参数说明:./prometheus --help
  • 配置服务:
    • cd /usr/lib/systemd/system
    • vim prometheus.service
    • systemctl daemon-reload
vim prometheus.service vim prometheus.service
  • 启动服务:systemctl start prometheus
  • 停止服务:systemctl stop prometheus

2. docker部署

docker run -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

0 人点赞