主题
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
默认密码:admin2.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
默认密码:admin2.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
默认密码:admin3. 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 = admin3.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/public3.3 数据库配置
数据库配置用于设置Grafana数据库的参数。
数据库配置示例:
ini
[database]
# 数据库类型
type = sqlite3
# 数据库路径
path = grafana.db
# 数据库主机
host = 127.0.0.1:3306
# 数据库名称
name = grafana
# 数据库用户
user = grafana
# 数据库密码
password = grafana3.4 安全配置
安全配置用于设置Grafana安全的参数。
安全配置示例:
ini
[security]
# 管理员用户名
admin_user = admin
# 管理员密码
admin_password = admin
# 密钥
secret_key = SW2YcwTIb9zpOOhoPsMm
# 禁用用户注册
disable_gravatar = true
# 启用匿名访问
[auth.anonymous]
enabled = false4. 数据源配置
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: grafana4.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: elastic5. 仪表板创建
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 | 说明 |
|---|---|
| 1860 | Node Exporter Full |
| 8919 | Prometheus Node Exporter |
| 6417 | Nginx Ingress Controller |
| 7362 | MySQL Overview |
| 2322 | Elasticsearch 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:主机监控仪表板
场景:创建一个主机监控仪表板。
仪表板面板:
- CPU使用率
- 内存使用率
- 磁盘使用率
- 网络流量
- 系统负载
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:应用监控仪表板
场景:创建一个应用监控仪表板。
仪表板面板:
- 请求数
- 响应时间
- 错误率
- 并发数
- 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:安装Grafanasudo systemctl start grafana-server:启动Grafanasudo systemctl stop grafana-server:停止Grafanasudo systemctl status grafana-server:查看Grafana状态
Grafana是最流行的开源可视化工具之一,掌握这些知识后,我们将在后续课程中学习监控告警配置、SSH安全配置等内容。
课后练习
练习1(基础)
在Ubuntu上安装Grafana,并完成初始化配置。
练习2(进阶)
添加Prometheus数据源,并创建一个简单的仪表板。
练习3(拓展)
导入官方仪表板,并创建一个主机监控仪表板。