【Grafana】从基础到应用,这里全面涵盖!

首先

image.png

仪表板是基础设施和应用程序监视的重要组成部分,Grafana 是最受欢迎的度量仪表板和可视化工具之一。本文详细介绍了 Grafana 仪表板。我们将学习如何创建一个重要的虚拟机指标的 Grafana 仪表板,使用多个实例指标过滤器创建高级仪表板的方法,以及导入和导出仪表板、更新仪表板间隔和介绍插件的方法。

首先,为了实现可视化,需要将指标添加到Grafana中作为指标数据源。本例中使用Prometheus作为数据源,使用Node Exporter将指标从虚拟机导出到Grafana。如果您想使用自定义设置,建议您注册MetricFire的免费试用版。您可以直接在平台上设置自己的Grafana仪表板,并应用本文中所学的内容。

1. Grafana的安装设置

首先,我们将安装Prometheus和Node-Exporter到基于Debian的系统中。

请使用命令“sudo apt-get install prometheus prometheus-node-exporter”来安装Prometheus和Prometheus Node Exporter。

通过这样做,我们可以同时安装并以systemd服务的形式运行Prometheus和Node-Exporter。默认情况下,Prometheus被配置为从Node-Exporter获取指标。关于安装Grafana,请参考之前的帖子。现在一切准备就绪,我们可以将Prometheus作为数据源添加,并创建仪表板。

2. 添加数据源

Grafana可以支持多种后端存储,并提供多种数据查询和可视化的方法。这些数据源都分别公开了自己的查询语言。例如,Prometheus公开了用于时序数据的PromQL,而MySQL数据源公开了SQL查询语言。接下来,我们将Prometheus添加为Grafana的数据源。

转到“设置→数据源”,点击“添加数据源”。

image.png

添加Prometheus,输入URL、认证、爬取间隔和数据源名称。保存并点击“测试”。如果Grafana成功连接到Prometheus,则说明数据源运行正常。

image.png

需要注意的重要事项是“访问模式下拉菜单”。其中包括两个选项:服务器选项和浏览器选项。服务器选项意味着所有对数据源的请求都会被发送到Grafana后端服务器,并由后端将请求发送到数据源。另一方面,浏览器选项意味着请求会直接发送到数据源。服务器选项推荐用于安全访问,以避免向所有用户公开凭据。现在我们已经配置好数据源,让我们来可视化虚拟机的指标。

创建仪表板

仪表板是小部件的组合,但它还提供了许多其他功能,如文件夹、变量(用于改变小部件的整体可视化)、时间范围、小部件的自动更新等。请移动到主页左侧的加号图标,创建名为“Node Metrics”的仪表板。

3.1 添加行

行是可以用于将面板分组的仪表板内的逻辑分隔符。您可以使用变量动态创建行。有关变量的信息将在下一节中介绍。

image.png

点击图标(右上角的第一个图标),然后点击[转换为行]。

image.png

在添加新行之后,点击行设置图标,会弹出编辑弹窗。创建一个名为“概览”的行,添加基本度量,如内存、CPU、网络使用量等。

添加新的面板,并将它们添加到摘要行中。

添加变量

变量是创建动态仪表板的方法,可以用于选择不同实例的指标。例如,如果从多台机器接收指标数据,则可以使用变量创建下拉菜单,并选择一台机器的指标。这些变量在数据源查询中用于支持仪表板指标的更改,并且添加VM名称变量使得可以选择不同VM的指标。

在变量中,有许多不同类型的选项。

    1. 数据源类型:可以使用面板动态更改数据源。

 

    1. 查询类型:可以获取实例名称和服务器主机等值。

 

    间隔类型:可以使用变量在查询中动态执行汇总,例如 CPU 和内存使用量,以便在没有额外面板的情况下显示最近的1分钟、5分钟、10分钟。

请进入右上方的仪表板设置,点击变量→新增变量进行添加。

image.png

选择查询类型并添加查询以获取所有节点导出主机名。使用此查询,您将能够查看各种虚拟机统计信息。

3.3 添加可视化

面板是Grafana的基本可视化构建块。考虑插件,有很多可视化选项,如图形、单一统计、仪表板列表、表格和文本等。然而,在创建这些可视化之前,让我们先介绍一下监控对象和用于可视化的面板。

选择监视的指标必须回答两个问题:什么出了问题,以及为什么会出问题。如果需要监视虚拟机,则需要监视基本指标,如CPU、内存、网络、磁盘I/O、磁盘容量、运行时间、正在运行的进程数等;而如果监视Web应用程序,则需要监视入站请求数量、响应时间、响应代码、用于处理单个请求的资源、被排队和拒绝的请求等。

接下来,我们将添加可视化功能。我们来介绍一下用于监控CPU、内存、文件系统和网络等指标的面板。

a. CPU:查看当前的CPU使用率和非工作时间的CPU使用率。为了查看当前的CPU使用率,使用仪表盘类型的可视化。仪表盘就像一个速度计,会在特定范围内上下变动。添加一个新面板,然后点击面板上的[添加查询]。

image.png

在左侧窗格中,会显示查询、可视化和通用三种控件。选择移动到可视化,并选择计量表。在显示的下方的“显示”中选择计算。在[计算]中,选择”最后”值以确认最新状态。在[字段]中,选择”百分比”作为单位(还可以使用许多其他字段,如KBps、英里等)。在[阈值]中,选择要显示在红色上方的值。在上述情况下,如果CPU使用率超过80%,则以红色显示。

image.png

为了将数据可视化,我们使用实例变量instance =〜“$ instance”,并每隔5分钟使用node_CPU(CPU平均使用率)的irate()。有关rate()和irate()的更多信息,请参阅相关文章。当使用下拉菜单更改实例时,面板指标将自动更改。

您可以通过使用General选项卡来更改面板的标题、描述和链接等信息。接下来,我们要添加一个标题作为CPU使用率 [5分钟]。

添加CPU使用率的时间序列图表。创建新的面板,添加查询,并在可视化选项卡中选择图表作为可视化类型。条形图、点图、堆叠图、线宽、轴单位、样本大小等,在图表类型中有很多选项。

image.png

Grafana会自动计算每个图表的时间间隔。通过使用变量interval、from、to,例如,如果显示过去6个月的数据,则图表会以1天间隔的分段显示;而如果显示过去1小时的数据,则会以1分钟间隔的组显示。

既然能够将CPU指标可视化,我们可以继续添加更多的指标。

b. 内存:增加总内存和当前内存使用量的可视化。这次我们添加了多个查询来可视化可用内存和总内存。

image.png

c. 文件系统:添加可用磁盘容量和总磁盘容量的图表。在这个图表中,我们选择了文件系统的空闲度指标和大小指标。我们将挂载点选择为/,并将完整的文件系统指标可视化。

image.png

d. 网络:该例子通过不同的网络接口发送和接收的数据大小进行可视化。在这里,我们将Y轴的单位设定为兆字节,但您可以在[可视化]选项卡中更改为千兆字节或太字节(大量的流量)。

image.png

然后,将所有添加的视觉效果拖放到“添加行”中。

image.png

3.4. 时间间隔和自动更新

Grafana提供了时间间隔的选项,可以在特定的时间点或时间段内检查指标。右上方有一个下拉菜单,可以设置数据的时间间隔。常见的选项有过去5分钟、过去1小时、过去12小时等,还可以自定义任意日期或时间的时间间隔。

可以使用自动更新功能,在每5秒、每1分钟或者其他特定的时间间隔来更新数据。

3.5. 警报

指标的可视化确实很方便,但我不可能整天盯着仪表板。警报可以通知重要指标,如高内存使用量等。

为了在CPU使用率过高时发出警告,让我们在刚刚创建的仪表板上设置Slack提醒。在首页点击[Alert],跳转到通知频道,添加一个新的Slack通知频道。需要提供认证信息、Slack频道名称和用户名。

image.png

设置警报目标后,将其移动到面板上的警报图标上以设置警报。设置以下条件:当5分钟时间范围内的CPU使用率平均值超过90时,发出警报,并选择这些警报的发送目标。在这里,我们将使用先前添加的MetricFire Slack。此警报将每分钟评估一次,并在没有可用数据的情况下将状态设置为警报。换句话说,当没有可用数据时会触发警报。

image.png

现在,仪表板和提醒功能已经设置完成。

4. 仪表盘的导入和导出

所有的Grafana仪表板都是基于JSON的。这些仪表板可以从JSON文件或Grafana的仪表板仓库中导出。

让我们尝试导出创建的仪表板。转到仪表板设置→JSON模型,然后将显示出JSON文件。这个JSON文件是完整的仪表板定义,可以导入到任何其他Grafana实例中。请将其保存为node-exporter.json。

image.png

下一步,让我们来看一下如何导入仪表盘。移动到左上角的+图标,然后点击[导入]。您可以将上面创建的JSON粘贴到此处进行导入,或者从Grafana仪表盘存储库中粘贴仪表盘的ID以进行导入。

image.png

要复制仪表板,请转到设置并以另一个名称保存,这样就会复制仪表板。

5. 插件

插件可以提供超越Grafana惊人功能的扩展方式,可以获取新的数据源、面板、仪表盘类型等。

5.1. 安装插件

您可以使用Grafana CLI来安装插件。请前往grafana插件仓库,搜索所需插件,并转到安装选项卡以确认插件ID(URL路径中也有)。安装插件,请按照以下步骤进行操作。

‍grafana-cli plugins install <plugin-id>

重新启动Grafana服务器。

Sudo service grafana-server restart.

您可以使用以下命令列出已安装的插件,并确认其是否成功安装。

grafana-cli plugins ls

如果在Grafana插件存储库中无法找到插件,则可以通过自定义URL或本地路径进行安装。

使用Grafana的命令行工具grafana-cli,在plugins命令后面加上–pluginUrl选项,后接插件的下载地址https://plugins.example.com/grafana/plugins/-.zip,然后执行plugins install命令,进行插件的安装。

5.2. 一些重要的插件和仪表盘

    • WorldPing:インターネットアプリの可用性を監視します。

 

    • Azure Monitor:Azureモニターインサイトのデータソース。

 

    • PagerDuty:Pagerdutyデータソース

 

    • Plotly:Plotlyはデータ視覚化フレームワークであり、Plotlyプラグインは強力な視覚化パネルのセットを提供します。

 

    Kubernetes:このアプリは、事前に作成されたダッシュボードに、Prometheusがkubernetesクラスターで収集したすべてのメトリックを表示します。

6. 从这里开始

由于社区已经提供了许多常见的数据源和指标,您可以节省创建自己的仪表板的时间。请尝试探索类似于Plotly的插件,以最大程度地发挥Grafana的功能。

托管的Grafana服务已经设置了仪表板,并且所有的新插件都已经配备了可用的仪表板。有关详细信息,请查看Grafana作为服务的页面。建议您获取MetricFire的免费试用,立即开始创建Grafana仪表板。此外,您也可以预订演示,并直接咨询有关Grafana的能力。

那么,我们下一篇文章再见吧。

广告
将在 10 秒后关闭
bannerAds