Prometheus入门教程之架构与安装(一)

106次阅读

共计 2331 个字符,预计需要花费 6 分钟才能阅读完成。

1 Prometheus简介和架构

Prometheus 是由 SoundCloud 开源监控告警解决方案。架构图如下:
Prometheus入门教程之架构与安装(一)
如上图,Prometheus主要由以下部分组成:

  • Prometheus Server:用于抓取和存储时间序列化数据
  • Exporters:主动拉取数据的插件
  • Pushgateway:被动拉取数据的插件
  • Altermanager:告警发送模块
  • Prometheus web UI:界面化,也包含结合Grafana进行数据展示或告警发送

prometheus本身是一个以进程方式启动,之后以多进程和多线程实现监控数据收集、计算、查询、更新、存储的这样一个C/S模型运行模式。

![image-20220524114401712](/Users/mervinwang/Library/Application Support/typora-user-images/image-20220524114401712.png)

2 基本概念

  • 多维数据模型(时序由 metric 名称和 k/v 的 labels 构成)
  • 灵活的查询语句(PromQL)
  • 无依赖存储,支持 local 和 remote 不用模型
  • 采用 http 协议,使用 pull 模式,拉取数据
  • 监控目标,可以采用服务发现和静态配置的方式
  • 支持多种统计数据模型,图形化友好

3 关键组件或概念

  • Prometheus Server,主要用于抓取数据和存储时序数据,另外还提供查询和报警规则的配置管理。
  • Exporter,可以理解为客户端,负责收集数据,并暴露给Prometheus Server,Server定时采集。有两种方式:直接方式,类似于白盒测试,自己开发应用程序,埋点;间接方式,类似于黑盒测试,我们可以通过它对外暴露的接口采集数据。
  • AlertManager,告警处理中心,Prometheus Server通过PromQL设置的告警规则,触发告警,AlertManager则对这些告警做分发和管理。
  • PromQL,PromQL接口可以对接其它图形界面,例如Grafana可以配置Prometheus作为数据源。
  • PushGateway,应用程序主动push数据到PushGateway,Prometheus Server定期pull数据。
  • Metric,监控指标。Metric监控意味着采用各种指标,维度来监控系统状态。在Prometheus里,一个数据点由Metric(metric+labelsets)+timestamp+value组成。数据点是在Prometheus pull采集的数据处理并存储后形成的,所以前面所说的timestamp时间戳是针对pull后的时间,并不是在客户端采集时候的时间戳。整个数据是以这些数据点以时间戳为横轴的集合。

4 安装

4.1 下载镜像包

docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana

4.2 启动node-exporter

docker run -d -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  prom/node-exporter

4.3 启动prometheus

# 创建配置文件
[root@VM-10-48-centos ~] mkdir /data/config/prometheus -p && cd /data/config/prometheus
[root@VM-10-48-centos prometheus]vim prometheus.yml
global:
  scrape_interval:     60s
  evaluation_interval: 60s
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
  - job_name: linux
    static_configs:
      - targets: ['172.16.1.37:9100']
        labels:
          instance: localhost
scrape_interval:指标数据抓取间隔。
scrape_timeout:指标数据抓取超时时间。
metrics_path:获取指标的HTTP资源路径。
scheme:抓取指标数据请求的协议。
bearer_token_file:用于验证身份授权的Bearer Token所在文件。
kubernetes_sd_configs:Kubernetes平台服务发现配置信息,允许从Kubernetes的REST API检索抓取目标,并始终与集群状态保持同步。
relabel_configs:允许在抓取之前对任何目标及其标签进行高级修改。

容器启动(请提前配置好docker环境及镜像加速)

docker run -it --name prometheus -d -p 9090:9090 -v /data/config/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

Prometheus入门教程之架构与安装(一)

Prometheus入门教程之架构与安装(一)

访问 http://localhost:9100/metrics,可以看到当前 node exporter 获取到的当前主机的所有监控数据,如下所示:v

Prometheus入门教程之架构与安装(一)然后是一段relabel_configs配置,其作用主要是用于匹配最终要抓取的endpoint,构造抓取的地址,甚至给最终的时序指标加上一些label。这里以apiserver发现的node_exporter endpoint信息为例

正文完
 
mervinwang
版权声明:本站原创文章,由 mervinwang 2023-07-26发表,共计2331字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
文章搜索