Статьи

Мониторинг кластера Apache Ignite с помощью Grafana (часть 1)

Apache Ignite построен на JVM, а не на системе «установил и забыл». Поэтому, как и в других распределенных системах, для своевременной работы требуется мониторинг. Однако Apache Ignite предоставляет веб-приложение под названием Ignite Web Console для управления и мониторинга кластера, но этого недостаточно для мониторинга системы. Вы также можете использовать JConsole / VisualVM для мониторинга отдельного узла Ignite и небольшого количества узлов Ignite. Мониторинг кластера Ignite на 5 узлах с помощью VisualVM или JConsole нереалистичен и занимает много времени. Кроме того, JMX не предоставляет никаких исторических данных. Таким образом, это не рекомендуется для производственных сред. В настоящее время существует множество инструментов / программного обеспечения для мониторинга системы. Самые известные из них:

В этой статье мы рассмотрим Grafana для мониторинга кластеров Ignite и предоставим пошаговые инструкции по установке и настройке всей технологии стека.

Grafana — это графический инструмент с открытым исходным кодом, предназначенный для запроса, визуализации и оповещения всех ваших метрик. Он объединяет ваши метрики и позволяет создавать графики и информационные панели на основе данных из различных источников. Также вы можете использовать Grafana для отображения данных из разных систем мониторинга, таких как Zabbix. Это легкий, простой в установке, простой в настройке и выглядит красиво .

Прежде чем мы углубимся в детали, давайте обсудим концепцию мониторинга крупномасштабных производственных сред. На рисунке 1 показан общий обзор того, как выглядит система мониторинга в производственных средах.

На приведенном выше рисунке такие данные, как метрики ОС, файлы журналов и метрики приложений, собираются с разных хостов по разным протоколам, таким как JMX, SNMP, в единую базу данных временных рядов. Далее все собранные данные используются для отображения на приборной панели для мониторинга в реальном времени. Однако система мониторинга может быть сложной и варьироваться в разных средах.

Части этой статьи были взяты из книги The Apache Ignite book . Если это заинтересовало вас, ознакомьтесь с остальной частью книги для получения более полезной информации.

Давайте начнем с нижней части цепочки мониторинга и продолжим наш путь. Чтобы избежать полного урока по мониторингу, мы расскажем только об основах и о том, какие наиболее распространенные проверки следует выполнять, поскольку они относятся к Ignite и его работе. Данные, которые мы планируем использовать для мониторинга:

  • Зажечь узел Java Heap.
  • Ignite версия топологии кластера.
  • Количество серверных или клиентских узлов в кластере.
  • Общее время работы узла зажигания.

Технологии стека, которые мы используем для мониторинга кластера Ignite, включают три компонента: InfluxDB , Grafana и jmxtrans . Архитектура высокого уровня нашей системы мониторинга показана на рисунке ниже.

Узлы Ignite не отправляют метрики MBeans напрямую в InfluxDB. Мы используем jmxtrans , который собирает метрики JMX и отправляет их в InfluxDB. Jmxtrans легок и работает как демон для сбора метрик сервера. InfluxDB — это база данных временных рядов с открытым исходным кодом, разработанная InfluxData. Он написан на Go и оптимизирован для быстрого высокопроизводительного хранения и извлечения данных временных рядов в таких областях, как мониторинг операций и метрики приложений.

Далее мы устанавливаем и настраиваем InfluxDB, Grafana и jmxtrans для сбора метрик из кластера Ignite. Мы также создаем пользовательскую панель мониторинга в Grafana, которая отслеживает ресурсы кластера Ignite.

Предпосылки . Чтобы следовать инструкции по настройке инфраструктуры мониторинга, вам необходимо следующее:

имя

Версия

Операционные системы

MacOS, Windows, * nix

InfluxDB

1.7.1

графана

5.4.0

jmxtrans

271-СНАПШОТ

Шаг 1. Хранилище данных для всех метрик из кластера Ignite будет Influx. Давайте сначала установим InfluxDB. Я использую MacOS, поэтому я буду использовать Homebrew для установки InfluxDB. Пожалуйста, посетите веб-сайт InfluxDB и следуйте инструкциям по установке для других операционных систем, таких как Windows или Linux.

brew install influxdb

После завершения процесса установки запустите базу данных с помощью следующей команды:

influxd -config /usr/local/etc/influxdb.conf

InfluxDB работает на http: // localhost: 8086 и предоставляет REST API для управления объектами базы данных по умолчанию. Кроме того, InfluxDB предоставляет инструмент командной строки с именем приток для взаимодействия с базой данных. Выполните сценарий оболочки притока на другой консоли, которая запускает интерфейс командной строки и автоматически подключается к локальному экземпляру InfluxDB. Вывод должен выглядеть следующим образом:

influx
Connected to http://localhost:8086 version v1.7.1 InfluxDB shell version: v1.7.1
Enter an InfluxQL query

У новой установки InfluxDB нет базы данных, поэтому давайте создадим базу данных для хранения метрик Ignite. Введите следующую инструкцию Influx Query Language (aka InfluxQL) для создания базы данных.

create database ignitesdb

Теперь, когда база данных ignitesdb создана, мы можем использовать оператор SHOW DATABASES для отображения всех существующих баз данных.

show databases
name: databases name
----
_internal ignitesdb

Обратите внимание, что база данных _interna l создается и используется InfluxDB для хранения внутренних метрик времени выполнения. Чтобы вставить или запросить базу данных, используйте оператор USE <db-name>, который автоматически установит базу данных для всех будущих запросов. Например:

USE ignitesdb
Using database ignitesdb

Пока этого достаточно. В следующей части этой статьи мы установим и настроим Grafana, jmxtrans для мониторинга кластера Ignite. Будьте на связи!