如何在 Ubuntu 上安装 Grafana:完整设置和配置指南
Grafana 是最强大的开源数据可视化和基础设施监控平台之一。无论您是在跟踪服务器性能、应用程序指标还是业务 KPI,Grafana 灵活的仪表板和广泛的数据源支持使其成为任何系统管理员或 DevOps 工程师不可或缺的工具。
本综合指南将引导您完成在 Ubuntu 上安装 Grafana 的每一步——从初始系统准备到配置数据源、构建第一个仪表板、设置警报和保护您的部署。
> 前置条件:运行中的 Ubuntu 服务器(建议 20.04 或 22.04 LTS)、sudo 权限和稳定的互联网连接。如果您需要一个可靠的服务器来托管您的 Grafana 实例,请考虑来自 AlexHost 的 VPS 托管 — 针对性能关键的监控工作负载进行了优化。
目录
- 更新系统包
- 通过官方 APT 存储库安装 Grafana
- 启动并启用 Grafana 服务
- 访问 Grafana Web 界面
- 配置数据源
- 创建您的第一个仪表板
- 设置警报
- 使用 HTTPS 和访问控制保护 Grafana
- 管理和更新 Grafana
步骤 1:更新系统包 {#step-1}
在安装任何新软件之前,必须同步您的包索引并应用所有可用的升级。这可确保兼容性并降低依赖冲突的风险。
sudo apt update && sudo apt upgrade -y在继续之前,请允许该过程完成。在新配置的服务器上,这可能需要几分钟。
步骤 2:通过官方 APT 存储库安装 Grafana {#step-2}
Grafana 为基于 Debian 的系统(包括 Ubuntu)维护官方 APT 存储库。使用官方存储库可确保您始终能够访问最新的稳定版本和安全补丁。
步骤 2a:安装所需的依赖项
首先,安装 software-properties-common 包,它提供 add-apt-repository 实用程序:
sudo apt install -y software-properties-common apt-transport-https wget gnupg2步骤 2b:导入 Grafana GPG 签名密钥
添加 GPG 密钥允许您的系统验证从 Grafana 存储库下载的包的真实性:
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -步骤 2c:添加官方 Grafana APT 存储库
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"步骤 2d:更新包列表并安装 Grafana
sudo apt update
sudo apt install grafana -y安装完成后,验证已安装的版本:
grafana-server -v步骤 3:启动并启用 Grafana 服务 {#step-3}
安装后,启动 Grafana 服务器守护程序并将其配置为在系统启动时自动启动:
sudo systemctl start grafana-server
sudo systemctl enable grafana-server验证服务是否正确运行:
sudo systemctl status grafana-server您应该看到类似以下的输出,确认服务处于 active (running) 状态:
● grafana-server.service - Grafana instance
Loaded: loaded (/lib/systemd/system/grafana-server.service; enabled)
Active: active (running) since ...如果服务无法启动,请检查日志以查找错误:
sudo journalctl -u grafana-server -f步骤 4:访问 Grafana Web 界面 {#step-4}
默认情况下,Grafana 监听 端口 3000。打开您的网络浏览器并导航到:
http://your_server_ip:3000将 your_server_ip 替换为您服务器的实际 IP 地址或主机名。
默认登录凭据
| 字段 | 值 |
|---|---|
| 用户名 | admin |
| 密码 | admin |
首次登录时,Grafana 会立即提示您设置新的安全密码。不要跳过此步骤 — 保留默认凭据会带来重大安全风险。
> 防火墙说明:如果您运行的是 UFW 或其他防火墙,请打开端口 3000 以允许浏览器访问:
> “`bash
> sudo ufw allow 3000/tcp
> sudo ufw reload
> “`
步骤 5:配置数据源 {#step-5}
Grafana 是一个可视化层 — 它本身不存储指标。相反,它连接到外部数据源,例如 Prometheus、InfluxDB、Elasticsearch、MySQL、PostgreSQL 等。配置数据源是构建任何仪表板之前的必要第一步。
步骤 5a:导航到数据源
- 在左侧边栏中,单击 齿轮图标 (⚙) 打开 配置 菜单。
- 选择 数据源。
步骤 5b:添加新数据源
- 单击 添加数据源。
- 浏览列表并选择您所需的数据源类型(例如 Prometheus、InfluxDB、MySQL)。
步骤 5c:输入连接详情
填写所选数据源的连接参数。例如,如果您连接到本地运行的 Prometheus 实例:
- URL:
http://localhost:9090 - 访问:
Server (default) - 抓取间隔:
15s(与您的 Prometheus 抓取配置匹配)
对于远程 InfluxDB 实例,您需要提供主机 URL、数据库名称和身份验证凭据。
步骤 5d:保存并测试连接
单击 保存并测试。Grafana 将尝试连接到数据源并显示成功或错误消息。绿色的 “数据源正在工作” 确认意味着您已准备好构建仪表板。
步骤 6:创建您的第一个 Grafana 仪表板 {#step-6}
连接数据源后,您现在可以创建仪表板来实时可视化您的指标。
步骤 6a:创建新仪表板
- 在左侧边栏中,单击 + (加号) 图标。
- 选择 仪表板。
- 单击 添加新面板。
步骤 6b:配置面板
面板编辑器打开,让您完全控制显示的数据及其可视化方式。
- 数据源:选择您在步骤 5 中配置的数据源。
- 查询:编写您的指标查询。对于 Prometheus,使用 PromQL。例如,要可视化 CPU 使用率:
100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)- 可视化类型:根据数据的性质,从 时间序列、仪表、条形图、表格、统计、热力图 等中选择。
- 面板标题:为您的面板指定一个描述性名称(例如”CPU 使用率 — 过去 1 小时”)。
步骤 6c:自定义并保存
使用右侧面板选项配置阈值、配色方案、轴标签和图例。满意后:
- 单击 应用 将面板添加到您的仪表板。
- 重复该过程以添加多个面板 — 每个面板跟踪不同的指标。
- 单击右上角的 保存仪表板 图标(软盘),为您的仪表板指定一个名称,然后单击 保存。
> 专业提示:Grafana 的官方仪表板库提供数百个预构建的、社区贡献的仪表板,适用于 Node Exporter、Kubernetes、MySQL 和 NGINX 等流行堆栈。您可以直接使用仪表板 ID 导入它们。
步骤 7:设置警报 {#step-7}
Grafana 的内置警报引擎允许您定义基于阈值的规则,并在指标超过关键级别时接收通知 — 在小问题变成重大中断之前让您保持知情。
步骤 7a:创建警报规则
- 打开您想要监控的面板并单击 编辑。
- 导航到面板编辑器中的 警报 选项卡。
- 单击 创建警报。
步骤 7b:定义警报条件
配置触发警报的条件。例如:
- 条件:
WHEN avg() OF query(A, 5m, now) IS ABOVE 90 - 当您的指标的平均值在过去 5 分钟内超过 90 时,这会触发警报。
设置 每次评估 和 持续 字段以控制规则的评估频率以及条件在触发前必须持续多长时间。
步骤 7c:配置通知渠道
- 在左侧边栏中转到 警报 → 通知渠道。
- 单击 添加渠道 并选择您首选的方法:
- 电子邮件 — 需要在
grafana.ini中进行 SMTP 配置 - Slack — 需要 Slack webhook URL
- PagerDuty、OpsGenie、Webhook 等
将通知渠道分配给您的警报规则,以便在超过阈值时通知相应的人员。
步骤 8:使用 HTTPS 和访问控制保护 Grafana {#step-8}
在没有适当安全加固的情况下在生产环境中运行 Grafana 是一个严重的风险。遵循这些最佳实践来保护您的监控基础设施。
8a:使用 SSL 证书启用 HTTPS
加密到您的 Grafana 实例的流量至关重要,特别是如果它可以通过公网访问。您需要一个有效的 SSL 证书 — AlexHost 提供价格实惠且易于部署的 SSL 证书。
获得证书和私钥后,编辑 Grafana 配置文件:
sudo nano /etc/grafana/grafana.ini找到 [server] 部分并更新以下参数:
[server]
protocol = https
http_port = 3000
cert_file = /etc/grafana/ssl/grafana.crt
cert_key = /etc/grafana/ssl/grafana.key保存文件并重启 Grafana:
sudo systemctl restart grafana-serverGrafana 现在可以通过端口 3000 上的 HTTPS 访问。
> 推荐替代方案:将 Grafana 放在反向代理(例如 Nginx 或 Apache)后面,并在代理级别终止 SSL。这是生产环境中更灵活和广泛采用的方法。
8b:限制管理员访问并管理用户
- 在 Grafana UI 中导航到 服务器管理 → 用户。
- 查看并调整用户角色:
- 管理员 — 完全访问
- 编辑 — 可以创建和编辑仪表板
- 查看者 — 只读访问
- 禁用或删除未使用的账户。
- 考虑启用 LDAP 或 OAuth(Google、GitHub、GitLab)以进行集中身份验证。
8c:其他加固建议
- 在
grafana.ini中禁用匿名访问:
[auth.anonymous]
enabled = false- 更改默认 HTTP 端口(如果 Grafana 公开暴露)。
- 使用防火墙规则限制来自 Grafana 服务器的出站连接。
- 启用审计日志以跟踪用户活动。
步骤 9:管理和更新 Grafana {#step-9}
保持 Grafana 最新对于安全性和访问新功能至关重要。由于您从官方 APT 存储库安装了 Grafana,更新非常简单。
更新 Grafana
sudo apt update
sudo apt upgrade grafana -y常见服务管理命令
| 操作 | 命令 |
|---|---|
| 启动 Grafana | sudo systemctl start grafana-server |
| 停止 Grafana | sudo systemctl stop grafana-server |
| 重启 Grafana | sudo systemctl restart grafana-server |
| 重新加载配置 | sudo systemctl reload grafana-server |
| 检查状态 | sudo systemctl status grafana-server |
| 查看日志 | sudo journalctl -u grafana-server -f |
备份 Grafana 数据
Grafana 默认将其配置、仪表板和用户数据存储在 SQLite 数据库中,位于:
/var/lib/grafana/grafana.db定期备份此文件,特别是在执行升级之前:
sudo cp /var/lib/grafana/grafana.db /var/lib/grafana/grafana.db.backup-$(date +%F)对于更大的部署,考虑迁移到专用的 MySQL 或 PostgreSQL 后端,以提高可靠性并简化备份管理。
常见问题故障排除
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 无法访问端口 3000 | 防火墙阻止端口 | 运行 sudo ufw allow 3000/tcp |
| 服务无法启动 | 配置错误或端口冲突 | 检查 journalctl -u grafana-server |
| “数据源连接失败” | URL 错误或防火墙规则 | 验证数据源 URL 和网络访问 |
| 更改密码后登录不工作 | 浏览器缓存 | 清除缓存或使用 |
