所有托管服务节省 15%

测试技能,享折扣

使用代码: Skills 开始使用
China
Linux 管理

如何在 Ubuntu 上安装 Grafana:完整设置和配置指南

Grafana 是最强大的开源数据可视化和基础设施监控平台之一。无论您是在跟踪服务器性能、应用程序指标还是业务 KPI,Grafana 的灵活仪表板和广泛的数据源支持使其成为任何系统管理员或 DevOps 工程师不可或缺的工具。

本综合指南将引导您完成在 Ubuntu 上安装 Grafana 的每一步——从初始系统准备到配置数据源、构建您的第一个仪表板、设置警报和保护您的部署。

> 前置条件:一台运行中的 Ubuntu 服务器(推荐 20.04 或 22.04 LTS),sudo 权限和稳定的互联网连接。如果您需要一台可靠的服务器来托管您的 Grafana 实例,请考虑来自 AlexHost 的 VPS 主机——针对性能关键的监控工作负载进行了优化。

第1步:更新系统包

在安装任何新软件之前,必须同步您的包索引并应用所有可用的升级。这确保了兼容性并降低了依赖关系冲突的风险。

sudo apt update && sudo apt upgrade -y

在继续之前,请允许该过程完成。在新配置的服务器上,这可能需要几分钟。

第2步:通过官方APT存储库安装Grafana

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 服务

安装后,启动 Grafana 服务器守护程序并将其配置为在系统启动时自动启动:

sudo systemctl start grafana-server
sudo systemctl enable grafana-server

验证服务是否正确运行:

sudo systemctl status grafana-server

您应该看到类似以下的输出,确认服务处于活跃(运行中)状态:

● 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 界面

默认情况下,Grafana 监听 端口 3000。打开您的 Web 浏览器并导航到:

http://your_server_ip:3000

your_server_ip 替换为您服务器的实际 IP 地址或主机名。

默认登录凭据

字段
用户名admin
密码admin

首次登录时,Grafana 将立即提示您设置新的安全密码。不要跳过此步骤 — 保留默认凭据是一个重大安全风险。

> 防火墙说明:如果您运行 UFW 或其他防火墙,请打开端口 3000 以允许浏览器访问:

> “`bash

> sudo ufw allow 3000/tcp

> sudo ufw reload

> “`

第 5 步:配置数据源

Grafana 是一个可视化层 — 它本身不存储指标。相反,它连接到外部数据源,例如 PrometheusInfluxDBElasticsearchMySQLPostgreSQL 等。配置数据源是构建任何仪表板之前的必要第一步。

第 5a 步:导航到数据源

  1. 在左侧边栏中,单击齿轮图标 (⚙) 打开配置菜单。
  2. 选择数据源

第 5b 步:添加新数据源

  1. 单击添加数据源
  2. 浏览列表并选择您所需的数据源类型(例如 PrometheusInfluxDBMySQL)。

第 5c 步:输入连接详情

填入您选择的数据源的连接参数。例如,如果您连接到本地运行的 Prometheus 实例:

  • URL: http://localhost:9090
  • Access: Server (default)
  • Scrape interval: 15s(与您的 Prometheus scrape 配置相匹配)

对于远程 InfluxDB 实例,您需要提供主机 URL、数据库名称和身份验证凭证。

第 5d 步:保存并测试连接

单击保存并测试。Grafana 将尝试连接到数据源并显示成功或错误消息。绿色的“数据源正在工作”确认意味着您已准备好构建仪表板。

第6步:创建您的第一个Grafana仪表板

连接数据源后,您现在可以创建仪表板以实时可视化您的指标。

第6a步:创建新仪表板

  1. 在左侧边栏中,单击+(加号)图标。
  2. 选择仪表板
  3. 单击添加新面板

第6b步:配置面板

面板编辑器打开,让您完全控制显示的数据及其可视化方式。

  • 数据源:选择您在第5步中配置的数据源。
  • 查询:编写您的指标查询。对于Prometheus,使用PromQL。例如,要可视化CPU使用率:
  100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
  • 可视化类型:根据数据的性质,从时间序列仪表条形图表格统计热力图等中选择。
  • 面板标题:为您的面板指定一个描述性名称(例如,”CPU使用率 — 最后1小时”)。

第6c步:自定义并保存

使用右侧面板选项配置阈值、配色方案、轴标签和图例。满意后:

  1. 单击应用将面板添加到您的仪表板。
  2. 重复此过程以添加多个面板 — 每个面板跟踪不同的指标。
  3. 单击右上角的保存仪表板图标(软盘),为您的仪表板指定名称,然后单击保存

> 专业提示:Grafana的官方仪表板库提供了数百个预构建的、社区贡献的仪表板,适用于Node Exporter、Kubernetes、MySQL和NGINX等流行堆栈。您可以使用仪表板ID直接导入它们。

第7步:设置告警

Grafana 的内置告警引擎允许您定义基于阈值的规则,并在指标超过关键级别时接收通知 — 在小问题演变成重大中断之前保持您的信息更新。

第7a步:创建告警规则

  1. 打开您要监控的面板并点击编辑
  2. 在面板编辑器中导航到告警选项卡。
  3. 点击创建告警

第7b步:定义告警条件

配置触发告警的条件。例如:

  • 条件: WHEN avg() OF query(A, 5m, now) IS ABOVE 90
  • 当您的指标的平均值在过去 5 分钟内超过 90 时,这会触发一个告警。

设置评估频率持续时间字段以控制规则的评估频率以及条件在触发前必须持续的时间。

第7c步:配置通知渠道

  1. 在左侧边栏中转到告警 → 通知渠道
  2. 点击添加渠道并选择您首选的方法:
  • 电子邮件 — 需要在 grafana.ini 中配置 SMTP
  • Slack — 需要 Slack webhook URL
  • PagerDutyOpsGenieWebhook

将通知渠道分配给您的告警规则,以便在超过阈值时通知相关人员。

第 8 步:使用 HTTPS 和访问控制保护 Grafana

在生产环境中运行 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-server

Grafana 现在可以通过端口 3000 上的 HTTPS 访问。

> 推荐替代方案:将 Grafana 放在反向代理(例如 NginxApache)后面,并在代理级别终止 SSL。这是生产环境中更灵活和广泛采用的方法。

8b:限制管理员访问和管理用户

  1. 在 Grafana UI 中导航到 Server Admin → Users
  2. 查看并调整用户角色:
  • Admin — 完全访问权限
  • Editor — 可以创建和编辑仪表板
  • Viewer — 只读访问权限
  1. 禁用或删除未使用的账户。
  2. 考虑启用 LDAPOAuth(Google、GitHub、GitLab)进行集中身份验证。

8c:其他加固建议

  • grafana.ini 中禁用匿名访问
  [auth.anonymous]
  enabled = false
  • 如果 Grafana 公开暴露,请更改默认 HTTP 端口
  • 使用防火墙规则限制来自 Grafana 服务器的出站连接
  • 启用审计日志以跟踪用户活动。

第9步:管理和更新Grafana

保持Grafana最新版本对于安全性和访问新功能至关重要。由于您从官方APT存储库安装了Grafana,更新非常简单。

更新Grafana

sudo apt update
sudo apt upgrade grafana -y

常见服务管理命令

操作命令
启动Grafanasudo systemctl start grafana-server
停止Grafanasudo systemctl stop grafana-server
重启Grafanasudo 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 和网络访问
更改密码后登录不工作浏览器缓存清除缓存或使用隐身模式
Grafana 运行缓慢服务器资源不足升级到更高级的 VPS Hosting 计划

为您的 Grafana 堆栈选择合适的托管

Grafana 部署的性能在很大程度上取决于底层基础设施。以下是选择合适托管层级的快速指南:

  • 小型团队 / 个人项目:共享网络托管可用于轻量级设置,但通常建议为 Grafana 使用 VPS。
  • 生产监控堆栈:VPS 托管计划为您提供专用资源、root 访问权限以及运行 Grafana 与 Prometheus、InfluxDB 或其他组件的灵活性。
  • 大容量数据摄取 / 机器学习驱动的可观测性:对于涉及大规模数据处理或 AI 驱动的异常检测的工作负载,请考虑 GPU 托管
  • 企业级部署:专用服务器为关键任务监控基础设施提供最高性能、隔离和安全性。

结论

在 Ubuntu 上安装和配置 Grafana 是一个简单的过程,可以为您的系统和应用程序提供强大的实时可见性。通过遵循本指南,您已经学到了如何:

  • 从 Ubuntu 上的官方存储库安装 Grafana
  • 启动、启用和验证 Grafana 服务
  • 连接数据源,如 Prometheus、InfluxDB 和 MySQL
  • 使用自定义面板和可视化构建交互式仪表板
  • 配置基于阈值的警报,支持多渠道通知
  • 使用 HTTPS 和基于角色的访问控制保护您的 Grafana 实例
  • 使用标准 APT 命令维护和更新 Grafana

无论您是监控单个 VPS 还是复杂的多节点基础设施,Grafana 都提供了您需要的可观测性基础,以便提前发现性能问题并做出数据驱动的决策。将其与来自 AlexHost 的可靠托管环境配对,您就拥有了构建世界级监控堆栈所需的一切。