Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных
Версия ПО 1.31

В данном разделе описан процесс настройки и запуска утилит для сбора данных по платформе Eltex SC и их отображения в графическом виде для осуществления мониторинга.

Работа с ELK

ELK  это аббревиатура, используемая для описания стека из трех продуктов: Elasticsearch, Logstash и Kibana. ELK является инструментом сбора и аналитики информации.

  • Elasticsearch (ES) — масштабируемая утилита полнотекстового поиска и аналитики, которая позволяет быстро в режиме реального времени хранить, искать и анализировать большие объемы данных. Как правило, ES используется в качестве NoSQL-базы данных для приложений со сложными функциями поиска.
  • Logstash — средство сбора, преобразования и сохранения в общем хранилище событий из файлов, баз данных, логов и других источников в реальном времени.
  • Kibana — визуальный инструмент для Elasticsearch, используемый для взаимодействия с данными, которые хранятся в индексах ES. Веб-интерфейс Kibana позволяет быстро создавать и обмениваться динамическими панелями мониторинга, включая таблицы, графики и диаграммы, которые отображают изменения в ES-запросах в реальном времени.

В рамках единой ELK-платформы все вышеперечисленные компоненты взаимодействуют следующим образом:

  • Logstash представляет собой конвейер обработки данных (data pipeline) на стороне сервера, который одновременно получает данные из нескольких источников. Здесь выполняется первичное преобразование, фильтрация, агрегация или парсинг логов, а затем обработанные данные отправляется в Elasticsearch.
  • Elasticsearch играет роль ядра всей системы, сочетая функции базы данных, поискового и аналитического движков.
  • Kibana позволяет визуализировать данные ES, а также администрировать базу данных.

Запуск ELK

Для правильной работы ELK необходимо в конфигурационном файле vars/default.yml для параметра elk: enable: выставить флаг true и выполнить ansible-playbook install для каждого компонента платформы.

# Параметры установки сервисов логирования (Elasticsearch + Logstash + Kibana).
elk:
  # Нужно ли добавлять в платформу appender, отправляющий логи в logstash.
  # В нем нет необходимости, если ELK не развернут или не настроен; это лишь спровоцирует сообщения об ошибках отправки
  # в логах платформы.
  enable: true 
  # Имя (IP-адрес) сервера, на котором будет развернут ELK.
  # По умолчанию совпадает с 'iot.serverName', что предполагает установку рядом с платформой (на том же хосте).
  # В таком случае хосты в инвентаре в группах [iot] и [monitoring] должны совпадать.
  serverName: "{{ iot.serverName }}"
  # Директория для установки системы логирования.
  installDir: /storage/elk


Запуск ELK на сервере с Eltex SC.

sudo ansible-playbook install_elk.yml

Откройте веб-браузер. В адресной строке введите IP-адрес сервера и порт, указанный в конфигурации Kibana.

Пример: [домен/ip]:5601

Откроется приветственная страница.


Для авторизации используются следующие учетные данные:

Логин: elastic

Пароль: MyPw123


Просмотр полученных данных в Kibana

Откройте меню в левом верхнем углу. В секции Management выберите Stack Management.

Далее в боковом меню выберите секцию Index patterns. Нажмите кнопку Create Index Pattern.

В поле Index pattern name опишите шаблон iot-core*, в который попадут все индексы, начинающиеся с «iot-core».

В поле timestamp выберите значение Timestamp field для фильтрации данных по дате и времени. Нажмите на кнопку Create index pattern.

После создания шаблона индексов в окне отобразится информация об имеющихся полях, типе данных и возможности делать агрегацию по этим полям.

Для просмотра данных, полученных на основе созданного шаблона, в секции Analytics бокового меню выберите Discover.

В правой части экрана можно выбрать временной интервал, данные за который необходимо отобразить.

В списке Available fields в левой части экрана можно выбрать шаблон индекса или поля для отображения.

Для визуализации данных перейдите в секцию Analytics бокового меню и выберите Dashboard.

Нажмите Create new dashboard. Далее нажмите на кнопку Create visualization.

Для построения визуализации перетащите необходимый параметр из списка Available fields в выделенную область.

Пример результата визуализации представлен на рисунке ниже:


Работа с Grafana

Grafana  — это платформа с открытым исходным кодом для визуализации, мониторинга и анализа данных. Grafana позволяет пользователям создавать дашборды с панелями, каждая из которых отображает определенные показатели в течение установленного периода времени. Каждый дашборд универсален, поэтому его можно настроить для конкретного проекта или с учетом любых потребностей разработки и/или бизнеса.

Запуск Grafana

Запуск Grafana на сервере с Eltex SC:

sudo ansible-playbook install_monitoring.yml

Откройте веб-браузер. В адресной строке введите IP-адрес сервера и порт, указанный в конфигурации grafana_port (по умолчанию порт 3000).

Пример: [домен/ip]:3000

В результате откроется приветственная страница.


Для авторизации используются следующие учетные данные:

Логин: admin

Пароль: admin

Задайте новый пароль и подтвердите его. Нажмите кнопку Submit.

Просмотр полученных данных в Grafana

Войдите в профиль Grafana, нажмите на меню в левом верхнем углу и перейдите в секцию Dashboards.

Для просмотра данных по состоянию сервера перейдите на дашборд JVM (Micrometer):

Для просмотра данных по пропускной способности платформы перейдите на дашборд Micrometer Spring Throughput:

В Grafana есть возможность задавать временные интервалы для отображаемых графиков. Для этого в правом верхнем углу нажмите на иконку с часами, после чего выберите временной интервал или задайте свой.

Распределенное развертывание сервисов мониторинга

Чтобы осуществить развертывание платформы на одном сервере, а сервисов мониторинга (Grafana и ELK) — на другом, необходимо соответствующим образом скорректировать /etc/ansible-iot-1.31/vars/default.yml.

В данной инструкции:

  • сервер_1 — сервер, на котором установлена платформа Eltex SC;
  • сервер_2 — сервер, на котором установлены сервисы мониторинга (ELK, Grafana).


Необходимо отредактировать /etc/ansible-iot-1.31/vars/default.yml на обоих серверах.


Редактирование /etc/ansible-iot-1.31/vars/default.yml для сервер_1:

  1. Установите корректный IP-адрес или доменное имя для сервер_1 в разделе iot в поле server_name;
  2. Установите в разделе monitoring поле server_name для Grafana (раздел elk для ELK), корректный IP-адрес или доменное имя для сервер_2.


Редактирование /etc/ansible-iot-1.31/vars/default.yml для сервер_2:

  1. Установите корректный IP-адрес или доменное имя для сервер_1 в разделе iot в поле server_name;;
  2. Установите в разделе monitoring поле server_name для Grafana (раздел elk для ELK), корректный IP-адрес или доменное имя, который ранее указывали для сервер_2.
  • Нет меток