2. Grafana 安装与部署:多平台实战指南
Grafana 的部署方式灵活多样,支持从轻量级 Docker 容器到企业级源码编译的多种方案。本章将系统讲解在 Linux、Windows、macOS 上的安装步骤、Docker 部署、源码编译及核心配置文件解析,帮助你根据生产环境需求选择最合适的部署路径。
💡 部署选型建议: 生产环境推荐使用 Docker 或 Linux 包管理器安装,便于版本管理与自动升级;开发测试环境可使用二进制包快速启动;需要定制插件或修改核心逻辑时选择源码编译。
2.1 各平台安装方式对比
下表汇总了主流操作系统的安装方式与适用场景,方便你快速决策:
| 操作系统 | 推荐安装方式 | 包管理工具 | 适用场景 |
|---|---|---|---|
| Linux (Ubuntu/Debian) | APT 仓库安装 | apt | 生产服务器、长期运维 |
| Linux (CentOS/RHEL) | YUM 仓库安装 | yum / dnf | 企业级生产环境 |
| Windows | ZIP 二进制包 | 无(手动解压) | 本地开发、临时测试 |
| macOS | Homebrew 安装 | brew | 个人开发环境 |
| 跨平台 | Docker 容器 | docker | 微服务架构、CI/CD |
| 跨平台 | 源码编译 | git + go | 二次开发、定制化需求 |
2.2 Linux 系统安装(以 Ubuntu 为例)
Linux 是 Grafana 最主流的部署平台,以下步骤基于 Ubuntu 22.04 LTS。
步骤 1:添加 Grafana APT 仓库
# 安装必要的依赖
sudo apt-get install -y software-properties-common wget
# 添加 Grafana GPG 密钥
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
# 添加稳定版仓库
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
步骤 2:安装 Grafana
# 更新包索引并安装
sudo apt-get update
sudo apt-get install -y grafana
步骤 3:启动并设置开机自启
# 启动 Grafana 服务
sudo systemctl start grafana-server
# 设置开机自启
sudo systemctl enable grafana-server
# 检查服务状态
sudo systemctl status grafana-server
✅ 验证安装: 打开浏览器访问
http://localhost:3000,默认用户名/密码为 admin/admin,首次登录会提示修改密码。
2.3 Windows 系统安装
Windows 环境通常用于开发测试,采用 ZIP 包解压即用方式。
步骤 1:下载并解压
# 从官网下载最新 ZIP 包(示例版本 10.4.2)
# 下载地址:https://grafana.com/grafana/download?platform=windows
# 解压到目标目录,例如 C:\grafana
# 解压后目录结构如下:
C:\grafana\
├── bin\
├── conf\
├── data\
├── logs\
├── public\
└── scripts\
步骤 2:启动 Grafana
# 进入 bin 目录
cd C:\grafana\bin
# 以控制台方式启动(调试用)
grafana-server.exe
# 或注册为 Windows 服务(生产推荐)
# 以管理员身份运行 PowerShell
C:\grafana\bin\grafana-server.exe --service install
net start grafana
⚠️ Windows 注意事项: Windows 版默认使用
conf\defaults.ini 作为配置文件,自定义配置请修改 conf\custom.ini。防火墙需放行 3000 端口。
2.4 macOS 系统安装
macOS 开发者推荐使用 Homebrew 安装,简洁高效。
# 更新 Homebrew
brew update
# 安装 Grafana
brew install grafana
# 启动服务(前台运行)
grafana-server --config=/usr/local/etc/grafana/grafana.ini
# 或使用 Homebrew 服务管理(后台运行)
brew services start grafana
2.5 Docker 部署(推荐生产方案)
Docker 部署是当前最流行的方式,具有环境隔离、快速迁移、版本控制等优势。
2.5.1 基础 Docker 部署
# 拉取官方镜像
docker pull grafana/grafana:latest
# 运行容器(挂载数据卷持久化)
docker run -d \
--name=grafana \
-p 3000:3000 \
-v /data/grafana:/var/lib/grafana \
-v /data/grafana-config:/etc/grafana \
-e "GF_SECURITY_ADMIN_PASSWORD=StrongPass123" \
grafana/grafana:latest
2.5.2 Docker Compose 部署(含数据源预配置)
# docker-compose.yml
version: '3.8'
services:
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
volumes:
- ./grafana-data:/var/lib/grafana
- ./grafana-config:/etc/grafana
- ./provisioning:/etc/grafana/provisioning
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin123
- GF_INSTALL_PLUGINS=grafana-piechart-panel
restart: unless-stopped
📦 数据持久化要点:
/var/lib/grafana 存储数据库、插件、用户会话;/etc/grafana 存储配置文件;provisioning 目录用于自动配置数据源和仪表盘。
2.6 源码编译安装
当需要定制 Grafana 核心功能或使用最新开发特性时,可选择源码编译。
前置条件
- Go 1.20+(后端编译)
- Node.js 18+(前端编译)
- Git
- Python 3.x(构建脚本依赖)
编译步骤
# 1. 克隆源码
git clone https://github.com/grafana/grafana.git
cd grafana
# 2. 安装前端依赖并构建
yarn install --frozen-lockfile
yarn build
# 3. 编译后端二进制
go run build.go build
# 4. 启动开发模式
go run build.go dev
# 5. 生产编译(生成可执行文件)
go run build.go build-server
🔧 编译注意事项: 源码编译耗时较长(约 10-20 分钟),首次编译需下载大量依赖。建议使用
make build 命令简化流程。编译产物位于 bin/ 目录。
2.7 核心配置文件详解
Grafana 的配置文件采用 INI 格式,主配置文件为 grafana.ini(Linux 路径:/etc/grafana/grafana.ini)。以下为关键配置段解析:
| 配置段 | 关键参数 | 默认值 | 说明 |
|---|---|---|---|
| [server] | http_port | 3000 | HTTP 监听端口 |
| domain | localhost | 域名配置,反向代理时需修改 | |
| root_url | http://localhost:3000 | 完整访问 URL,反向代理时必填 | |
| [security] | admin_user | admin | 超级管理员用户名 |
| admin_password | admin | 超级管理员密码(首次登录强制修改) | |
| secret_key | 自动生成 | 用于加密 Session 和 CSRF 令牌 | |
| [database] | type | sqlite3 | 支持 sqlite3、mysql、postgres |
| path | grafana.db | SQLite 数据库文件路径 | |
| [auth.anonymous] | enabled | false | 是否允许匿名访问 |
| org_role | Viewer | 匿名用户默认角色 | |
| [plugins] | allow_loading_unsigned_plugins | 空 | 允许加载未签名插件(逗号分隔) |
| [log] | mode | console file | 日志输出模式 |
| level | info | 日志级别:debug/info/warn/error |
配置示例:生产环境优化
# /etc/grafana/grafana.ini 关键配置
[server]
http_port = 3000
domain = grafana.example.com
root_url = https://grafana.example.com
enable_gzip = true
[security]
admin_user = admin
secret_key = YourStrongSecretKeyHere
[database]
type = postgres
host = 192.168.1.100:5432
name = grafana
user = grafana_user
password = DB_Password_123
[auth.anonymous]
enabled = false
[log]
mode = console file
level = warn
🔐 安全配置建议: 生产环境务必修改
secret_key,使用 PostgreSQL 或 MySQL 替代 SQLite,开启 HTTPS 并配置反向代理。日志级别建议设置为 warn 以减少磁盘 I/O。
2.8 Grafana 部署架构图
下图展示了 Grafana 在典型生产环境中的部署架构,涵盖反向代理、数据库、数据源和监控组件的关系:
2.9 部署验证与常见问题
部署后快速验证清单
- 端口监听检查:
ss -tlnp | grep 3000确认 Grafana 已监听 - Web 界面访问: 浏览器打开
http://<IP>:3000显示登录页 - API 健康检查:
curl http://localhost:3000/api/health返回{"msg":"OK"} - 日志无报错: 检查
/var/log/grafana/grafana.log无 ERROR 级别日志 - 数据源连通性: 在 Grafana UI 中添加测试数据源,点击“Save & Test”
常见问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 无法访问 3000 端口 | 防火墙未放行 / 服务未启动 | sudo ufw allow 3000 或 systemctl start grafana-server |
| 登录提示“Invalid credentials” | 密码错误 / 数据库损坏 | 重置密码:grafana-cli admin reset-admin-password newpass |
| Docker 容器频繁重启 | 数据卷权限问题 | chown -R 472:472 /data/grafana(Grafana 使用 UID 472) |
| 插件安装失败 | 网络不通 / 版本不兼容 | 使用 GF_INSTALL_PLUGINS 环境变量或离线安装 |
| 反向代理后页面样式丢失 | root_url 配置错误 | 修改 root_url 为完整代理路径,如 https://domain/grafana |
🛠️ 运维小技巧: 使用
grafana-cli 命令行工具可完成插件管理、数据迁移、密码重置等操作。例如 grafana-cli plugins install grafana-piechart-panel 安装饼图插件。