searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

如何搭建一个基于Prometheus、Grafana的数据监控及可视化系统

2023-08-14 08:24:57
47
0

前言

Prometheus(普罗米)是一款基于时序数据库的开源数据监控告警软件。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。

Grafana是一款数据可视化软件,常与Prometheus搭配使用。

基本架构

Prometheus的安装

1/ 二进制方式

prometheus.io/download/ 

2/ docker

docker pull prom/prometheus
docker run --name prometheus -p 9090:9090 \
-v ./prometheus.yml:/etc/prometheus/prometheus.yml \
-itd prom/prometheus \
--config.file=/etc/prometheus/prometheus.yml \

通过--config.file指定prometheus的启动配置文件

部署NodeExporter

NodeExporter是Prometheus官方提供的一个主机监控程序,可以监控包括CPU、内存、硬盘等使用数据。

安装与部署

docker pull prom/node-exporter
docker run --name=node-exporter -p 8080:8080 -itd prom/node-exporter

此时,Prometheus可以通过node-exporter开放的8080端口拉取监控数据

监控数据长什么样

那么,监控数据长什么样子呢?在浏览器输入localhost:8080/metrics可以看到下面

每一个监控指标之前都会有一段类似于如下形式的信息:

# HELP node_cpu Seconds the cpus spent in each mode.
# TYPE node_cpu counter
node_cpu{cpu="cpu0",mode="idle"} 362812.7890625
# HELP node_load1 1m load average.
# TYPE node_load1 gauge
node_load1 3.0703125

其中 HELP 用于解释当前指标的含义,TYPE 则说明当前指标的数据类型。

Prometheus数据源配置

Prometheus通过HTTP接口拉取数据源,我们需要在prometheus.yml中配置好ip和端口等信息。

前面运行的NodeExporter就是其中一个数据源

编辑prometheus.yml 并在 scrape_configs 节点下添加以下内容:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  # 采集node exporter监控数据
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:8080']

查询监控数据

数据源配好后,怎么查询监控数据?类似于NodeExporter,我们通过ip端口就可以访问到Prometheus的前端页面Prometheus UI。Prometheus UI 是 Prometheus 内置的一个可视化管理界面,我们通过 http://localhost:9090 就可以访问到该页面。Prometheus的数据组织形式类似于数据库,因此,我们使用专门Prometheus专用的查询语法进行查询—PromQL。

PromQL内有各种内置函数、聚合函数

在查询框中,我们输入:prometheus_http_requests_total 并点击执行。

查看我们所运行 NodeExporter 节点所在机器的内存使用情况,可以输入 node_memory_active_bytes/(1024*1024*1024) 查看。

Prometheus UI提供的图表绘制功能比较简陋,所以一般我们会将数据导入至Grafana进行数据展示。

安装运行Grafana

Grafana是用于可视化大型测量数据的开源程序,它提供了强大和优雅的方式去创建、共享、浏览数据。

docker pull grafana/grafana
docker run --name=grafana -p 3000:3000 -v ./grafana.ini:/etc/grafana/grafana.ini -itd grafana/grafana

同样的,通过文件挂载的方式加载Grafana配置文件。

运行后输入账户名、密码,默认均为admin,首次进入的界面:

配置Grafana数据源

左侧控制栏Configuration => DataSources =>  Add data Source,输入Prometheus的URL,这里我们添加了一个名为「Prometheus-1」的数据源,数据获取地址为:localhost:9090

至此,Prometheus和Grafana的数据流正式打通,所有Prometheus监控到的数据均可在Grafana查询并绘制图表。

Grafana数据查询

在 Grafana 中有「Dashboard」和「Panel」的概念,Dashboard 可以理解成「看板」,而 Panel 可以理解成「图表,一个看看板中包含了无数个图表。例如下图就是一个看板(Dashboard):

每一个图表就是Panel。

很多时候,我们监控的数据都是一样的,因此Grafana官方提供了Dashboard的模板,登录 Dashboards | Grafana Labs 可以查看已有的模板,记住其ID,在创建Dashboard时输入便可应用。非常方便快捷。

总结

本文介绍了如何快速搭建一个Prometheus和Grafana的数据监控可视化系统,以及数据交互流通的方式。

0条评论
0 / 1000
z****n
5文章数
0粉丝数
z****n
5 文章 | 0 粉丝
原创

如何搭建一个基于Prometheus、Grafana的数据监控及可视化系统

2023-08-14 08:24:57
47
0

前言

Prometheus(普罗米)是一款基于时序数据库的开源数据监控告警软件。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。

Grafana是一款数据可视化软件,常与Prometheus搭配使用。

基本架构

Prometheus的安装

1/ 二进制方式

prometheus.io/download/ 

2/ docker

docker pull prom/prometheus
docker run --name prometheus -p 9090:9090 \
-v ./prometheus.yml:/etc/prometheus/prometheus.yml \
-itd prom/prometheus \
--config.file=/etc/prometheus/prometheus.yml \

通过--config.file指定prometheus的启动配置文件

部署NodeExporter

NodeExporter是Prometheus官方提供的一个主机监控程序,可以监控包括CPU、内存、硬盘等使用数据。

安装与部署

docker pull prom/node-exporter
docker run --name=node-exporter -p 8080:8080 -itd prom/node-exporter

此时,Prometheus可以通过node-exporter开放的8080端口拉取监控数据

监控数据长什么样

那么,监控数据长什么样子呢?在浏览器输入localhost:8080/metrics可以看到下面

每一个监控指标之前都会有一段类似于如下形式的信息:

# HELP node_cpu Seconds the cpus spent in each mode.
# TYPE node_cpu counter
node_cpu{cpu="cpu0",mode="idle"} 362812.7890625
# HELP node_load1 1m load average.
# TYPE node_load1 gauge
node_load1 3.0703125

其中 HELP 用于解释当前指标的含义,TYPE 则说明当前指标的数据类型。

Prometheus数据源配置

Prometheus通过HTTP接口拉取数据源,我们需要在prometheus.yml中配置好ip和端口等信息。

前面运行的NodeExporter就是其中一个数据源

编辑prometheus.yml 并在 scrape_configs 节点下添加以下内容:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  # 采集node exporter监控数据
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:8080']

查询监控数据

数据源配好后,怎么查询监控数据?类似于NodeExporter,我们通过ip端口就可以访问到Prometheus的前端页面Prometheus UI。Prometheus UI 是 Prometheus 内置的一个可视化管理界面,我们通过 http://localhost:9090 就可以访问到该页面。Prometheus的数据组织形式类似于数据库,因此,我们使用专门Prometheus专用的查询语法进行查询—PromQL。

PromQL内有各种内置函数、聚合函数

在查询框中,我们输入:prometheus_http_requests_total 并点击执行。

查看我们所运行 NodeExporter 节点所在机器的内存使用情况,可以输入 node_memory_active_bytes/(1024*1024*1024) 查看。

Prometheus UI提供的图表绘制功能比较简陋,所以一般我们会将数据导入至Grafana进行数据展示。

安装运行Grafana

Grafana是用于可视化大型测量数据的开源程序,它提供了强大和优雅的方式去创建、共享、浏览数据。

docker pull grafana/grafana
docker run --name=grafana -p 3000:3000 -v ./grafana.ini:/etc/grafana/grafana.ini -itd grafana/grafana

同样的,通过文件挂载的方式加载Grafana配置文件。

运行后输入账户名、密码,默认均为admin,首次进入的界面:

配置Grafana数据源

左侧控制栏Configuration => DataSources =>  Add data Source,输入Prometheus的URL,这里我们添加了一个名为「Prometheus-1」的数据源,数据获取地址为:localhost:9090

至此,Prometheus和Grafana的数据流正式打通,所有Prometheus监控到的数据均可在Grafana查询并绘制图表。

Grafana数据查询

在 Grafana 中有「Dashboard」和「Panel」的概念,Dashboard 可以理解成「看板」,而 Panel 可以理解成「图表,一个看看板中包含了无数个图表。例如下图就是一个看板(Dashboard):

每一个图表就是Panel。

很多时候,我们监控的数据都是一样的,因此Grafana官方提供了Dashboard的模板,登录 Dashboards | Grafana Labs 可以查看已有的模板,记住其ID,在创建Dashboard时输入便可应用。非常方便快捷。

总结

本文介绍了如何快速搭建一个Prometheus和Grafana的数据监控可视化系统,以及数据交互流通的方式。

文章来自个人专栏
zhangyuhang
5 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0