Группировка серверов в 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)


arrow_upward
3
arrow_downward

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

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

arrow_upward
2
arrow_downward

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