【Prometheus监控 运维必备】五、Grafana 与 Prometheus 集成
通过将 Grafana 与 Prometheus 集成,能够将 Prometheus 收集的丰富监控数据以直观、美观的方式展示出来,方便用户进行实时监控和分析。
一、Grafana 与 Prometheus 简介
1.1 Grafana 简介
Grafana 是一款开源的数据可视化与监控平台,它支持多种数据源,能够将不同来源的数据以直观的图表、仪表盘等形式展示出来。Grafana 具有丰富的可视化插件和强大的交互功能,用户可以根据自己的需求定制个性化的监控界面,方便对系统状态、业务指标等进行实时监控和分析。

1.2 Prometheus 简介
Prometheus 是一个开源的系统监控和警报工具包,采用时间序列数据库存储监控数据,通过拉取(Pull)模型收集指标。Prometheus 拥有强大的查询语言 PromQL,可对监控数据进行复杂的查询和分析,并且具备灵活的告警机制。
1.3 集成的意义
将 Grafana 与 Prometheus 集成,可以充分发挥两者的优势。Grafana 利用其强大的可视化能力,将 Prometheus 收集的监控数据以直观、美观的方式展示出来,使运维人员和业务人员能够更清晰地了解系统的运行状态。同时,通过 Grafana 的交互功能,用户可以方便地进行数据探索和分析,及时发现潜在的问题。
二、Grafana 安装与配置
2.1 安装 Grafana
以在 Linux(Ubuntu)系统上安装 Grafana 为例,可按以下步骤进行:
# 添加 Grafana 软件源
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
# 更新软件包列表
sudo apt-get update
# 安装 Grafana
sudo apt-get install grafana
解释:
- 首先添加 Grafana 的软件源,确保可以从官方源获取最新的 Grafana 版本。
- 然后更新软件包列表,使系统能够识别新添加的软件源。
- 最后安装 Grafana。
2.2 启动 Grafana 服务
# 启动 Grafana 服务
sudo systemctl start grafana-server
# 设置 Grafana 服务开机自启
sudo systemctl enable grafana-server
解释:
sudo systemctl start grafana-server用于启动 Grafana 服务。sudo systemctl enable grafana-server使 Grafana 服务在系统开机时自动启动。
2.3 访问 Grafana 界面
在浏览器中输入 http://<服务器 IP>:3000,即可访问 Grafana 的登录界面。默认的用户名和密码均为 admin,登录后可根据提示修改密码。
三、Prometheus 作为 Grafana 数据源的配置
3.1 配置数据源
登录 Grafana 后,按以下步骤配置 Prometheus 作为数据源:
- 点击左侧菜单栏的 “Configuration”(配置)图标,选择 “Data Sources”(数据源)。
- 在数据源页面点击 “Add data source”(添加数据源)按钮。
- 在数据源类型中选择 “Prometheus”。
- 在 “HTTP” 部分的 “URL” 字段中输入 Prometheus 服务器的地址,例如
http://<Prometheus 服务器 IP>:9090。 - 其他参数可保持默认设置,点击 “Save & Test”(保存并测试)按钮,若显示 “Data source is working”(数据源正常工作),则表示配置成功。
3.2 数据源配置示例代码(JSON 格式)
{
"name": "Prometheus",
"type": "prometheus",
"url": "http://<Prometheus 服务器 IP>:9090",
"access": "proxy",
"isDefault": true
}
解释:
name:数据源的名称,可自定义。type:数据源的类型,这里是prometheus。url:Prometheus 服务器的地址。access:访问模式,proxy表示通过 Grafana 代理访问。isDefault:是否将该数据源设置为默认数据源。
四、创建 Grafana 仪表盘展示 Prometheus 数据
4.1 创建仪表盘
在 Grafana 界面,点击左侧菜单栏的 “+” 图标,选择 “Dashboard”(仪表盘),然后点击 “Add new panel”(添加新面板)。
4.2 配置面板查询
在面板编辑页面,进行以下操作:
- 在 “Query”(查询)部分,选择之前配置的 Prometheus 数据源。
- 在查询框中输入 PromQL 查询语句,例如
node_cpu_seconds_total{mode="idle"},用于查询服务器的空闲 CPU 时间。 - 可以根据需要调整查询的时间范围、聚合函数等参数。
4.3 选择可视化类型
Grafana 提供了多种可视化类型,如折线图、柱状图、饼图等。根据数据的特点和展示需求,选择合适的可视化类型。例如,对于时间序列数据,折线图通常是一个不错的选择。
4.4 自定义面板设置
可以对面板的标题、描述、颜色、坐标轴等进行自定义设置,以满足个性化的展示需求。例如,修改面板标题为 “服务器 CPU 空闲时间”,设置坐标轴的单位和范围等。
4.5 仪表盘示例代码(JSON 格式)
{
"title": "Prometheus 监控仪表盘",
"panels": [
{
"title": "服务器 CPU 空闲时间",
"type": "graph",
"datasource": "Prometheus",
"targets": [
{
"expr": "node_cpu_seconds_total{mode=\"idle\"}",
"refId": "A"
}
],
"yaxes": [
{
"format": "s",
"label": "时间(秒)"
}
]
}
]
}
解释:
title:仪表盘的标题。panels:仪表盘包含的面板列表。panels[0].title:面板的标题。panels[0].type:面板的可视化类型,这里是graph(折线图)。panels[0].datasource:面板使用的数据源。panels[0].targets[0].expr:面板的查询表达式,即 PromQL 查询语句。panels[0].yaxes[0].format:Y 轴的单位格式,这里是秒。panels[0].yaxes[0].label:Y 轴的标签。
五、Grafana 与 Prometheus 集成的高级应用
5.1 变量的使用
在 Grafana 中可以使用变量来实现动态查询和灵活的仪表盘展示。例如,创建一个变量来选择不同的服务器实例,然后在查询语句中引用该变量。具体步骤如下:
- 点击仪表盘右上角的 “Settings”(设置)图标,选择 “Variables”(变量)。
- 点击 “Add variable”(添加变量)按钮,设置变量的名称、类型(如 Query 类型)、数据源(Prometheus)和查询语句(如
label_values(node_cpu_seconds_total, instance))。 - 在查询语句中使用
$变量名的方式引用变量,例如node_cpu_seconds_total{instance="$instance", mode="idle"}。
5.2 模板化仪表盘
可以创建模板化的仪表盘,通过变量和模板函数实现仪表盘的复用。例如,根据不同的业务线或环境创建不同的仪表盘实例,只需修改变量的值即可快速切换展示不同的数据。
5.3 告警功能
Grafana 也具备告警功能,可以结合 Prometheus 的数据设置告警规则。在面板编辑页面,点击 “Alert”(告警)选项卡,设置告警条件(如阈值、持续时间等),并选择通知渠道(如邮件、Slack 等)。当监控数据满足告警条件时,Grafana 会触发告警通知。
更多推荐




所有评论(0)