Grafana相关问题及答案(2024)

1、Grafana 是什么,它用于什么目的?

Grafana 是一个高度灵活且富有功能的数据可视化和监控平台,旨在为技术专业人员提供强大的方式来显示和分析他们的数据。下面将详细介绍 Grafana 的关键特点和它的使用场景。

关键特点

1. 数据源的多样性和兼容性

Grafana 设计为可以与多种数据存储和监控工具兼容。它可以集成像 Prometheus, InfluxDB, Elasticsearch, MySQL, PostgreSQL, Graphite 等流行的时间序列数据库和其他类型的数据库。这种多样性允许它在不同环境和使用场景下提供一致的可视化体验。

2. 丰富的可视化选项

Grafana 提供了包括折线图、柱状图、饼图、热力图、地图和更多专业级图表库的选项。它允许高度自定义这些图表,包括颜色、标签、轴信息和工具提示等。

3. 仪表盘和面板

在 Grafana 中,仪表盘由多个面板组成,每个面板可以显示来自一个或多个数据源的信息。这些面板可以根据需求进行排列和定制,以创造出完整的数据视图。用户可以保存、导出和共享这些仪表盘,便于协作和报告。

4. 动态查询与变量

通过使用变量,用户可以创建动态的仪表盘,这些仪表盘可以根据用户的选择改变显示的数据。这对于需要跨多个数据源、服务或实例对数据进行快速切换和比较的复杂环境尤其有用。

5. 告警系统

Grafana 的告警功能允许用户设置规则和阈值,当监测的数据超出这些预设条件时,Grafana 可以通过邮件、Slack、PagerDuty、Webhook 等通知用户。告警规则可以完全自定义,包括对检查频率和条件的精细控制。

6. 安全性与权限控制

Grafana 支持细粒度的权限控制,用户可以设置谁可以查看或编辑仪表盘,确保数据的安全性和用户访问的适当性。它也支持通过 LDAP 或 OAuth 等方式与现有的用户目录服务集成。

7. 插件和扩展性

Grafana 拥有一个活跃的社区,社区开发了大量的插件以扩展 Grafana 的功能。这些插件包括新的数据源、新的面板类型、新的应用程序和不断增长的自定义选项。

使用场景

IT 运维监控

对于 IT 运维团队,Grafana 可以监控服务器和应用程序的状态,包括 CPU、内存使用、磁盘 I/O、网络流量和更多的系统指标。Grafana 的实时数据更新和告警系统可以帮助运维人员迅速响应可能的系统问题。

应用性能监控 (APM)

开发者和质量保证工程师可以使用 Grafana 来监视软件应用程序的性能,例如响应时间、错误率和并发用户数等。

IoT 监控

Grafana 也被用于物联网(IoT)项目,用于追踪和显示来自传感器和设备的数据,如温度、湿度或位置信息。

业务指标分析

除了技术监控外,Grafana 也被用于追踪业务层面的关键性能指标(KPIs),比如销售数据、用户活跃度或其他自定义的业务指标。

通过提供强大的数据可视化工具,Grafana 帮助组织将数据转化为洞察力,使决策者能够基于实时数据做出更明智的决策。它的目的是为了使得数据分析和监控变得更加直观,简化复杂数据环境中的信息共享和决策过程。

2、Grafana 的一些主要特性

Grafana 是一个功能丰富的开源数据可视化和监控平台,以下是其一些主要特性:

1. 多数据源支持

Grafana 能够连接多种数据源,包括流行的时间序列数据库(如 Prometheus, InfluxDB, Graphite),关系数据库(如 MySQL, PostgreSQL),以及日志和文档数据库(如 Elasticsearch)。用户可以在同一个仪表盘内混合使用不同的数据源。

2. 强大的数据可视化选项

提供了各种图形和表格选项,例如时序图表、统计图、饼图、地理图、热图和自定义图表等,允许用户以多种视觉格式展示数据。

3. 丰富的仪表盘特性

仪表盘是 Grafana 的核心,它们是完全自定义的,支持布局和设计的灵活性。用户可以创建和组织多个面板,以展示多样化的指标集。

4. 模板和变量

Grafana 允许创建动态仪表盘,使用变量可以让用户交互式地改变面板上显示的数据。这在需要根据不同环境或参数查看数据时尤其有用。

5. 告警和通知

集成了一个强大的告警引擎,允许用户为数据设置触发条件,并在这些条件满足时发送通知。支持多种通知渠道,如电子邮件、Slack、PagerDuty 等。

6. 注释和时间区间选择

用户可以在图表上添加注释来标记事件,和选择特定的时间区间进行数据查看,这有助于分析数据在特定时间点或时间段内的行为。

7. 安全性和认证

提供了细粒度的访问控制,支持 LDAP、OAuth、和基于令牌的认证等多种认证机制。

8. 移动友好和响应式设计

Grafana 的界面对于移动设备也是友好的,确保用户可以在多种设备上有良好的查看和交互体验。

9. 插件系统

拥有一个充满活力的社区和插件市场,用户可以安装和使用各种数据源、面板和应用插件,以扩展 Grafana 的功能。

10. API 访问

Grafana 提供了完整的 API 支持,允许开发者通过编程方式管理其仪表盘和数据源,以及自动化其他任务。

11. 团队协作

支持团队创建和管理,允许在组织中不同的团队之间共享仪表盘和数据源。

这些特性共同作用,使 Grafana 成为一个强大的工具,适用于数据可视化和基础设施监控,以及在多个业务和技术领域中分析和理解数据。

3、Grafana 支持哪些数据源

Grafana 支持多种类型的数据源,其中包括但不限于以下:

时间序列数据库

  • Prometheus: 开源监控和告警工具,非常适合记录实时的时序数据。
  • InfluxDB: 一个开源分布式时序数据库,设计用于处理高性能的数据插入和查询。
  • Graphite: 一个开源的监控工具,广泛用于存储和绘制时序数据。
  • OpenTSDB: 一个可扩展的、分布式时序数据库,设计用于存储和访问大量的时序数据。

关系型数据库

  • MySQL: 一个流行的开源关系数据库管理系统。
  • PostgreSQL: 一个强大的开源对象关系数据库系统。
  • Microsoft SQL Server: 微软开发的关系数据库管理系统。
  • SQLite: 一个关系数据库管理系统,包含在一个相对小的 C 库中。

日志和文档数据库

  • Elasticsearch: 一个基于 Lucene 的搜索引擎,广泛用于日志聚合和数据分析。
  • Loki: 由 Grafana Labs 开发的一个水平可扩展、高可用性、多租户的日志聚合系统。

其他数据源

  • CloudWatch: 亚马逊的监控服务,用于从 Amazon Web Services (AWS) 收集、监控和分析指标。
  • Google Cloud Monitoring (formerly Stackdriver): 谷歌云的监控和管理服务,提供了对 Google Cloud Platform (GCP) 和 Amazon Web Services (AWS) 资源的洞察。
  • Azure Monitor: 微软 Azure 的监控服务,提供了对 Azure 和第三方云资源的数据收集和分析。
  • VictoriaMetrics: 一种快速、成本效益高的监控解决方案和时序数据库。
  • ClickHouse: 一个开源的列式数据库管理系统,用于在线分析处理查询 (OLAP)。

专用插件

Grafana 还支持通过安装专用的数据源插件来集成更多类型的数据源。社区和一些第三方公司开发了许多这样的插件,这使得 Grafana 可以对接更广泛的数据平台和服务。

本地支持与插件

Grafana 的核心支持一些数据源,而对于不直接支持的数据源,通常可以通过官方或社区提供的插件进行集成。因此,即便某个数据源没有内置支持,也有可能通过安装额外的插件来实现对该数据源的支持。

要查看支持的所有数据源以及相应的插件,可以访问 Grafana 的官网或者查看 Grafana 的插件库。这个插件库是持续更新的,随着新的数据源和技术的出现,社区和开发者通常会开发新的插件以满足用户需求。

4、如何在 Grafana 中创建一个仪表盘

在 Grafana 中创建一个仪表盘是一个直观的过程,可以通过以下步骤完成:

步骤 1: 登录 Grafana

首先,您需要登录到 Grafana 用户界面。通常,您可以通过浏览器访问类似 http://your-grafana-server:3000 的地址以访问 Grafana 实例。

步骤 2: 创建新仪表盘

一旦登录,您可以通过以下方法创建一个新的仪表盘:

  • 点击左侧菜单栏中的 “+” 图标,然后选择 “Dashboard”。
  • 或者,您可以点击左侧菜单栏的 “Dashboards”,然后点击 “New dashboard”。

步骤 3: 添加新面板

创建新的仪表盘后,您通常会看到一个空白的仪表盘,您可以开始向其中添加面板:

  • 在仪表盘页面上,点击 “Add new panel”。
  • 此时,将出现一个新的面板,其中包含一些默认的配置。

步骤 4: 选择数据源

添加面板后,您需要为面板选择一个数据源:

  • 在面板编辑模式中,找到 “Queries” 部分。
  • 从 “Data Source” 下拉菜单中选择您的数据源。

步骤 5: 配置查询

选择数据源之后,根据所选数据源的类型,配置用于检索数据的查询:

  • 使用数据源特定的查询编辑器来定义你想要可视化的数据集。
  • 您可以设置查询参数、时间范围、聚合函数等。

步骤 6: 设定面板选项

配置好查询后,您可以定义面板的外观和行为:

  • 切换到 “Panel” 标签,您可以选择不同的可视化类型(如图表、图形、表格等)。
  • 在 “Panel Title” 中输入面板的标题。
  • 对于每种可视化类型都有许多自定义选项,包括轴配置、颜色方案和图例设置等。

步骤 7: 保存面板

一旦您对面板的配置和外观感到满意,就可以保存您的面板:

  • 点击页面右上角的 “Apply” 按钮以查看您的面板是如何展示的。
  • 然后,点击 “Save” 按钮,为仪表盘命名,并可以选择添加描述。
  • 最后,点击 “Save dashboard”。

步骤 8: 继续编辑和添加更多面板

  • 在仪表盘中,您可以继续添加更多的面板,或者对现有的面板进行编辑,以便更好地展示数据和指标。
  • 您可以通过拖动面板边缘来调整大小和位置,使得仪表盘的布局符合您的需求。

完成以上步骤后,您就已经成功创建了一个基本的 Grafana 仪表盘,并且可以根据您的监控和数据分析需求进一步进行定制和优化。记得定期保存您的更改,并探索 Grafana 提供的高级功能,如告警设置、动态变量和注释等。

5、Grafana 如何配置告警

在 Grafana 中配置告警是一个相对直接的过程,下面将指导您如何设置基本的告警规则:

步骤 1: 选择面板

告警规则是基于特定面板中的查询结果设置的。所以首先,您需要有一个已经配置好的面板,它的查询结果可以用来触发告警。

  • 打开您想要添加告警的面板。
  • 点击面板右上角的标题或者下拉箭头,然后选择 “Edit” 进入面板编辑模式。

步骤 2: 打开告警标签

在面板编辑模式中,点击 “Alert” 标签进入告警配置页面。

步骤 3: 创建告警规则

  • 点击 “Create Alert” 按钮。
  • 在弹出的告警配置界面中,您可以定义告警规则的详细信息。

步骤 4: 设定告警条件

  • 在 “Conditions” 部分,您可以配置告警的条件。默认情况下,Grafana 会使用您在面板中配置的第一个查询作为条件。
  • 您可以选择何时触发告警,比如当查询返回的平均值、最大值、最小值或总和超过或低于某个阈值时。

步骤 5: 配置评估周期和条件

  • 在 “Evaluate every” 字段设置告警规则评估的频率,例如 “1m” 表示每分钟评估一次。
  • “For” 字段可以设置持续时间,意味着条件必须在指定的时间内持续满足,告警状态才会被触发。

步骤 6: 设置通知方式

  • 在 “Notifications” 部分,点击 “Add Notification” 来添加告警通知的方式。
  • 选择一个已经设置好的通知通道,如电子邮件、Slack、PagerDuty 等。
  • 如果之前没有设置通知通道,你需要先前往 “Alerting” -> “Notification channels” 部分来配置一个。

步骤 7: 定制告警消息

  • 您可以定义具体的告警消息,解释告警的内容,也可以使用 Grafana 提供的模板变量来动态展示告警信息。

步骤 8: 保存告警规则

  • 设定完成后,点击 “Save” 按钮保存面板和告警规则。

步骤 9: 测试告警通知

  • 为了确保告警规则和通知正常工作,您可以点击 “Test rule” 来测试您的告警设置是否能正确触发通知。

请注意,不是所有的面板类型都支持告警;例如,“Table” 或 “Text” 面板就不支持告警功能。另外,告警只对 Grafana 服务器上的数据有效,因此,对于一些外部数据源(如 Prometheus),告警配置可能需要在相应的外部系统中进行。

现在您已经知道了如何在 Grafana 中配置一个基本的告警规则。告警是一个复杂的主题,可能需要根据具体环境和需求进行详细的调整和测试。

6、如何优化 Grafana 仪表盘的性能

优化 Grafana 仪表盘的性能可以通过多个层面来进行,包括改善查询效率、减少数据点数量、使用合适的面板配置以及优化 Grafana 的服务器设置。以下是一些优化 Grafana 仪表盘性能的策略:

1. 优化数据查询

  • 简化查询:确保查询尽可能简洁,避免不必要的复杂操作。
  • 减少查询范围:限制时间范围和查询的数据点数量,只获取必要的数据。
  • 利用聚合:使用聚合函数(如平均值、最大值、最小值)减少返回的数据点。
  • 索引优化:确保数据库索引得当,以加快查询速度。

2. 控制面板数量和面板中的查询

  • 减少面板数量:每个面板都会发起一个或多个查询,减少面板数量可以减轻服务器负担。
  • 限制面板中的查询:设计面板时,应尽量减少每个面板中的查询数量。

3. 降低数据点和时间序列的数量

  • 筛选数据点:选择合适的时间间隔,只展示足够表达趋势的数据点。
  • 合并时间序列:如果可能,合并多个时间序列数据来减少总数据点数量。

4. 使用合适的面板和可视化类型

  • 选择高效的可视化类型:某些图表类型(如简单的线图)比复杂的图表(如热图)渲染起来更高效。
  • 配置适当的可视化选项:避免使用高资源消耗的选项,如阴影、动态效果等。

5. 优化Grafana服务器配置

  • 升级硬件:提高服务器的CPU和内存可以加快数据处理和响应速度。
  • 负载均衡:如果运行多个 Grafana 实例,使用负载均衡分散请求。
  • 使用缓存:开启并配置合适的数据源缓存来减少数据库的查询负担。

6. 利用Grafana的功能

  • 快照和静态仪表盘:对于不需要实时更新的数据,可以使用快照功能创建静态视图。
  • 异步加载面板:在仪表盘设置中启用“懒加载”面板,这样只有当用户滚动到它们时,面板才会加载和执行查询。

7. 监控和分析Grafana性能

  • 监控Grafana日志:监控Grafana的日志文件来识别性能瓶颈。
  • 分析查询性能:使用Grafana的内置检查器或数据源自带的工具来分析查询的性能。

8. 教育用户

  • 合理使用仪表盘:教育用户如何有效使用仪表盘,避免打开大量标签页等可能造成性能问题的行为。

9. 优化数据源设置

  • 数据源性能:确保数据源服务器(如Prometheus, InfluxDB等)也经过了性能优化。

10. 定期审核

  • 定期审查:定期审查仪表盘的性能和配置,以及数据源的健康状况。

通过上述措施,您可以显著提高 Grafana 仪表盘的性能和响应速度。应该注意的是,优化可能需要根据具体的使用场景和数据特点进行调整。

7、Grafana 和 Prometheus 的集成

Grafana 和 Prometheus 的集成是一个强大的组合,可以让你利用 Grafana 的强大可视化能力和 Prometheus 的可靠度量和统计功能。下面是它们集成的详细步骤:

1. 安装和配置 Prometheus

首先,你需要有一个运行着的 Prometheus 服务器。以下是基本的安装步骤:

  • 下载和安装:根据你的操作系统从 Prometheus 官网 下载对应的包,并解压缩。
  • 配置 Prometheus:编辑配置文件 prometheus.yml,设置要抓取的 targets 和抓取间隔。
  • 启动 Prometheus:通过命令行运行 ./prometheus --config.file=prometheus.yml 启动 Prometheus 服务。

2. 安装 Grafana

如果你还没有安装 Grafana,你可以根据 Grafana 官方文档 的指导进行安装。

3. 添加 Prometheus 数据源到 Grafana

安装好 Grafana 之后,你需要将 Prometheus 添加为 Grafana 的数据源:

  • 登录 Grafana:打开浏览器访问 Grafana,通常是 http://localhost:3000
  • 打开数据源设置:点击左侧边栏的齿轮图标进入 “Configuration”,然后选择 “Data Sources”。
  • 添加新的数据源:点击页面顶部的 “Add data source” 按钮。
  • 选择 Prometheus:在数据源列表中找到并选择 Prometheus。
  • 配置数据源
    • HTTP 部分中的 URL 输入 Prometheus 服务器的地址(如 http://localhost:9090)。
    • 如果需要,可以设置 Access(比如,如果 Prometheus 和 Grafana 在不同的服务器上,你可能需要选择 Server 而非 Browser)。
    • 可以选择性地配置其他选项,如 Scrape interval(抓取间隔)等。
  • 保存 & 测试:点击 “Save & Test” 按钮来保存配置并测试连接是否成功。

4. 创建仪表盘和面板

数据源配置好之后,你可以在 Grafana 中创建仪表盘和面板来可视化从 Prometheus 收集的数据:

  • 创建新的仪表盘:点击 “+” 图标,然后选择 “Dashboard”。
  • 添加新的面板:在新的仪表盘中,点击 “Add new panel”。
  • 构建查询
    • 使用 Prometheus Query Language (PromQL) 来构建查询。这可以通过 Grafana 面板下方的查询编辑器来完成。
    • 选择 Prometheus 数据源,然后在查询编辑器中输入你的 PromQL 查询语句。
  • 配置面板:设置面板标题,选择合适的可视化类型(比如图标、表格等),并做其他必要的配置。
  • 保存面板:配置完成后,点击 “Apply” 然后保存仪表盘。

5. 探索和可视化

一旦你设置了数据源并创建了仪表盘,你就可以使用 Grafana 强大的特性来探索 Prometheus 数据:

  • 使用 Prometheus 的特性:Prometheus 提供了丰富的查询能力,你可以使用 PromQL 进行详细的数据探索。
  • 利用 Grafana 特性:你可以使用 Grafana 的各种数据可视化工具,如图表、热图、状态图等来查看数据。
  • 创建告警规则:在 Grafana 中,你还可以基于 Prometheus 数据源设置告警。

6. 调整性能

随着你创建更多的仪表盘和面板,可能需要对 Prometheus 和 Grafana 进行性能调优:

  • 调整抓取策略:在 Prometheus 配置中调整目标的抓取频率和超时设置,确保数据的实时性和可靠性。
  • 优化 PromQL:优化 PromQL 查询,避免不必要的资源消耗。
  • 硬件资源:根据监控规模,适时增加 Prometheus 和 Grafana 服务器的硬件资源。

Grafana 和 Prometheus 的集成为用户提供了一个强大的监控和可视化工具集,可以帮助你更好地理解和分析你的系统状态。

8、 Grafana 中的注释(Annotations)是用来做什么的

在 Grafana 中,注释(Annotations)是用来标记时间序列图表上特定时间点或时间区间的工具。它们可以用来显示这些时间点或时间区间发生的事件,如代码部署、系统故障、警告或任何其他重要的标记信息。使用注释能够帮助用户理解图表上数据波动的背后原因。

注释通常在图表上以垂直线或区间的形式展示,当你将鼠标悬停在这些线或区间上时,可以看到额外的描述信息。这些描述信息可以是静态的文本,也可以是从数据源动态检索的。例如,如果你使用 Grafana 和 Prometheus 进行监控,你可以设置注释,以便在 Grafana 的图表上显示警报状态的变化或部署事件。

注释的主要用途包括:

  • 标记事件:在图表上标记重要事件的发生,如系统升级、服务重启等。
  • 关联因果:提供一种直观的方法来关联时间序列数据中的波动和发生的事件。
  • 共享信息:在团队成员之间共享关于时间序列数据特定点的信息。
  • 故障诊断:帮助快速诊断系统故障或性能问题,通过直观展示事件与指标异常之间的关系。

如何添加和配置注释:

  1. 通过界面添加:在图表上右键点击,选择 “Add annotation”,在弹出的对话框中填写事件的详细信息。
  2. 通过数据源添加:在 Grafana 的 “Dashboards” 菜单中,选择 “Annotations”,然后点击 “New” 来添加一条新的注释规则。在这里,你可以选择数据源,并定义如何查询这些事件。
  3. 配置查询:基于所选的数据源,配置一个查询,它将返回时间戳和事件描述信息。这些信息将被用来在图表上创建注释。
  4. 自定义外观:可以自定义注释的颜色、图标等属性,以便在图表中清晰显示。

注释是 Grafana 强大的功能之一,它强化了图表的信息含量,并且在进行故障排查和性能分析时提供了极大的帮助。

9、 Grafana 中的模板变量(Template variables)有什么用途

在 Grafana 中,模板变量(Template variables)是一种使仪表盘更加动态和交互式的强大功能。模板变量允许用户定义一个变量,然后在整个仪表盘中的多个位置和查询中使用这个变量。这样可以使得用户能够通过从下拉菜单中选择不同的选项来动态改变面板显示的信息,而无需修改仪表盘的实际查询代码。

模板变量的主要用途包括:

  1. 动态数据源:可以选择不同的数据源,对于有多个数据源的情况特别有用。
  2. 快速切换视图:用户可以快速切换不同的视图,而无需为每个视图创建单独的仪表盘。
  3. 自定义查询:可以在多个查询中重复使用变量,从而快速调整查询参数而无需重写查询。
  4. 过滤数据:通过选定的变量值筛选和限制仪表盘展示的数据,例如选择特定主机、服务或时间范围。
  5. 链式变量:变量可以基于其他变量的值来设置,使得你可以创建复杂的依赖关系和筛选逻辑。
  6. 提高用户体验:减少需要进行的点击次数,帮助用户更快地找到他们感兴趣的信息。

如何创建和使用模板变量:

  1. 添加变量:在仪表盘中,点击顶部菜单的齿轮图标来进入 “Dashboard settings”,然后选择 “Variables”。点击 “Add variable” 来创建一个新的变量。
  2. 配置变量:为变量设置名称、类型(如 Query, Interval, Constant, Custom 或其他)以及其他特定的选项。如果是 Query 类型的变量,你需要定义数据源和用于获取变量值的查询。
  3. 使用变量:在你的查询中,使用 $变量名 或者 ${变量名} 来引用这个变量。例如,在 PromQL 中,你可以使用 {instance=~"$instance"} 来过滤指标。
  4. 调整面板:确保你的面板可以响应变量值的变化,并且根据选定的变量来动态变更显示的数据。
  5. 提供默认值:为了确保仪表盘加载时有意义的数据展示,你可以为变量指定默认值。
  6. 测试和保存:测试变量在仪表盘中的功能是否如预期,并保存仪表盘。

模板变量是提升 Grafana 仪表盘灵活性和用户友好性的关键,它们使得仪表盘能够适应不同的分析需求和用户偏好。

10、 如何在 Grafana 中启用匿名或非身份验证访问

在 Grafana 中启用匿名或非身份验证访问意味着用户无需登录即可查看仪表盘。这对于向公众展示数据或在团队内部快速共享信息非常有用。要配置匿名访问,你需要修改 Grafana 的配置文件。以下是如何在不同操作系统上启用匿名访问的步骤:

对于 Linux 系统:

  1. 找到配置文件:Grafana 的配置文件通常位于 /etc/grafana/grafana.ini

  2. 编辑配置文件:使用文本编辑器(如 nanovim)打开该文件。

    sudo nano /etc/grafana/grafana.ini
    
  3. 修改匿名访问设置:找到 [auth.anonymous] 部分,并进行以下修改:

    [auth.anonymous]
    # 开启匿名访问
    enabled = true# 设置匿名用户的组织
    org_name = Main Org.# 设置匿名用户的角色(Viewer 只能查看、Editor 可以编辑)
    org_role = Viewer
    
  4. 重启 Grafana:保存修改后重启 Grafana 服务。

    sudo systemctl restart grafana-server
    

对于 Windows 系统:

  1. 找到配置文件:Grafana 的配置文件通常位于你 Grafana 安装目录下的 conf 文件夹内,文件名为 grafana.ini

  2. 编辑配置文件:使用文本编辑器打开 grafana.ini 文件。

  3. 修改匿名访问设置:同上,找到 [auth.anonymous] 部分,并进行相应修改。

  4. 重启 Grafana:重启 Grafana 服务以应用更改。

额外的考虑:

  • 确保安全:开启匿名访问可能会有安全隐患,确保你的 Grafana 实例不包含敏感数据,或者通过其他方式(如网络防火墙规则)限制访问。
  • 使用反向代理:如果你使用反向代理(如 Nginx 或 Apache),确保配置正确地反映了匿名访问的设置。
  • 测试访问:在修改配置并重启 Grafana 之后,确保测试匿名访问是否按预期工作。

通过这些步骤,你可以成功地在 Grafana 中启用匿名访问,从而使得无需登录即可查看仪表盘。不过,请牢记,在公开可访问的环境中公开信息之前仔细考虑潜在的安全和隐私问题。

11、Grafana 有哪些告警通知渠道

Grafana 支持多种告警通知渠道(Alert notification channels),允许用户在触发告警时接收通知。以下是一些常见的Grafana告警通知渠道:

  1. Email:通过电子邮件发送告警通知。
  2. Slack:发送消息到一个指定的 Slack 频道或用户。
  3. PagerDuty:集成 PagerDuty 服务来管理告警通知和事件响应。
  4. OpsGenie:通过 OpsGenie 进行告警管理和调度。
  5. Webhook:将告警信息发送到自定义的 HTTP 端点。
  6. Prometheus Alertmanager:使用 Prometheus Alertmanager 管理告警。
  7. Microsoft Teams:将告警通知发送到 Microsoft Teams 频道。
  8. Telegram:通过 Telegram 机器人发送告警消息。
  9. Pushover:发送通知到 iOS、Android 和桌面设备上的 Pushover 应用。
  10. Threema:通过 Threema Gateway 将告警作为端到端加密的消息发送。
  11. LINE:发送通知到 LINE 平台。
  12. VictorOps:通过 VictorOps 进行告警处理和事故响应。
  13. Sensu:将告警集成到 Sensu 监控框架中。
  14. Discord:将告警通知发送到 Discord 服务器。
  15. Kafka:将告警作为消息发送到 Kafka 主题。
  16. Google Hangouts Chat:向 Google Hangouts Chat 发送告警信息。
  17. Grafana OnCall (以前叫做 Grafana Incident):利用 Grafana 自己的事故响应平台进行告警通知。

要设置告警通知渠道,你可以进入 Grafana 的 “Alerting”(或 “Alert rules”,取决于你使用的 Grafana 版本)菜单,然后选择 “Notification channels”,并点击 “New channel” 来添加一个新的渠道。你将需要提供相应的配置信息,例如 Webhook URL、API 密钥、电子邮件地址等,这取决于你选择的通知渠道类型。

请注意,可用的告警通知渠道可能会根据 Grafana 的不同版本有所变化,所以请参考你所使用的 Grafana 版本的官方文档以获得最新和最准确的信息。

12、如何备份 Grafana 的仪表盘

备份 Grafana 仪表盘是确保你的监控配置在发生故障时能够迅速恢复的重要步骤。以下是一些备份 Grafana 仪表盘的方法:

1. 使用 Grafana 的导出功能:

Grafana 允许你导出仪表盘为 JSON 格式的文件。这可以通过用户界面完成:

  • 打开你想要备份的仪表盘。
  • 点击仪表盘标题栏中的设置图标(齿轮图标)。
  • 选择「Save As…」或「Save dashboard」。
  • 在弹出的对话框中,选择「Download JSON」。
  • 保存 JSON 文件到你的本地系统。

你可以对每个仪表盘重复这个过程来创建备份。

2. 使用 Grafana API:

你还可以使用 Grafana HTTP API 来自动化备份过程。以下是通过 API 备份单个仪表盘的一个例子:

curl -H "Authorization: Bearer <YourGrafanaAPIToken>" \
http://<YourGrafanaDomain>/api/dashboards/uid/<dashboardUID> > dashboard.json

这条命令会将指定仪表盘的 JSON 数据保存到 dashboard.json 文件中。

如果你想备份所有仪表盘,你可以首先列出所有仪表盘的 ID,然后迭代这些 ID 来获取它们的 JSON 数据。

3. 使用第三方工具或脚本:

有一些第三方工具和脚本,如 Wizzy, Grafana-backup-tool,可以帮助你批量导出和备份 Grafana 仪表盘。

4. 备份 Grafana 数据库:

Grafana 的仪表盘和配置数据存储在其数据库中。定期备份 Grafana 的数据库是另一种确保所有配置都能被恢复的方式。Grafana 默认使用 SQLite,但也可以配置为使用 MySQL 或 PostgreSQL。根据你使用的数据库类型,你可以使用适当的工具来备份数据库文件或使用 SQL 导出功能。

例如,如果使用 SQLite,可以直接复制 Grafana 的数据库文件(位于 grafana.db)到安全的位置。

cp /var/lib/grafana/grafana.db /path/to/backup/location

对于 MySQL 或 PostgreSQL,可以使用 mysqldumppg_dump 来导出数据库。

请记得在进行系统维护之前或者定期进行备份操作,以便在数据丢失或损坏时能够恢复你的 Grafana 实例。还要确保将备份文件存储在安全的位置,并考虑加密敏感数据。

13、Grafana 的用户和组织管理

在 Grafana 中,用户和组织管理是指对使用该平台的人员及其权限的管理。以下是关于如何在 Grafana 中管理用户和组织的基本指南。

用户管理

用户是指在 Grafana 中拥有访问权限的个人。每个用户都可以通过自己的用户名和密码登录。在 Grafana 中,管理员可以进行以下用户管理操作:

  • 创建用户:管理员可以手动添加用户账号。
  • 删除用户:管理员可以删除不再需要访问 Grafana 的用户账号。
  • 更新用户权限:用户可以被分配不同的角色和权限,比如 Viewer、Editor 或 Admin。
  • 用户组织:管理员可以控制用户属于哪些组织,以及在每个组织中的角色。
  • 用户认证:Grafana 支持内置的用户认证系统,也支持OAuth、LDAP、SAML等外部认证机制。

组织管理

组织是 Grafana 中用来隔离资源和数据的逻辑实体。一个 Grafana 实例可以有多个组织,每个组织可以有自己的仪表盘、数据源和用户。在 Grafana 中,管理员可以进行以下组织管理操作:

  • 创建组织:管理员可以创建新的组织。
  • 删除组织:管理员可以删除不再需要的组织。
  • 管理组织成员:管理员可以为组织添加或删除用户,并设置他们的权限角色。
  • 组织设置:管理员可以为每个组织定义特定的设置,包括数据源和插件配置。

权限管理

在 Grafana 中,权限通常与角色相关:

  • Viewer:可以查看仪表盘和数据,但不能编辑。
  • Editor:可以创建和编辑仪表盘,但不能管理组织的用户和数据源。
  • Admin:可以管理组织的用户、数据源、仪表盘和其他设置。

用户和组织管理的实操

在实际操作中,管理用户和组织大多通过 Grafana 的用户界面完成。管理员可以通过 Grafana 的左侧菜单栏访问配置区域,进行用户和组织的管理。例如,要添加新用户,管理员可以点击“Configuration”(配置),然后是“Users”(用户),在打开的页面中点击“New user”(新用户)按钮,并填写必要的信息。

为了自动化用户和组织管理,Grafana 还提供了完整的HTTP API来管理用户、组织和权限。这使得在更大的系统或当需要集成到其他用户管理系统时,能够编程化地控制这些功能。

请注意,正确的用户和组织管理对于维护 Grafana 实例的安全性至关重要。建议定期审查用户权限,并且仅根据需要分配权限,遵循最小权限原则。

14、Grafana 提供了哪些可视化选项

Grafana 提供了广泛的可视化选项,可以帮助用户将数据转换成直观的图表和面板,以下是一些常用的Grafana可视化插件和图表类型:

  1. Graph:传统的时间序列折线图,支持绘制多个指标,可以自定义轴标签、颜色、线型等。

  2. Stat:展示单个统计值(如平均值、当前值、最大值等)的面板,可以用于显示关键指标(KPI)。

  3. Gauge:仪表盘类型的可视化,用于显示当前值,并通过颜色编码显示进度或状态。

  4. Bar Gauge:用条形图的方式展示当前状态或进度,可以横向或纵向显示,并支持分段颜色表示不同状态。

  5. Table:以表格形式显示数据,支持列的排序、筛选和转换,也可以对特定值进行颜色高亮。

  6. Singlestat:在 Grafana 更新后已被 Stat 面板取代,用于展示单个数据点,如某个时间点的计数或平均值。

  7. Pie Chart:饼图,显示数据的比例分布,每个扇区表示数据系列中的一个元素。

  8. Heatmap:热图,用色彩的深浅表示数据的集中程度,常用于展示高频率发生的事件。

  9. Histogram:直方图,展示数据分布情况,用连续的区间(桶)显示频率或数量。

  10. Text Panel:文本面板,可以添加说明性文本或使用HTML、Markdown等格式展示数据。

  11. Worldmap Panel:世界地图面板,可将数据点映射到地理位置上,常用于展示全球分布情况。

  12. Time Region:时间区域,可以在图表上高亮显示特定时间区间,用于标记事件发生的时间。

  13. Alert List:告警列表,显示当前的告警状态和信息,便于快速识别系统中的问题。

  14. Dashboard List:仪表盘列表,可以展示并链接到其他仪表盘。

  15. Graph (old):Grafana 7.0 之前的旧版图形面板,现在通常使用新版 Graph(Time Series)。

此外,Grafana 社区和第三方开发者还提供了许多其他插件,扩展了 Grafana 的可视化选项,如流量图、日历视图、雷达图等。用户可以根据自己的需求从 Grafana 插件库中搜索和安装这些插件。使用这些可视化工具,用户可以更好地理解数据,从而做出更加明智的决策。

15、如果 Grafana 仪表盘加载缓慢或不显示数据,你会如何排查问题

如果在使用 Grafana 时遇到仪表盘加载缓慢或不显示数据的问题,可以通过以下步骤排查和解决:

  1. 检查数据源连接

    • 确保数据源正确配置,且服务器能够访问指定的数据源。
    • 在 Grafana 中测试数据源连接,查看是否有任何错误信息。
  2. 检查网络延迟和连接问题

    • 确认网络连接正常,没有任何延迟或中断。
    • 如果使用的是远程数据源,检查网络延迟是否影响数据加载。
  3. 检查查询效率

    • 如果查询设计不当,可能会导致加载缓慢。检查仪表盘上的查询,看是否可以优化。
    • 限制返回的数据量,比如通过减少时间范围或使用聚合函数。
  4. 查看 Grafana 日志

    • Grafana 的服务器日志可能包含错误信息或警告,这能帮助诊断问题。
    • 检查 Grafana 日志文件,默认位置通常在 /var/log/grafana/grafana.log
  5. 监控服务器负载

    • 如果 Grafana 服务器的负载很高,可能会导致性能下降。使用系统监控工具确认服务器资源使用情况,如 CPU、内存和磁盘 I/O。
  6. 检查浏览器控制台

    • 在浏览器中打开开发者工具,查看控制台是否有任何错误信息。
    • 检查网络标签,监控网络请求是否成功,以及响应时间。
  7. 检查 Grafana 版本

    • 确认是否使用了最新的 Grafana 版本。老版本可能包含已知的性能问题或bug。
  8. 检查插件和自定义面板

    • 如果使用了第三方插件,确保它们是最新的且与当前 Grafana 版本兼容。
    • 某些插件可能有性能问题,考虑临时禁用某些插件来测试是否它们导致了问题。
  9. 减少仪表盘的复杂性

    • 减少仪表盘上的面板数量,特别是数据查询复杂的面板。
    • 简化或删除不必要的视觉效果和高级配置。
  10. 优化数据库和后端服务

    • 如果后端数据库是瓶颈,考虑优化数据库查询或增加数据库服务器资源。
    • 确保后端服务(如Prometheus, InfluxDB等)响应迅速且配置得当。

通过上述步骤,你通常可以定位到问题的根源,并采取相应的措施解决 Grafana 仪表盘加载缓慢或不显示数据的问题。如果以上步骤都不能解决问题,你可能需要向 Grafana 社区寻求帮助或者与专业的 IT 支持人员联系。

16、Grafana 支持哪些插件

Grafana 支持多种插件,这些插件可以扩展其核心功能,提供额外的数据源、可视化和应用程序。以下是几类主要的Grafana插件类型:

数据源插件

数据源插件允许Grafana连接到各种不同的数据库、时间序列数据平台或API服务。一些常见的数据源插件包括:

  • Prometheus: 用于监控和警报的开源系统。
  • InfluxDB: 开源时间序列数据库。
  • Elasticsearch: 基于Lucene构建的搜索和分析引擎。
  • Graphite: 开源监控工具,存储时间序列数据。
  • MySQL/PostgreSQL/SQL Server: 这些传统的SQL数据库。
  • Loki: 用于存储和查询日志数据的系统。
  • Zabbix: 监控解决方案的插件。
  • AWS CloudWatch: 集成Amazon Web Services的监控服务。
  • Google Cloud Monitoring (formerly Stackdriver): 集成Google Cloud的监控工具。

可视化插件

可视化插件为Grafana添加新的方式来展示数据。除了内置的图表类型,还有许多额外的可视化选项:

  • Pie Chart: 显示数据的比例分布。
  • Worldmap Panel: 将数据指标映射到世界地图上。
  • Grafana-Polystat-Panel: 允许创建多边形以展示指标。
  • Flowcharting: 显示流程图和工作流。
  • Gauge Panel: 增强的仪表盘类型显示。
  • Histogram: 展示数据分布情况的直方图。
  • Radar Chart: 一种显示多变量数据的图表。
  • Gantt Chart: 用于显示项目排程的图表。

应用插件

应用插件是一组组合了数据源和可视化插件的功能集合,它们可能还包括新的页面和后端服务,使得Grafana变成一个具有特定功能的平台。例如:

  • Zabbix App: 允许用户将Zabbix的监控能力集成到Grafana中。
  • Kubernetes App: 用于监控Kubernetes集群的状态。
  • Grafana Tempo: 集成了Grafana Tempo的微服务应用程序。

面板插件

面板插件可以直接在Grafana仪表盘中添加新的面板类型。例如:

  • Alert List: 显示当前仪表盘的告警列表。
  • Clock: 显示时钟和计时器。
  • Calendar: 显示日历或时间线。

Grafana社区和第三方开发者不断地开发新插件,它们可以通过Grafana插件仓库进行安装和管理。为了保证安全和兼容性,建议使用经过官方认证的插件,也要确保随时更新插件至最新版本。

17、Grafana 使用时的注意事项

在使用 Grafana 进行数据可视化和仪表盘创建时,遵循一些最佳实践和注意事项可以帮助您更有效地使用这一工具。以下是一些重要的考虑因素:

  1. 安全性

    • 保护访问:确保您的Grafana实例不对公共互联网开放,除非有适当的安全性措施,如使用SSL/TLS、启用访问控制和使用VPN。
    • 用户账户管理:为不同的用户和团队分配适当的权限级别,并使用强密码及定期更新策略。
    • 软件更新:定期更新Grafana及其插件以确保安全漏洞被及时修复。
  2. 数据源配置

    • 保护敏感信息:在配置数据源时,注意保护敏感凭证,如API密钥和数据库密码。
    • 数据源性能:确保后端数据源能够承受来自Grafana的查询负载。
  3. 仪表盘设计

    • 可读性:确保仪表盘清晰易读,不要过度拥挤。
    • 重要指标:将关键指标放在仪表盘的显眼位置。
    • 重用和模板:使用模板变量让仪表盘更灵活且可重用。
  4. 性能优化

    • 减少查询负载:优化Grafana查询,避免执行重复或不必要的数据拉取操作。
    • 调整刷新率:适当设置仪表盘的数据刷新率,以平衡实时需求和系统负载。
    • 限制历史数据:适当限制数据的时间范围和粒度以提高性能。
  5. 监控与告警

    • 配置告警:为重要指标配置告警,以便在出现问题时及时收到通知。
    • 告警通道:选择合适的告警通道(如邮件、Slack、Webhook等),确保告警能被正确发送和接收。
  6. 文档和维护

    • 文档化:确保所有的仪表盘和数据源配置都有适当的文档说明。
    • 备份:定期备份Grafana的配置和数据库,以防数据丢失。
  7. 插件管理

    • 只使用必要的插件,并定期检查和更新这些插件来获取功能改进和安全更新。
    • 使用官方或信誉良好的插件源,以减少安全风险。
  8. 移动设备和跨平台兼容性

    • 测试仪表盘在不同设备和浏览器上的显示效果,确保在移动设备上也有良好的用户体验。
  9. 用户反馈

    • 收集用户反馈,并根据使用者的需要调整仪表盘设计。
  10. 培训与支持

    • 对团队成员提供Grafana的培训,确保他们能够充分利用Grafana的功能。
    • 确保团队成员知道如何获取技术支持。

通过遵循这些注意事项和最佳实践,您可以确保您的Grafana实例既安全又高效,且能够提供清晰、有意义的数据可视化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/600484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据库系统概论】数据库并发控制机制——并发操作带来的数据不一致性问题有哪些

系统文章目录 数据库的四个基本概念&#xff1a;数据、数据库、数据库管理系统和数据库系统 数据库系统的三级模式和二级映射 数据库系统外部的体系结构 数据模型 关系数据库中的关系操作 SQL是什么&#xff1f;它有什么特点&#xff1f; 数据定义之基本表的定义/创建、修改和…

算法基础之合并果子

合并果子 核心思想&#xff1a; 贪心 Huffman树(算法): 每次将两个最小的堆合并 然后不断向上合并 #include<iostream>#include<algorithm>#include<queue> //用小根堆实现找最小堆using namespace std;int main(){int n;cin>>n;priority_queue&l…

项目-苍穹外卖基础(持续更新中~)

day1: login的后端实现&#xff1a; day 2:

【java】期末复习知识点

简单不先于复杂&#xff0c;而是在复杂之后。 文章目录 填空题封装包主类开发过程的改变interfaceabstract class访问控制关键字继承多态object 类Java I/O(输入/输出)异常线程和进程创建线程的两种基本方法 编程题Hello World编写Swing程序&#xff0c;显示一个空白窗口 填空题…

【大数据进阶第三阶段之Hive学习笔记】Hive的数据类型与数据操作

【大数据进阶第三阶段之Hive学习笔记】Hive安装-CSDN博客 【大数据进阶第三阶段之Hive学习笔记】Hive常用命令和属性配置-CSDN博客 【大数据进阶第三阶段之Hive学习笔记】Hive基础入门-CSDN博客 【大数据进阶第三阶段之Hive学习笔记】Hive查询、函数、性能优化-CSDN博客 …

奇偶数合并

今天分享一道很有意思的算法题目 1、题目描述 奇偶数合并 将所有相邻且相同的偶数相加放入相邻偶数中间 将所有相邻且相同奇数相加&#xff0c;替换掉这两个相邻且相同的奇数 最后输出合并后的数组结果。 举例 数组[1,2,2,7,8,3,3,6] 数组奇偶数合并之后[1,2,4,2,7,8,6,1…

互联网大厂面试题目

阿里篇 1.1.1 如何实现一个高效的单向链表逆序输出&#xff1f; 1.1.2 已知sqrt(2)约等于1.414&#xff0c;要求不用数学库&#xff0c;求sqrt(2)精确到小数点后10位 1.1.3 给定一个二叉搜索树(BST)&#xff0c;找到树中第 K 小的节点 1.1.4 LRU缓存机制 1.1.5 关于epoll和…

依次判断数组a中的每个字符串长度 是否小于等于数组b中对应字符串长度 numpy.char.less_equal(a,b)

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 依次判断数组a中的每个字符串长度 是否小于等于数组b中对应字符串长度 numpy.char.less_equal(a,b) [太阳]选择题 请问以下代码最终输出结果是&#xff1f; import numpy as np a np.array…

初探ElasticSearch

1.什么是ElasticSearch&#xff1f; ElasticSearch简称ES&#xff0c;也成为弹性搜索&#xff0c;是基于Apache Lucene构建的开源搜索引擎。其实Lucene本身就是一款性能很好的开源搜索引擎工具包&#xff0c;但是Lucene的API相对复杂&#xff0c;而且掌握它需要很深厚的“内功…

通过使用别名让 SQL 更简短-数据库教程shulanxt.com-帆软软件有限公司

MySQL视频教程导航 https://www.shulanxt.com/database/mysqlvideo/p1 SQL 别名 SQL 别名 通过使用 SQL&#xff0c;可以为表名称或列名称指定别名。 基本上&#xff0c;创建别名是为了让列名称的可读性更强。 列的 SQL 别名语法 SELECT column_name AS alias_name FROM …

Linux操作实例 – 输入输出重定向

Linux操作实例 – 输入输出重定向 Input & Output Redirection Examples in Linux By Jackson 1. 前言 在操作计算机的时候&#xff0c;我们能够很容易通过键盘、鼠标给计算机输入信息&#xff08;例如&#xff1a;写公文、邮件&#xff0c;同时通过显示器得到输出。这就…

DevOps(4)

目录 16.Ctrl Alt Del组合键是否适用于Linux&#xff1f; 17.如何引用连接打印机等设备的并行端口&#xff1f; 18.硬盘驱动器和软盘驱动器等驱动器是否用驱动器号表示&#xff1f; 19.如何在Linux下更改权限&#xff1f; 20.在Linux中&#xff0c;为不同的串口分配了哪些…

在 CentOS 7.8 上安装 Node.js

1.安装 NVM&#xff08;Node Version Manager&#xff09;&#xff1a; curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash这将从 NVM 的 GitHub 仓库下载安装脚本并执行。请注意&#xff0c;您需要重新启动终端或者执行 source ~/.bashrc 以…

用 CSS 实现一个三角形、用 CSS 实现一个自适应的正方形、CSS写一个简单的幻灯片页面效果

用 CSS 实现一个三角形 效果&#xff1a; 参考代码&#xff1a; <!DOCTYPE html> <html> <head><style>.triangle {width: 0;height: 0;border: 100px solid red;border-top-color: transparent;border-left-color: transparent;border-right-colo…

K8S学习指南(63)-K8S源代码走读之Kube-Proxy

文章目录 前言Kube-Proxy 的代码结构Kube-Proxy 的核心逻辑1. 负载均衡1.1 负载均衡算法1.2 负载均衡策略 2. iptables 规则配置2.1 iptables 规则生成2.2 iptables 规则生效 3. IPVS 规则配置3.1 IPVS 规则生成3.2 IPVS 规则生效 4. 服务代理4.1 服务代理注册4.2 服务代理处理…

2024年MySQL学习指南(四),探索MySQL数据库,掌握未来数据管理趋势

文章目录 前言9. 约束的概念10. 约束的分类11. 非空约束12. 唯一约束13. 主键约束14. 默认约束15. 外键约束16. 约束的案例练习 前言 接上篇&#xff1a; 2024年MySQL学习指南&#xff08;一&#xff09; 2024年MySQL学习指南&#xff08;二&#xff09; 2024年MySQL学习指…

220.【2023年华为OD机试真题(C卷)】考勤信息(滑动窗口算法-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-考勤信息二.解题思路三.题解代码Python题解代码…

数据采集有哪些方法?HTTP代理起到什么作用?

在这个数字化的时代&#xff0c;数据就如同生活中不可或缺的元素&#xff0c;我们的行为、喜好、甚至是想法都被转化成了数字化的信息。那么&#xff0c;现代社会是如何进行数据的采集的呢&#xff1f;让我们一同来看看&#xff01; 1. 网络浏览行为的追踪 在我们浏览互联网的…

kafka重平衡经验总结

文章目录 概要背景解决方法技术细节小结 概要 关于kafka重平衡问题在实践工作的应用 背景 重平衡包括以下几种场景: 消费者组内成员发生变更&#xff0c;这个变更包括了增加和减少消费者。注意这里的减少有很大的可能是被动的&#xff0c;就是某个消费者崩溃退出了主题的分…

几种常见的CSS三栏布局?介绍下粘性布局(sticky)?自适应布局?左边宽度固定,右边自适应?两种以上方式实现已知或者未知宽度的垂直水平居中?

几种常见的CSS三栏布局 流体布局 效果&#xff1a; 参考代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…