目录

普罗米修斯介绍

普罗米修斯的主要特点是

1.易于管理

2.强大的数据模型

3.PromQL

4.高效

5.可扩展

6.易于集成

7.可视化

Prometheus 的架构

Pushgateway 

node exporter

prometheus安装

1.下载安装包

 2.解压,并修改prometheus中的prometheus.yml

 3.设置 node_exporter 开机自启

分发文件到其他机器

设置为开机启动(每台机器)

4.启动Prometheus Server、Pushgateway

5.打开web查看


普罗米修斯介绍

prometheus 是一个开源系统监控和警报工具包,最初是在SoundCloud 上构建的 。自 2012 年成立以来,许多公司和组织都采用了 Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并澄清项目的治理结构,Prometheus于 2016 年加入 云原生计算基金会,作为继Kubernetes之后的第二个托管项目。

普罗米修斯的主要特点是

1.易于管理

  • Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库、缓存等等),唯一需要的就是本地磁盘,因此不会有潜在级联故障的风险
  • Prometheus 基于Pull模型的架构方式,可以在任何地方(本地电脑,开发环境,测试环境)
  • Prometheus 服务发现(Service Discovery)

2.强大的数据模型

所有采集的监控数据均以指标(metric)的形式保存在内置时间序列数据库(TSDB)中,所有的样本除了基本的指标名称以外,还包含一组用于描述该样本特征的标签

3.PromQL

4.高效

官网描述:

  • 处理数以百万的监控指标
  • 每秒处理数十万的数据点

5.可扩展

可以在每个数据中心,每个团队运行独立的Prometheus Server。Prometheus对于联邦集群的支持,可以让多个Prometheus实例产生一个逻辑集群,当单实例Prometheus Server处理的任务量过大时,通过使用功能分区(sharding)+联邦集群(federation)可以对其进行扩展

6.易于集成

7.可视化

Prometheus 的架构

mac docker 普罗米修斯 grafana 普罗米修斯 flink_flink

Prometheus既然设计为一个维度存储模型,可以把它理解为一个OLAP系统

Pushgateway 

Prometheus在正常情况下是采用拉模式从产生metric的作业或者exporter(比如专门监控主机的NodeExporter)拉取监控数据。但是我们要监控的是Flink on YARN作业,想要让Prometheus自动发现作业的提交、结束以及自动拉取数据显然是比较困难的。PushGateway就是一个中转组件,通过配置Flink on YARN作业将metric推到PushGateway,Prometheus再从PushGateway拉取就可以了。

node exporter

在Prometheus的架构设计中,Prometheus Server主要负责数据的收集,存储并且对外提供数据查询支持,而实际的监控样本数据的收集则是由Exporter完成。因此为了能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。

prometheus安装

1.下载安装包

在官网中下载 prometheus、node_exporter、pushgateway

mac docker 普罗米修斯 grafana 普罗米修斯 flink_Server_02

mac docker 普罗米修斯 grafana 普罗米修斯 flink_hg_03

mac docker 普罗米修斯 grafana 普罗米修斯 flink_flink_04

 2.解压,并修改prometheus中的prometheus.yml

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["henghe-051:9090"]
  - job_name: 'pushgateway'
    static_configs:
      - targets: ['henghe-051:9091']
        labels:
          instance: pushgateway

  - job_name: 'node exporter'
    static_configs:
      - targets: ['henghe-051:9100', 'henghe-052:9100', 'henghe-053:9100']

 3.设置 node_exporter 开机自启

sudo vim /usr/lib/systemd/system/node_exporter.service 

[Unit]
Description=node_export
Documentation=https://github.com/prometheus/node_exporter
After=network.target

[Service]
Type=simple
User=root
ExecStart= /opt/prometheus/node_exporter-1.2.2.linux-amd64/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target

分发文件到其他机器

设置为开机启动(每台机器)

sudo systemctl enable node_exporter.service 

sudo systemctl start node_exporter.service

4.启动Prometheus Server、Pushgateway

 nohup ./prometheus --config.file=prometheus.yml > ./prometheus.log 2>&1 &

nohup ./pushgateway --web.listen-address :9091 > ./pushgateway.log 2>&1 & 

5.打开web查看

http://henghe-051:9090 

mac docker 普罗米修斯 grafana 普罗米修斯 flink_hg_05