目录
普罗米修斯介绍
普罗米修斯的主要特点是
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 的架构
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
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 &