2

我想在 grafana 仪表板中对数据库服务器进行分组,例如,属于同一集群的服务器 db-pxc,最终看起来像这样:

DB-PXC
    -Disk_Performance
        -db-pxc-1
        -db-pxc-2
        -db-pxc-3
        ...
    -Disk_Space    
        -db-pxc-1
        -db-pxc-2
        -db-pxc-3
        ...
    -MySQL_Overview
        -db-pxc-1
        -db-pxc-2
        -db-pxc-3
        ...
    -MySQL_Table_statistics
        -db-pxc-1
        -db-pxc-2
        -db-pxc-3
        ...
     ...

因此,如果我单击父仪表板 Disk_Space,它将显示 db-pxc 集群中每个主机的磁盘空间子仪表板(db-pxc-1、db-pxc-2、db-pxc-3、...)。这样我就可以在一个页面上比较一个集群中所有服务器的磁盘空间使用情况。我们已经在 cacti 中进行了此设置,但不确定如何使用 grafana 实现相同的设置。

我们使用 Promethues 监控系统、node_exporter 和 mysqld_exporter 来收集每个单独服务器的统计信息,并使用 grafana 来查看仪表板。为了在 grafana 中查看 prometheus 支持的 mysqld 和节点导出器的数据,我们使用 Percona Grafana 插件。

下面是我要求的一个例子。在下图中,db 集群名称为 kdb,db-kdb-1、db-kdb-2、db-kdb-3 和 db-kdb-4 是构成集群的节点的一部分。所以如下所示,当我点击 CPU 时,它会显示我的 kdb 集群节点的所有 CPU 使用情况。

在此处输入图像描述

4

2 回答 2

3

对于说根文件系统使用百分比,您将有一个带有如下表达式的图表:

100 - node_filesystem_free{job='node',mountpoint='/'} / node_filesystem_size{job='node',mountpoint='/'} * 100

这将显示所有匹配机器的结果。

于 2016-09-09T11:19:48.550 回答
2

您需要使用给定集群的所有实例 IP 创建一个 Prometheus 目标,并在 Grafana 中使用其作业名称。

使用集群实例的 IP 创建以下目标文件:

- targets:
  - 10.149.121.21:9100
  - 10.149.121.22:9100
  - 10.149.121.23:9100
  - 10.149.121.24:9100
  labels:
    job: kdbcluster

然后,在 Grafana 上,您使用以下相应查询创建 4 个新图表:

100 - (avg by (instance) (irate(node_cpu{instance="10.149.121.21:9100",mode="idle", job="kdbcluster"}[5m])) * 100)
100 - (avg by (instance) (irate(node_cpu{instance="10.149.121.22:9100",mode="idle", job="kdbcluster"}[5m])) * 100)
100 - (avg by (instance) (irate(node_cpu{instance="10.149.121.23:9100",mode="idle", job="kdbcluster"}[5m])) * 100)
100 - (avg by (instance) (irate(node_cpu{instance="10.149.121.24:9100",mode="idle", job="kdbcluster"}[5m])) * 100)

如果您想让所有图表都在同一个图表上,您可以使用该查询:

100 - (avg by (instance) (irate(node_cpu{mode="idle", job="kdbcluster"}[5m])) * 100)

如果要在上图中添加一条线,它是所有实例 CPU 负载的平均值,可以使用以下查询:

100 - (avg (irate(node_cpu{mode="idle", job="kdbcluster"}[5m])) * 100)
于 2016-11-11T00:16:36.307 回答