安装与快速上手
安装方式怎么选
Grafana 是单个 Go 二进制加一个数据目录,怎么跑都行。三条常见路线:
| 方式 | 适合场景 | 优点 | 缺点 |
|---|---|---|---|
| Docker | 学习、本地验证、小环境 | 一条命令起,环境干净 | 注意容器网络和数据卷 |
| Homebrew(macOS) | Mac 本机长期跑 | 原生进程,brew services 托管 | 升级跟随 brew,不如容器灵活 |
| APT 官方源 | Linux 服务器生产部署 | systemd 托管,装完即服务 | 要先配官方仓库 |
学习阶段用 Docker 最快,本篇以 Docker 为主线,brew 和 apt 各给一段。K8s 场景一般直接用 kube-prometheus-stack 全家桶(自带 Grafana),不在本篇展开。
当前主流是 Grafana 11.x 和 12.x(12 于 2025 年发布),本篇操作两个大版本通用。Docker 官方主镜像 grafana/grafana 是 Enterprise 发行版(不激活 license 等同 OSS),纯开源版选 grafana/grafana-oss,本系列以 OSS 为准。
Docker 跑起来
一条命令:
docker run -d \
--name grafana \
-p 3000:3000 \
-v grafana-storage:/var/lib/grafana \
-e "GF_SECURITY_ADMIN_PASSWORD=admin123" \
grafana/grafana-oss:12.1.0
参数说明:
-p 3000:3000:Grafana 的 Web 服务端口是 3000。-v grafana-storage:/var/lib/grafana:数据目录挂成命名卷,容器删了重建,仪表盘和账号都还在。-e "GF_SECURITY_ADMIN_PASSWORD=admin123":用环境变量直接定死 admin 初始密码,免得每次重建都走默认密码加强制改密的流程(变量命名规则见下文「配置与数据目录」)。
启动后浏览器打开 http://localhost:3000,看到登录页即成功。
示例里的 12.1.0 换成你要的版本号即可。学习可以用固定小版本号保证可复现,生产别用 latest。
Homebrew(macOS):
brew install grafana
brew services start grafana
配置文件在 /opt/homebrew/etc/grafana/grafana.ini(Apple Silicon;Intel 在 /usr/local/etc/grafana/grafana.ini),数据目录在 /opt/homebrew/var/lib/grafana。停服务用 brew services stop grafana。
APT 官方源(Debian/Ubuntu):
sudo apt-get install -y apt-transport-https software-properties-common wget
sudo mkdir -p /etc/apt/keyrings
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install -y grafana
sudo systemctl enable --now grafana-server
装完即注册为 systemd 服务(服务名 grafana-server),配置文件 /etc/grafana/grafana.ini,数据目录 /var/lib/grafana。APT 源里 grafana 包就是 OSS 版,企业版包名是 grafana-enterprise,注意别和 Docker 镜像的命名习惯搞反了。
首次登录
浏览器打开 http://localhost:3000:
- 默认账号 admin / admin。没用环境变量改过初始密码的话,首次登录会强制要求改密(界面提供 Skip 跳过,学习可以跳,生产别跳)。
- 用了上面
GF_SECURITY_ADMIN_PASSWORD的,直接拿新密码登录即可。
登录后进入首页,先花一分钟认识界面五个区域:
- 左侧导航栏:核心入口都在这里——Dashboards(看板)、Explore(临时查询排障)、Alerting(告警)、Connections(数据源与插件接入)、Administration(实例管理)。点左上角菜单图标可折叠展开。
- 顶部搜索:点放大镜或按快捷键
Ctrl+K(macOS 是Cmd+K),全局搜索仪表盘、页面和功能,看板多了以后全靠它。 - 右上角用户菜单:个人偏好(主题、时区、默认首页)、修改密码、切换 Organization(有多个 Org 时才出现)。
- 面包屑与收藏:页面顶部的路径导航;看板右上角的星标收藏后,会出现在首页和导航的 Starred 里,常用看板一键直达。
- 帮助入口:左侧导航底部的
?图标,里面是官方文档链接和当前版本号——报版本、查兼容性先看这里。
接第一个数据源
以接入 Prometheus 为例。前置条件:Prometheus 已在运行且能打开它的 UI,部署方式见 Prometheus 部署与快速上手。
操作路径:左侧导航 Connections → Data sources → Add data source,搜索框里选 Prometheus。配置页绝大多数项先保持默认,关键只有一个:
- Connection → URL:Prometheus 的 HTTP 地址。
- Grafana 与 Prometheus 同机裸进程(brew、二进制、apt 方式):填
http://localhost:9090。 - Grafana 在 Docker 容器里,Prometheus 在宿主机或另一个容器(macOS、Windows 的 Docker Desktop):填
http://host.docker.internal:9090。 - Linux 的 Docker:
host.docker.internal默认不存在,启动 Grafana 时加--add-host=host.docker.internal:host-gateway,或者干脆用--network host共享宿主机网络栈。
- Grafana 与 Prometheus 同机裸进程(brew、二进制、apt 方式):填
填完拉到页面最底部点 Save & Test:绿色提示「Successfully queried the Prometheus API」就说明通了;红色报错按提示检查 URL 与网络,常见错误见下文「常见问题」。
数据源的 URL 是 Grafana 服务端进程去访问的,不是你的浏览器。你的浏览器能打开 localhost:9090,不代表容器里的 Grafana 能——它俩不在同一个网络命名空间。理解这一点,数据源连通性问题就排掉了一半。
环境里有多条数据源时,把最常用的那条设为 Default(数据源列表里点进去勾选):新建 Panel、打开 Explore 时都会默认选中它,少点很多次下拉框。
导入第一个仪表盘
自己从零画面板是后话,先体验社区现成的。grafana.com/dashboards 上有上万块用户贡献的看板,按数据源和场景分类。以监控 Linux 主机的经典看板 Node Exporter Full(ID 1860) 为例。
前置条件:宿主机跑了 node_exporter,且 Prometheus 已经抓取它——抓取配置同样在 Prometheus 部署与快速上手 的「第一个抓取目标」一节。
导入流程:
- 左侧导航 Dashboards → New → Import。
- 「Import via grafana.com」输入框填
1860,点 Load——Grafana 会联网拉取看板定义。 - 底部下拉框选择刚配好的 Prometheus 数据源。
- 点 Import,立刻看到 CPU、内存、磁盘、网络的全套图表;左上角变量下拉可以切换不同主机。
- 第三方看板可能更新或下架,ID 失效就去 dashboards 页面按名字搜同名替代。
- 现成看板指标多、查询密,右上角默认刷新频率别调太低,小环境 30 秒足够。
会用别人的看板之后,第 4 篇再学自己画:Panel、变量、查询的组合拳。
配置与数据目录
- 主配置 grafana.ini:容器内
/etc/grafana/grafana.ini;brew 安装/opt/homebrew/etc/grafana/grafana.ini;apt 安装/etc/grafana/grafana.ini。几百项配置注释写得很全,入门阶段基本不用动。 - 环境变量覆盖:ini 里任何配置都能用
GF_前缀环境变量覆盖,规则是GF_段名_键名(段名和键名大写)。比如[security]段的admin_password对应GF_SECURITY_ADMIN_PASSWORD——上面 Docker 命令用的就是它。容器场景基本都走环境变量,不直接改 ini。 - provisioning 目录:
/etc/grafana/provisioning/下按 YAML 声明数据源、仪表盘、告警联系点,Grafana 启动时自动加载。这是「配置即代码」的玩法,不点鼠标就能复刻一套环境——第 3 篇专门展开。 - 数据默认存 SQLite:
/var/lib/grafana/grafana.db,仪表盘定义、用户、数据源配置全在里面,单机自用完全够;多实例高可用才需要换成 MySQL 或 PostgreSQL 作后端库。
备份 Grafana 等于备份 /var/lib/grafana 这个目录(Docker 里就是 grafana-storage 卷)。整目录拷走,换新机器原样放回,启动即还原。
常见问题
端口被占
3000 被占了换宿主机映射端口,容器内不用动:
docker run -d --name grafana -p 13000:3000 -v grafana-storage:/var/lib/grafana grafana/grafana-oss:12.1.0
容器里的 Grafana 连不上宿主机的服务
数据源 URL 填 localhost 或 127.0.0.1 是新手第一课:那指向的是 Grafana 容器自己。
- macOS / Windows:用内置域名
host.docker.internal指代宿主机。 - Linux:启动时加
--add-host=host.docker.internal:host-gateway,或用--network host。
更整洁的做法是给相关容器建一个共享网络,用容器名互访:
docker network create monitor
docker run -d --name prometheus --network monitor -p 9090:9090 prom/prometheus:v3.5.0
docker run -d --name grafana --network monitor -p 3000:3000 grafana/grafana-oss:12.1.0
# Grafana 里数据源 URL 填 http://prometheus:9090
登录页一直转圈、登录后空白
- 反向代理没转发 WebSocket:Grafana Live 实时推送走 WebSocket,Nginx 代理要加
Upgrade和Connection头,否则页面卡在加载态。 - root_url 配错:子路径部署(比如挂在
/grafana/下)时,[server]段的root_url与代理路径不匹配会导致静态资源 404。打开浏览器开发者工具的 Network 面板,谁红了一目了然。 - Save & Test 转圈或超时:回到「服务端视角」原则——进到 Grafana 容器里
curl一下那个 URL,多半就不通了。
忘记 admin 密码
不用重置数据,命令行直接改:
# 容器场景
docker exec -it grafana grafana-cli admin reset-admin-password NewPass123
# 裸机、brew 场景
grafana-cli admin reset-admin-password NewPass123
小结
- 安装三选一:Docker 最快(学习首选)、brew 适合 Mac 本机、apt 官方源适合 Linux 生产;K8s 交给 kube-prometheus-stack。
- Docker 起步三要素:端口 3000、数据卷 grafana-storage、
GF_SECURITY_ADMIN_PASSWORD改初始密码。 - 默认 admin/admin 登录后,先认五块界面区域:导航栏、搜索、用户菜单、面包屑收藏、帮助入口。
- 接 Prometheus 数据源只改一个 URL,记住「服务端视角」和
host.docker.internal;Save & Test 绿了才算通。 - 现成看板去 grafana.com/dashboards,ID 1860 导入即出图;配置集中在 grafana.ini,provisioning 目录和 SQLite 数据文件知道位置就行,下一篇细讲。
跑起来、接上数据、看到图,三部曲完成。下一篇用 provisioning 把这套「点鼠标配出来的环境」变成「YAML 声明出来的环境」,实现整个 Grafana 的可复制重建。