15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
31.10.2024
1 +1

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

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

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

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

目录

  1. 更新系统包
  2. 通过官方 APT 存储库安装 Grafana
  3. 启动并启用 Grafana 服务
  4. 访问 Grafana Web 界面
  5. 配置数据源
  6. 创建您的第一个仪表板
  7. 设置警报
  8. 使用 HTTPS 和访问控制保护 Grafana
  9. 管理和更新 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 是一个可视化层 — 它本身不存储指标。相反,它连接到外部数据源,例如 PrometheusInfluxDBElasticsearchMySQLPostgreSQL 等。配置数据源是构建任何仪表板之前的必要第一步。

步骤 5a:导航到数据源

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

步骤 5b:添加新数据源

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

步骤 5c:输入连接详情

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

  • URL: http://localhost:9090
  • 访问: Server (default)
  • 抓取间隔: 15s(与您的 Prometheus 抓取配置匹配)

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

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

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

步骤 6:创建您的第一个 Grafana 仪表板 {#step-6}

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

步骤 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:设置警报 {#step-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 {#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-server

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

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

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

  1. 在 Grafana UI 中导航到 服务器管理 → 用户
  2. 查看并调整用户角色:
  • 管理员 — 完全访问
  • 编辑 — 可以创建和编辑仪表板
  • 查看者 — 只读访问
  1. 禁用或删除未使用的账户。
  2. 考虑启用 LDAPOAuth(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

常见服务管理命令

操作命令
启动 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)

对于更大的部署,考虑迁移到专用的 MySQLPostgreSQL 后端,以提高可靠性并简化备份管理。

常见问题故障排除

问题可能原因解决方案
无法访问端口 3000防火墙阻止端口运行 sudo ufw allow 3000/tcp
服务无法启动配置错误或端口冲突检查 journalctl -u grafana-server
“数据源连接失败”URL 错误或防火墙规则验证数据源 URL 和网络访问
更改密码后登录不工作浏览器缓存清除缓存或使用
15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用