跳转到内容

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技术学习平台,从入门到精通的完整学习路径