一 安装运行 Prometheus 服务端
参考:Prometheus学习笔记(一):Prometheus入门Demo | 大头的博客
二 运行 NodeExporter 客户端数据源
NodeExporter 是 Prometheus 提供的一个可以采集到主机信息的应用程序,它能采集到机器的 CPU、内存、磁盘等信息。
从 https://prometheus.io/download/ 获取最新的 Node Exporter 版本的二进制包。
下载解压后运行 Node Exporter,指定用 9092 端口运行:
1 | tar xvfz node_exporter-*.tar.gz |
访问 地址:9092/
可以看到以下页面:
访问 地址:9092/metrics
可以看到以下页面:
每一个监控指标之前都会有一段类似于如下形式的信息:
1 | # HELP node_cpu Seconds the cpus spent in each mode. |
其中 HELP 用于解释当前指标的含义,TYPE 则说明当前指标的数据类型。
在上面的例子中 node_cpu 的注释表明当前指标是 cpu0 上 idle 进程占用 CPU 的总时间,CPU 占用时间是一个只增不减的度量指标,从类型中也可以看出 node_cpu 的数据类型是计数器(counter),与该指标的实际含义一致。
又例如node_load1该指标反映了当前主机在最近一分钟以内的负载情况,系统的负载情况会随系统资源的使用而变化,因此node_load1反映的是当前状态,数据可能增加也可能减少,从注释中可以看出当前指标类型为仪表盘(gauge),与指标反映的实际含义一致。
除了这些以外,在当前页面中根据物理主机系统的不同,还可能看到如下监控指标:
1 | node_boot_time:系统启动时间 |
现在运行了 Prometheus 服务器,也运行了业务数据源 NodeExporter。但此时 Prometheus 还获取不到任何数据,还需要配置下 prometheus.yml 文件,让其去拉取 Node Exporter 的数据。
配置一下 Prometheus 的配置文件,让 Prometheus 服务器定时去业务数据源拉取数据。编辑prometheus.yml 并在 scrape_configs 节点下添加以下内容:
1 | scrape_configs: |
上面配置文件配置了两个任务。一个是名为 prometheus 的任务,其从「localhost:9090」地址读取数据。另一个是名为 node 的任务,其从「localhost:8080」地址读取数据。
配置完成后,我们重新启动 Prometheus。
1 | ./prometheus --config.file=prometheus.yml --web.listen-address=:9091 & |
在 Prometheus 面板上输入up可以看到对应的应用的存活状态
例如查看我们所运行 NodeExporter 节点所在机器的内存使用情况,可以输入
1 | node_memory_Active_bytes/(1024*1024*1024) |
查看 NodeExporter 节点所在机器 CPU 1 分钟的负载情况,可以输入
1 | node_load1 |
三 Grafana可视化
Prometheus UI 提供了快速验证 PromQL 以及临时可视化支持的能力,但其可视化能力却比较弱。一般情况下,使用 Grafana 来实现对 Prometheus 的可视化实现。
Grafana 是一个用来展示各种各样数据的开源软件,只需要在 Grafana 上配置一个 Prometheus 的数据源。接着我们就可以配置各种图表,Grafana 就会自动去 Prometheus 拉取数据进行展示。
1 启动Grafana服务
从 https://grafana.com/grafana/download 下载linux系统二进制文件安装包,下载解压后用下面的命令启动:
1 | ./grafana-server web & |
可以看到启动成功
2 配置监控面板
Grafana 默认使用 3000 端口启动,我们访问对应3000端口查看页面。
默认的账号密码是 admin/admin,首次登陆会要求修改密码
配置数据源
配置对应的数据源,填写好Prometheus服务的地址
在 Grafana 中有「Dashboard」和「Panel」的概念,Dashboard 可以理解成「看板」,而 Panel 可以理解成「图表],一个看看板中包含了无数个图表。
增加一个Dashboard并创建一个新Panel
进入到如下界面
设置好数据源、Metrics数据、图表名称,之后点击右上角的 Apply 按钮即可。保存之后我们就可以在面板中看到机器的 CPU 使用率情况了。
查询函数参考:Node Exporter 常用监控指标详解与实践
四 Grafana模板中心
Grafana官网 - Dashboards 模块 提供了下载 Dashboard 模板的功能。
复制其ID
使用ID导入
选择数据源
大功告成!