Группировка серверов в Grafana / 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, ...). Таким образом, я могу сравнить использование дискового пространства всеми моими серверами в одном кластере на одной странице. У нас уже есть такая настройка в кактусах, но мы не уверены, как добиться того же с графаной.

Мы используем систему мониторинга Promethues, node_exporter и mysqld_exporter для сбора статистики по каждому отдельному серверу и grafana для просмотра панели инструментов. Для просмотра данных экспортеров mysqld и node, поддерживаемых prometheus в grafana, мы используем плагин Percona Grafana.

Ниже приведен пример того, о чем я прошу. На рисунке ниже имя кластера db - kdb, db-kdb-1, db-kdb-2, db-kdb-3 и db-kdb-4, которые являются частью узлов, образующих кластер. Итак, как показано ниже, когда я нажимаю на CPU, он показывает все использование CPU моими узлами кластера kdb.

введите здесь описание изображения


person The Georgia    schedule 09.09.2016    source источник


Ответы (2)


Например, для процентного использования корневой файловой системы у вас будет один график с таким выражением, как:

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

который покажет результат для всех подходящих машин.

person brian-brazil    schedule 09.09.2016
comment
Я новичок в графане и просто пробую ее. Кажется, я должен возиться с кодом графаны, верно? Где именно я могу добавить указанные выше выражения? - person The Georgia; 10.09.2016
comment
Это тот запрос, который нужно использовать. - person brian-brazil; 10.09.2016
comment
Я не об этом прошу. Мне нужен способ группировки хостов в графане. - person The Georgia; 23.09.2016

Вам необходимо создать цель 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)

Если вы хотите добавить к предыдущему графику строку, которая представляет собой среднее значение загрузки ЦП всех экземпляров, вы можете использовать этот запрос:

100 - (avg (irate(node_cpu{mode="idle", job="kdbcluster"}[5m])) * 100)
person Djidiouf    schedule 11.11.2016