概述
Prometheus 是最初在 SoundCloud 上构建的开源系统监视和警报工具包 。它是一个独立的开源项目,并且独立于任何公司进行维护。Prometheus 在 2016 年加入了 Cloud Native Computing Foundation,这是继 Kubernetes 之后的第二个托管项目。大多数 Prometheus 组件都是用 Go 来编写,因此易于构建和部署为静态二进制文件。Grafana 是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持 Graphite、zabbix、InfluxDB、Prometheus 等数据源。
一、架构及特点
1.1 架构

Prometheus 从 exporter 拉取数据,或者间接地通过网关 gateway 拉取数据(如果在 k8s 内部署,可以使用服务发现的方式),它默认本地存储抓取的所有数据,并通过一定规则进行清理和整理数据,并把得到的结果存储到新的时间序列中,采集到的数据有两个去向,一个是报警,另一个是可视化。PromQL 和其他 API 可视化地展示收集的数据,并通过 Alertmanager 提供报警能力。
- Server 主要负责数据采集和存储,提供PromQL查询语言的支持。
- Alertmanager 警告管理器,用来进行报警。
- Push Gateway 支持临时性Job主动推送指标的中间网关。
1.2 特点
- 多维数据模型:由度量名称和键值对标识的时间序列数据;
- PromSQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询;
- 不依赖分布式存储,单个服务器节点可直接工作;
- 基于HTTP的pull方式采集时间序列数据;
- 推送时间序列数据通过PushGateway组件支持;
- 通过服务发现或静态配置发现目标;
- 多种图形模式及仪表盘支持(grafana);
- 适用于以机器为中心的监控以及高度动态面向服务架构的监控。
二、环境
| Server IP | 用途 | 版本 |
|---|---|---|
| 10.20.10.62 | Grafana 可视面板 [被监控机器] | 2.26.0 |
| 10.20.10.69 | Prometneus 服务 [被监控机器] | 7.5.3 |
三、部署 Prometneus
69 服务器上传或 wget 下载 prometheus-2.26.0.linux-amd64.tar.gz 安装包。
1、解压
tar -zxvf prometheus-2.26.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/prometheus-2.26.0.linux-amd64/ /usr/local/prometheus
2、启动
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
netstat -lntp | grep 9090
3、验证
浏览器访问 http://10.20.10.69:9090/ 就可以访问到prometheus的主界面:

四、部署 Grafana
62 服务器上传或 wget 下载 grafana-7.5.3-1.x86_64.rpm 安装包。
1、安装
yum localinstall -y grafana-7.5.3-1.x86_64.rpm
2、启动
systemctl start grafana-server
systemctl enable grafana-server
3、验证
浏览器访问 http://10.20.10.62:3000/ 就到了登录界面,默认登录用户 admin,默认登录密码 admin。

总结
以上仅是简单的基础平台搭建,没有什么技术含量可言,后续文章将会深入剖析 Prometheus 的使用以及各种文件配置、监控指标、监控注意事项等。本次主要了解的就是:
- 什么是 Prometneus?
- Prometneus 的特点;
- Prometneus 的组件(架构);
- Prometneus + Grafana 的基础搭建。
602





