跳转到内容

Grafana可视化配置 ​

课程介绍 ​

Grafana是一个开源的可视化工具,用于展示Prometheus等监控数据。本课程将带你学习Grafana的安装、配置、数据源配置、仪表板创建等核心功能,帮助你搭建完整的监控可视化平台。

1. Grafana概述 ​

1.1 什么是Grafana ​

Grafana是一个开源的可视化工具,用于展示时间序列数据。

Grafana的特点:

特点说明
多数据源支持多种数据源
可视化丰富的可视化图表
告警内置告警功能
插件丰富的插件生态
开源免费完全开源,免费使用

1.2 Grafana的架构 ​

Grafana采用Web架构。

Grafana架构:

Grafana Server(Grafana服务器)
    ↓
Data Source(数据源)
    ↓
Dashboard(仪表板)
    ↓
Panel(面板)
    ↓
Visualization(可视化)

组件说明:

组件说明
Grafana Server核心组件,负责数据展示
Data Source数据源,负责提供数据
Dashboard仪表板,负责组织面板
Panel面板,负责展示数据
Visualization可视化,负责数据展示

2. Grafana安装 ​

2.1 系统要求 ​

Grafana对系统有一定要求。

要求说明
操作系统Linux、Windows、macOS
内存至少1GB
磁盘至少5GB
网络需要网络连接

2.2 在Ubuntu上安装Grafana ​

在Ubuntu上安装Grafana的步骤。

步骤1:添加Grafana仓库

bash
# 添加Grafana仓库密钥
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

# 添加Grafana仓库
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

# 更新软件包
sudo apt update

步骤2:安装Grafana

bash
# 安装Grafana
sudo apt install grafana -y

# 启动Grafana
sudo systemctl start grafana-server

# 设置Grafana开机自启
sudo systemctl enable grafana-server

# 查看Grafana状态
sudo systemctl status grafana-server

步骤3:访问Grafana

打开浏览器,访问:http://localhost:3000
默认用户名:admin
默认密码:admin

2.3 在CentOS上安装Grafana ​

在CentOS上安装Grafana的步骤。

步骤1:添加Grafana仓库

bash
# 创建Grafana仓库文件
sudo vim /etc/yum.repos.d/grafana.repo

仓库文件内容:

ini
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

步骤2:安装Grafana

bash
# 安装Grafana
sudo yum install grafana -y

# 启动Grafana
sudo systemctl start grafana-server

# 设置Grafana开机自启
sudo systemctl enable grafana-server

# 查看Grafana状态
sudo systemctl status grafana-server

步骤3:访问Grafana

打开浏览器,访问:http://localhost:3000
默认用户名:admin
默认密码:admin

2.4 使用Docker安装Grafana ​

使用Docker安装Grafana的步骤。

步骤1:拉取Grafana镜像

bash
# 拉取Grafana镜像
docker pull grafana/grafana:latest

步骤2:运行Grafana容器

bash
# 运行Grafana容器
docker run -d \
  --name grafana \
  -p 3000:3000 \
  -v grafana_data:/var/lib/grafana \
  grafana/grafana:latest

步骤3:访问Grafana

打开浏览器,访问:http://localhost:3000
默认用户名:admin
默认密码:admin

3. Grafana配置 ​

3.1 配置文件概述 ​

Grafana使用INI格式的配置文件。

配置文件位置:

  • Linux:/etc/grafana/grafana.ini
  • Windows:conf/grafana.ini

配置文件结构:

ini
[server]
http_port = 3000

[database]
type = sqlite3
path = grafana.db

[security]
admin_user = admin
admin_password = admin

3.2 服务器配置 ​

服务器配置用于设置Grafana服务器的参数。

服务器配置示例:

ini
[server]
# HTTP端口
http_port = 3000

# 监听地址
http_addr = 0.0.0.0

# 域名
domain = localhost

# 根URL
root_url = %(protocol)s://%(domain)s:%(http_port)s/

# 静态文件路径
static_root_path = /usr/share/grafana/public

3.3 数据库配置 ​

数据库配置用于设置Grafana数据库的参数。

数据库配置示例:

ini
[database]
# 数据库类型
type = sqlite3

# 数据库路径
path = grafana.db

# 数据库主机
host = 127.0.0.1:3306

# 数据库名称
name = grafana

# 数据库用户
user = grafana

# 数据库密码
password = grafana

3.4 安全配置 ​

安全配置用于设置Grafana安全的参数。

安全配置示例:

ini
[security]
# 管理员用户名
admin_user = admin

# 管理员密码
admin_password = admin

# 密钥
secret_key = SW2YcwTIb9zpOOhoPsMm

# 禁用用户注册
disable_gravatar = true

# 启用匿名访问
[auth.anonymous]
enabled = false

4. 数据源配置 ​

4.1 添加Prometheus数据源 ​

添加Prometheus数据源的步骤。

步骤1:进入数据源管理

  • 点击"Configuration"
  • 点击"Data Sources"

步骤2:添加数据源

  • 点击"Add data source"
  • 选择"Prometheus"

步骤3:配置数据源

  • 输入数据源名称
  • 输入Prometheus URL
  • 点击"Save & Test"

数据源配置示例:

Name: Prometheus
URL: http://localhost:9090
Access: Server (default)

4.2 添加MySQL数据源 ​

添加MySQL数据源的步骤。

步骤1:进入数据源管理

  • 点击"Configuration"
  • 点击"Data Sources"

步骤2:添加数据源

  • 点击"Add data source"
  • 选择"MySQL"

步骤3:配置数据源

  • 输入数据源名称
  • 输入MySQL主机
  • 输入MySQL端口
  • 输入MySQL数据库名称
  • 输入MySQL用户名
  • 输入MySQL密码
  • 点击"Save & Test"

数据源配置示例:

Name: MySQL
Host: localhost:3306
Database: grafana
User: grafana
Password: grafana

4.3 添加Elasticsearch数据源 ​

添加Elasticsearch数据源的步骤。

步骤1:进入数据源管理

  • 点击"Configuration"
  • 点击"Data Sources"

步骤2:添加数据源

  • 点击"Add data source"
  • 选择"Elasticsearch"

步骤3:配置数据源

  • 输入数据源名称
  • 输入Elasticsearch URL
  • 输入Elasticsearch索引
  • 输入Elasticsearch用户名
  • 输入Elasticsearch密码
  • 点击"Save & Test"

数据源配置示例:

Name: Elasticsearch
URL: http://localhost:9200
Index: grafana-*
Username: elastic
Password: elastic

5. 仪表板创建 ​

5.1 创建仪表板 ​

创建仪表板的步骤。

步骤1:进入仪表板管理

  • 点击"Dashboards"
  • 点击"New"
  • 点击"New dashboard"

步骤2:添加面板

  • 点击"Add an empty panel"

步骤3:配置面板

  • 输入面板标题
  • 选择数据源
  • 输入查询语句
  • 选择可视化类型
  • 点击"Apply"

步骤4:保存仪表板

  • 点击"Save dashboard"
  • 输入仪表板名称
  • 点击"Save"

5.2 面板类型 ​

Grafana提供了多种面板类型。

常用面板类型:

面板类型说明
Graph折线图
Stat统计值
Gauge仪表盘
Table表格
Heatmap热力图
Pie Chart饼图
Bar Gauge条形图
Logs日志

5.3 面板配置 ​

面板配置用于设置面板的参数。

面板配置示例:

Title: CPU使用率
Data Source: Prometheus
Query: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
Visualization: Time series
Legend: {{instance}}

6. 导入仪表板 ​

6.1 导入官方仪表板 ​

导入官方仪表板的步骤。

步骤1:进入仪表板管理

  • 点击"Dashboards"
  • 点击"New"
  • 点击"Import"

步骤2:搜索仪表板

  • 输入仪表板ID
  • 点击"Load"

步骤3:配置仪表板

  • 选择数据源
  • 点击"Import"

常用仪表板ID:

仪表板ID说明
1860Node Exporter Full
8919Prometheus Node Exporter
6417Nginx Ingress Controller
7362MySQL Overview
2322Elasticsearch Dashboard

6.2 导入自定义仪表板 ​

导入自定义仪表板的步骤。

步骤1:导出仪表板

  • 点击"Share"
  • 点击"Export"
  • 选择"Export for sharing externally"
  • 点击"Export to JSON"

步骤2:导入仪表板

  • 点击"Dashboards"
  • 点击"New"
  • 点击"Import"
  • 点击"Upload JSON file"
  • 选择仪表板JSON文件
  • 点击"Load"
  • 选择数据源
  • 点击"Import"

7. 实战案例 ​

案例1:主机监控仪表板 ​

场景:创建一个主机监控仪表板。

仪表板面板:

  1. CPU使用率
  2. 内存使用率
  3. 磁盘使用率
  4. 网络流量
  5. 系统负载

PromQL查询:

sql
# CPU使用率
100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# 内存使用率
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100

# 磁盘使用率
(node_filesystem_size_bytes - node_filesystem_free_bytes) / node_filesystem_size_bytes * 100

# 网络流量
rate(node_network_receive_bytes_total[5m])
rate(node_network_transmit_bytes_total[5m])

# 系统负载
node_load1
node_load5
node_load15

案例2:应用监控仪表板 ​

场景:创建一个应用监控仪表板。

仪表板面板:

  1. 请求数
  2. 响应时间
  3. 错误率
  4. 并发数
  5. QPS

PromQL查询:

sql
# 请求数
rate(http_requests_total[5m])

# 响应时间
rate(http_request_duration_seconds_sum[5m]) / rate(http_request_duration_seconds_count[5m])

# 错误率
rate(http_requests_total{status=~"5.."}[5m]) / rate(http_requests_total[5m])

# 并发数
http_requests_in_progress

# QPS
rate(http_requests_total[5m])

课程总结 ​

这节课我们学习了Grafana可视化配置。

核心内容:

  • Grafana概述
  • Grafana安装
  • Grafana配置
  • 数据源配置
  • 仪表板创建
  • 导入仪表板
  • 实战案例

重要命令:

  • sudo apt install grafana:安装Grafana
  • sudo systemctl start grafana-server:启动Grafana
  • sudo systemctl stop grafana-server:停止Grafana
  • sudo systemctl status grafana-server:查看Grafana状态

Grafana是最流行的开源可视化工具之一,掌握这些知识后,我们将在后续课程中学习监控告警配置、SSH安全配置等内容。

课后练习 ​

练习1(基础) ​

在Ubuntu上安装Grafana,并完成初始化配置。

练习2(进阶) ​

添加Prometheus数据源,并创建一个简单的仪表板。

练习3(拓展) ​

导入官方仪表板,并创建一个主机监控仪表板。

评论区

专业的Linux技术学习平台,从入门到精通的完整学习路径