在grafana / prometheus中对服务器进行分组

时间:2016-09-09 10:18:20

标签: percona grafana cacti prometheus

我想在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,... )。这样我就可以比较单个页面上一个集群中所有服务器的磁盘空间使用情况。我们已经在仙人掌中进行了此设置,但不确定如何使用grafana实现相同目的。

我们正在使用Promethues监控系统,node_exporter& mysqld_exporter用于收集每台服务器的统计信息,grafana用于查看仪表板。要查看grafana中prometheus支持的mysqld和节点导出器的数据,我们使用的是Percona Grafana插件。

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

enter image description here

2 个答案:

答案 0 :(得分:3)

对于百分比根文件系统的使用情况,你有一个图表,其表达式如下:

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

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

答案 1 :(得分:2)

您需要创建一个包含所有实例的Prometheus目标'您给定群集的IP并在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)