Prometheus简介
Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从 2012 年开始由前Google工程师在Soundcloud 以开源软件的 形式进行研发,并且于 2015 年早期对外发布早期版本。Prometheus具有以下特点:易于管理、监控服务的内部运行状态、强大的数据模型、所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中(TSDB)。最新的Grafana可视化工具也已经提供了完整的Prometheus支持,基于Grafana可以创建更加精美的监控图标。
Prometheus架构
1、Prometheus 生态圈组件
Prometheus Server:主服务器,负责收集和存储时间序列数据
client libraies:应用程序代码插桩,将监控指标嵌入到被监控应用程序中
Pushgateway:推送网关, 为支持 short-lived 作业提供一个推送网关
exporter:专门为一些应用开发的数据摄取组件—exporter,例如: HAProxy、 StatsD、Graphite 等等。
Alertmanager:专门用于处理 alert 的组件
2、架构理解
Prometheus Server,里面包含了存储引擎和计算引擎。
Retrieval 组件为取数组件,它会主动从 Pushgateway 或者 Exporter 拉取指标数据。
Service discovery,可以动态发现要监控的目标。
TSDB,数据核心存储与查询。
HTTP server,对外提供 HTTP 服务。
3、采集层
采集层分为两类,一类是生命周期较短的作业,还有一类是生命周期较长的作业。
短作业:直接通过 API,在退出时间指标推送给 Pushgateway。
长作业:Retrieval 组件直接从 Job 或者 Exporter 拉取数据。
4、应用层
应用层主要分为两种,一种是 AlertManager,另一种是数据可视化。
集群规划
IP |
服务 |
hostname |
192.168.255.101 |
Prometheus Server、Pushgateway、Alertmanager、Node Exporter |
node01 |
192.168.255.102 |
Node Exporter |
node02 |
192.168.255.103 |
Node Exporter |
node03 |
安装Prometheus
1、获取安装包
[root@node01 ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
2、解压缩
[root@node01 ~]# tar -zxf prometheus-2.29.1.linux-amd64.tar.gz -C /usr/local/cluster/
3、创建软连接
[root@node01 ~]# ln -s /usr/local/cluster/prometheus-2.29.1.linux-amd64/ /usr/local/cluster/prometheus
4、修改配置文件
[root@node01 ~]# vim /usr/local/cluster/prometheus/prometheus.yml
- job_name: "prometheus"
static_configs:
- targets: ["192.168.255.101:9090"]
- job_name: "pushgateway"
static_configs:
- targets: ["192.168.255.101:9091"]
labels:
instance: pushgateway
- job_name: "node exporter"
static_configs:
- targets: ["192.168.255.101:9100","192.168.255.102:9100","192.168.255.103:9100"]
安装Pushgateway
1、获取安装包
[root@node01 ~]# wget https://github.com/prometheus/pushgateway/releases/download/v1.6.0/pushgateway-1.6.0.linux-amd64.tar.gz
2、解压缩
[root@node01 ~]# tar -zxf pushgateway-1.4.1.linux-amd64.tar.gz -C /usr/local/cluster/
3、创建软链接
[root@node01 ~]# ln -s /usr/local/cluster/pushgateway-1.4.1.linux-amd64/ /usr/local/cluster/pushgateway