Grafana что это за программа
Grafana+Zabbix: Визуализация работы производственной линии
В этой статья я хочу поделиться опытом использования open source систем Zabbix и Grafana для визуализации работы производственных линий. Информация может быть полезна тем, кто ищет быстрый способ визуального отображения или аналитики собранных данных в проектах промышленной автоматизации или IoT. Статья не является подробным руководством, это скорее концепция системы мониторинга, основанная на открытом программном обеспечении для производственного предприятия.
Инструментарий
Zabbix – его мы используем давно для мониторинга ИТ инфраструктуры завода. Система оказалось настолько удобной и универсальной, что мы стали заводить в нее данные с производственных линий, датчиков и контроллеров. Это нам позволило собрать все данные метрик в одном месте, сделать простые графики расхода ресурсов и производительности оборудования, но очень не хватало аналитики и красивых графиков.
Grafana – это мощнейший инструмент для аналитики и визуализации данных. Большое количество плагинов позволяют забирать данные из различных источников (zabbix, clickhouse, influxDB), обрабатывать их на лету (считать среднее значение, сумму, разницу и т.д.) и рисовать всевозможные графики (от простых линий, спидометров, таблиц до сложных схем).
Draw.io – сервис, позволяющий в онлайн редакторе нарисовать от простой блок схемы до плана помещений. Есть много готовых шаблонов и нарисованных объектов. Данные можно экспортировать во все основные графические форматы или xml.
Собираем все вместе
Статей как установить и настроить Grafana и Zabbix написано много, я расскажу про основные моменты конфигурации.
На Zabbix сервере создается «узел сети» (host), которому будут принадлежать «элементы данных» (item) с метриками от наших датчиков. Имена узлов и элементов данных желательно продумать заранее и сделать максимально структурированными, так как к ним мы будем обращаться из графаны через регулярные выражения. Такой подход удобен тем, что можно одним запросом получать данные с группы элементов.
Для настройки графаны потребуется установить дополнительные плагины:
Сама интеграция с заббиксом настраивается в графане, пункт меню Configuration\Data sources\Zabbix. Там нужно указать адрес api zabbix сервера, у меня это http://zabbix.local/zabbix/api_jsonrpc.php, и логин с паролем для доступа. Если все сделано правильно, при сохранении настроек будет сообщение с номером версии api: zabbix API version: 5.0.1
Создаем Dashboard
Вот тут начинается та самая магия графаны и ее плагинов.
Плагин natel-discrete-panel
У нас есть данные о статусах двигателей на линиях (работает = 1, не работает =0). При помощи графика discrete мы можем нарисовать шкалу, на которой будет видно: статус двигателя, сколько он проработал минутах/часах или % и как часто запускался.
Визуализация статусов двигателей
На мой взгляд, это один из лучших графиков для визуализации производительности оборудования. Сразу видно сколько времени оно простаивает, в каких режимах работает чаще. Данных может быть много, есть возможность их агрегации по диапазонам, преобразование по значениям (если значение «1», то отображать как «ON»)
Плагин pierosavi-imageit-panel
Imageit удобно использовать когда у вас уже есть нарисованная схема или план помещения, на которую вы хотите нанести данные с датчиков. В настройках визуализации нужно указать url адрес к картинке и добавить нужные вам элементы sensor. Элемент появляется на картинке и его можно разместить в нужном месте мышкой.
Схема печи с метриками температуры и давления
Плагин agenty-flowcharting-panel
Про создание визуализации FlowCharting я хотел бы рассказать более подробно, так как это невероятно функциональный инструмент. Он позволяет сделать динамическую мнемосхему, элементы которой будут реагировать на значения метрик (менять цвет, положение, название итд).
Получение данных
Создание любого элемента визуализации в графане начинается с запроса данных из источника, в нашем случае это zabbix. При помощи запросов нужно получить все метрики, которыми мы хотим воспользоваться на схеме. Реквизиты метрик — это имена элементов данных в заббиксе, можно указать как отдельную метрику, так и множество с фильтрацией через регулярное выражение. В моем примере поле Item содержит выражение: «/(^линия 1)|(наличие)|(кабачок)/» — это означает: отобрать все метрики, имя которых строго начинается с «линия 1» или содержит слово «наличие» или содержит слово «кабачок»
Пример настройки запроса данных о двигателях первой линии и наличии сырья
Преобразование данных
Исходные данные могут быть не всегда в том виде, в котором нам нужно их отобразить. Например, у нас есть ежеминутные данные о весе продукта в емкости (кг), и нам нужно отобразить скорость заполнения в т/час. Я это делаю следующим образом: беру данные о весе и преобразую их функцией графаны delta, которая считает разницу между значениями метрики, так текущий вес превращается в кг/мин. Затем умножаю на 0.06 для приведения результата в тонны/час. Так как метрика веса используется в нескольких запросах, я указываю для нее новый псевдоним (setAlias) и буду его использовать в правиле визуализации.
Пример использования параметра delta и множителя и переименования метрики в запросе
Вот еще пример преобразования данных: мне нужно было подсчитать кол-ва замесов (начало цикла = пуск двигателя). Метрика считается на основе статуса двигателя «линия 1 — насос откачки из бака 1 (статус)». Преобразование: данные исходной метрики меняем функцией delta (разница значений), таким образом в метрике будет значение «+1» для пуска двигателя, «-1» для остановки и «0» когда двигатель не меняет свой статус. Затем убираю все значения меньше 1 и суммирую их. В результате получается кол-во пусков двигателя.
Пример преобразования данных из текущего статуса в кол-во пусков
Теперь про саму визуализацию
В настройках отображения есть кнопка «Edit Draw», она запускает редактор, в котором можно нарисовать схему. У каждого объекта на схеме есть свои параметры. Например, если указать настройки шрифта в редакторе – они будут применяться к визуализации данных в графане.
Так выглядит редактор в Draw.io
После сохранения схемы, она появится в графане и можно будет создавать правила изменения элементов.
В параметрах () мы указываем:
На этом примере я закрашиваю насос и его стрелку красным цветом если он работает и зеленым если нет
При помощи плагина flowcharting мне удалось нарисовать схему всей линии, на которой:
Визуализация работы производственной линии
Результат
Самым сложным для меня было получить данные с контроллеров. Благодаря универсальности заббикса в плане получения данных и гибкости графаны за счет плагинов, потребовалось всего пара дней для создания комплексного экрана мониторинга производственной линии. Визуализация дала возможность просмотра графиков и статистики состояний, плюс легкий доступ через веб всем заинтересованным – все это позволило быстро выявлять узкие места и неэффективное использование агрегатов.
Заключение
Мне очень понравилась связка Zabbix+Grafana и я рекомендую обратить на нее внимание, если вам нужно быстро обработать данные с контроллеров или датчиков без программирования или внедрения сложных коммерческих продуктов. Безусловно, это не заменит профессиональные SCADA системы, но будет достаточно как инструмент централизованного мониторинга всего производства.
Grafana — все, что вам нужно знать
Как компания по разработке программного обеспечения с богатой историей работы над коммерческим и бесплатным программным обеспечением, SCAND была активным сторонником и участником сообщества Open Source. Часть нашей работы была посвящена ядру инструмента визуализации данных Grafana.
Наша команда работала над проектом, который требовал создания списков сопоставлений, которые помогают преобразовывать идентификаторы в удобные для пользователя тексты и наоборот. Эта функция была очень востребована сообществом этого инструмента для создания графиков и таблиц, а также нашим клиентом. Коммит был разработан нашей командой и добавлен в систему 5 марта 2018 года.
Grafana — это многоплатформенная платформа для аналитики и интерактивной визуализации с открытым исходным кодом. Он предназначен для предоставления контекстно-насыщенной визуализации, в основном с помощью графиков, но он также поддерживает другие методы представления данных благодаря своей архитектуре подключаемых панелей. Каждая панель управления адаптируется и настраивается в соответствии с потребностями конкретного проекта разработки программного обеспечения. Одна из причин популярности Grafana среди разработчиков — ее элегантные дашборды. Визуализации называются панелями, и разработчики могут создавать собственные информационные панели с панелями для различных источников данных. Он поддерживает тепловые карты, графики, таблицы и типы панелей с произвольным текстом. Разработчики также могут получить доступ к хорошо зарекомендовавшей себя экосистеме пользовательских информационных панелей для различных типов информации и источников.
Что такое Grafana Tool: особенности и преимущества
Даже малые предприятия генерируют огромные объемы данных в 2021 году, что делает инструменты для отслеживания и анализа больших данных важной частью любого рабочего процесса. Grafana — эффективное решение, потому что оно простое в использовании, предоставляет красивые графики и может быть интегрировано с рядом баз данных, включая MySQL, Graphite, Influx DB, Logz.io, Influx DB, ElasticSearch и PostgreSQL. Тот факт, что это открытый исходный код, также означает, что разработчики могут создавать собственные плагины для удовлетворения своих конкретных потребностей.
Grafana — отличный инструмент для визуализации данных. Доступность и наблюдаемость для всех пользователей обеспечивается за счет упрощенной установки и настройки. Все пользователи могут найти приложение для отслеживания производительности удовлетворительным благодаря привлекательному и настраиваемому интерфейсу.
Панель управления хорошо оснащена для понимания сложных данных, таких как графики, тепловые карты, гистограммы и географические карты, и она постоянно обновляется. Инструмент предоставляет множество решений визуализации для понимания данных в соответствии с бизнес-потребностями конкретного проекта. Вот ключевые особенности Grafana, которые вам следует знать:
Преимущества Grafana включают:
Grafana Cloud — это открытая платформа метрик SaaS, которая является облачной, быстрой и высокодоступной. Это особенно полезно для тех, кто не хочет беспокоиться об управлении всей инфраструктурой развертывания и не хочет брать на себя бремя размещения решения локально. Он работает на кластерах Kubernetes. Серверная часть совместима с Prometheus и Graphite. В результате у вас есть выбор: использовать экземпляр облака Grafana или и то, и другое.
Grafana также предлагает Grafana Enterprise, разработанную для крупных предприятий со сложными потребностями в визуализации данных. Grafana Enterprise обеспечивает обслуживание клиентов и обучение под руководством своей команды разработчиков.
Почему компании используют Grafana?
Компании, использующие инструменты анализа баз данных и визуализации, такие как Grafana, намного эффективнее своих конкурентов. Grafana используется предприятиями для отслеживания своей инфраструктуры и ведения журналов аналитики, а также для улучшения операционных показателей. Панели управления Grafana упрощают мониторинг пользователей и событий за счет автоматизации сбора, управления и отображения данных. Эта информация может использоваться менеджерами по продуктам, аналитиками безопасности и разработчиками для принятия решений.
Он показывает командам и компаниям, что на самом деле делают их клиенты, а не только то, что они утверждают. Известно, что это открытое поведение, и оно чрезвычайно информативно. Пользователи не очень хорошо умеют предвидеть свое будущее, но наличие аналитики помогает техническим командам копать глубже, чем опросы и отслеживание, подверженные человеческим ошибкам.
Завершение
Grafana позволяет предприятиям полностью понять, почему и как пользователи или события связаны с их инфраструктурой или сетью. Это особенно полезно для групп аналитики безопасности, поскольку позволяет им шаг за шагом отслеживать события и цифровые следы пользователей, чтобы узнать, чем они занимаются в своей сети. Поскольку большинство приложений и веб-сайтов не созданы для предоставления исчерпывающих отчетов или визуализаций, аналитика является важной частью современных технологий SecOps и DevOps как услуги. Данные, которые они получают, часто неточны и плохо структурированы без адекватной визуализации. Grafana снова делает данные полезными, объединяя все источники данных в единое, хорошо организованное представление.
DATAENGINER
Grafana — это инструмент с открытым исходным кодом, имеющий лицензию Apache 2.0, разработанный Torkel Ödegaard (который все еще отвечает за его разработку и обслуживание) и созданный в январе 2014 года. Этот шведский разработчик начал свою карьеру в области .NET и с 2012 года до в настоящее время он продолжает предлагать услуги по разработке и консалтингу через эту популярную платформу, одновременно разрабатывая бесплатное программное обеспечение.
Что делает Графана?
Каковы преимущества графана?
Что такое Графана в частности? Что делает его уникальным?
Графана любит использовать клавиатуру.
Графана Экосистема
Существует версия Enterprise (grafana.com), которая использует плагины для получения большего количества источников данных, но нет никаких оснований для того, чтобы эти другие плагины источников данных не создавались с открытым исходным кодом, поскольку экосистема плагинов Grafana уже предлагает много других источников данных. Например, в феврале 2018 года:
Недавно была добавлена возможность вручную отправлять оповещение в любое место, просто увеличивая изображение и активируя всплывающее меню. Хотя это приветствуемое дополнение, которое не обязательно заменит платформу оповещений, оно, безусловно, может помочь представить иной взгляд на критерии оповещения (очевидно, это невозможно для массового использования и критериев для сотен устройств).
Графана в поле мониторинга
Примечание: Pandora FMS имеет мощную веб-консоль и Metaconsole для их объединения. Он может работать в режиме киоска и предоставляет мощные инструменты, связанные с мониторингом в целом. Эта статья о Grafana является просто примером необычайной гибкости Pandora FMS, и она не подразумевает какого-либо одобрения представленной здесь информации.
Время является важным фактором для исследования и отображения журнала. Ключевые слова также будут другим ключевым элементом, но кто предоставляет это ключевое слово? С этой целью давайте представим нестандартные сценарии: один или несколько руководителей, которые имеют в своем распоряжении программиста для создания досок, необходимых для представления широкого спектра информации, или, возможно, сетевой администратор, который хочет использовать информацию определенного разработка применяется к производственной системе. На самом деле, у Grafana есть много применений, в дополнение к предложению аутентификации пользователя на уровне пользователя, которая может использоваться совместно с Pandora FMS, если она используется в обоих LDAP, Тем не менее, мы находим более полезной возможность входа в Grafana путем аутентификации с помощью GitHub, так что программисты могут самостоятельно искать свою информацию журнала, не затрагивая системы, к которым Grafana подключена вообще. Что такое Графана для программистов? Это ваша возможность исследовать и анализировать производительность ваших собственных приложений, без особых усилий, чем создание необходимых плат независимо от того, настроены они или нет!
Pandora FMS всегда на переднем крае
Мониторинг вашей инфраструктуры с помощью Grafana, InfluxDB и CollectD
У компаний, которым необходимо управлять данными и приложениями на более чем одном сервере, во главу угла поставлена инфраструктура.
Для каждой компании значимой частью рабочего процесса является мониторинг инфраструктурных узлов, особенно при отсутствии прямого доступа для решения возникающих проблем. Более того, интенсивное использование некоторых ресурсов может быть индикатором неисправностей и перегрузок инфраструктуры. Однако мониторинг может использоваться не только для профилактики, но и для оценки возможных последствий использования нового ПО в продакшне. Сейчас для отслеживания потребляемых ресурсов на рынке существует несколько готовых к использованию решений, но с ними, тем не менее, возникают две ключевые проблемы: дороговизна установки и настройки и связанные со сторонним ПО вопросы безопасности.
Первая проблема это вопрос цены: стоимость может варьироваться от десяти евро (потребительские расценки) до нескольких тысяч (корпоративные расценки) в месяц, в зависимости от числа подлежащих мониторингу хостов. Для примера, предположим что мне нужен мониторинг трех узлов в течение одного года. При цене в 10 евро в месяц я потрачу 120 евро, тогда как небольшая компания будет вынуждена раскошелиться на десять-двадцать тысяч, что окажется финансово несостоятельным решением и попросту подорвет весь бюджет.
Вторая проблема это стороннее ПО. Учитывая, что для анализа данные пользователя — будь то частное лицо или компания — должны обрабатываться третьей стороной, возникает вопрос: каким образом третья сторона собирает данные и представляет их пользователю? Обычно для этого на узел устанавливают специальное приложение, через которое и ведется мониторинг, но зачастую такие приложения успевают устареть или оказываются несовместимы с операционной системой клиента. Опыт исследователей в области информационной безопасности проливает свет на проблемы в работе с «проприетарным ПО». Стали бы вы доверять такому ПО? Я — нет.
У меня есть свои узлы как для Tor, так и для некоторых криптовалют, поэтому для мониторинга я предпочитаю бесплатные, легко настраиваемые альтернативы с открытыми исходниками. В этом посте мы рассмотрим три таких инструмента: Grafana, InfluxBD и CollectD.
Мониторинг
Для эффективного анализа каждой метрики нашей инфраструктуры нужно приложение, способное подхватывать статистику с интересующих нас устройств. В этом отношении нам на помощь приходит CollectD: этот демон группирует и собирает («collects», потому и такое имя) все параметры, которые можно хранить на диске или передать по сети.
Данные затем будут переданы инстансу InfluxDB: это база данных временных рядов (time series database, TSBD), которая связывает данные со временем (закодированным в UNIX временную метку) в которое их получил сервер. Таким образом, отправленные CollectD данные поступят уже как последовательность событий.
Наконец, мы воспользуемся Grafana: эта программа свяжется с InfluxDB и отобразит данные на удобных для пользователя цветастых приборных панелях. Благодаря всевозможным графикам и гистограммам мы сможем в реальном времени отслеживать данные CPU, оперативной памяти и так далее.
InfluxDB
Давайте начнем с InfluxDB, свободно распространяемой TSBD для хранения данных в виде последовательности событий. Эта разработанная на Go база данных станет сердцем нашей мониторинговой «системы».
Всякий раз при поступлении данных к ним по умолчанию привязывается UNIX метка. Гибкость такого подхода освобождает пользователя от необходимости хранить переменную «time», что в противном случае оказывается довольно сложным. Давайте представим, что у нас есть несколько расположенных на разных материках устройств. Каким образом мы будем обрабатывать переменную «time»? Станем ли мы привязывать все данные ко времени по Гринвичу, или мы зададим каждому узлу свой часовой пояс? Если данные сохраняются в разных часовых поясах, каким образом нам корректно отобразить их на графиках? Как можно видеть, проблемы возникают одна за другой.
Так как InfluxDB отслеживает время и автоматически проставляет метки на каждое поступление данных, она может синхронно записывать данные в конкретную базу данных. Именно поэтому InfluxDB часто представляют в виде таймлайна: запись данных не влияет на производительность базы данных (что порой случается у MySQL), поскольку запись это всего лишь добавление конкретного события в таймлайн. Поэтому название программы происходит от восприятия времени как бесконечного и неограниченного «потока».
Установка и настройка
Еще одно преимущество InfluxDB заключается в простоте установки и предоставляемой сообществом проекта, которое его широко поддерживает, объемной документации. У InfluxDB есть два типа интерфейса: командная строка (удобный инструмент для разработчиков, но плохо подготовлена к работе с большими объемами данных) и HTTP API для прямого взаимодействия с базой данных.
Скачать InfluxDB можно не только с официального сайта, но и через систему управления пакетами (мы продемонстрируем это через Debian). Кроме того, перед установкой рекомендуется проверить пакеты через GPG, поэтому ниже мы импортируем ключи пакета InfluxDB:
Наконец, мы обновим и установим InfluxDB:
Для запуска мы воспользуемся systemctl :
В том же CLI интерфейсе мы создадим базу данных «metrics», в которой и будем хранить наши метрики.
Затем мы настроим конфигурацию InfluxBD ( /etc/influxdb/influxdb.conf ) таким образом, чтобы интерфейс открывался через порт 24589 (UDP) с прямым соединением к базе данных «metrics» для поддержки CollectD. Также нам надо будет скачать файл types.db и поместить его по адресу /usr/share/collectd/ (или в любую другую папку) для корректного определения данных, которые CollectD передает в родном формате.
Больше про CollectD в конфигурации можно прочесть в документации.
CollectD
CollectD в нашей мониторинговой инфраструктуре будет исполнять роль агрегатора данных, который упрощает передау данных до InfluxDB. По определению CollectD собирает метрики с CPU, оперативной памяти, жестких дисков, сетевых интерфейсов, процессов… Потенциал этой программы безграничен, особенно если учесть широкий выбор как уже доступных плагинов, так и набор запланированных.
Как можно видеть, установка CollectD проста:
Давайте проиллюстрируем работу CollectD упрощенным примером. Допустим, я хочу знать число процессов на моем узле. Для проверки этого CollectD совершит вызов API чтобы узнать число процессов за единицу времени (по определению это 5000 миллисекунд) и ничего более. Как только агрегатор получит данные, он передаст их для настройки в InfluxDB через модуль (под названием «Network»), который нам надо будет настроить.
Я предлагаю изменить в файле конфигурации имя хоста, который пересылается InfluxDB (в нашей инфраструктуре это «централизованная» база данных, поскольку она расположена на одном узле). Таким образом, к нам не будут поступать лишние данные и исчезнет риск перезаписи данных другими узлами.
Grafana
Один график стоит тысячи изображений
Беря во внимание перефразированную цитату, наблюдение за метриками инфраструктуры в режиме реального времени через графики и таблицы дает нам действовать эффективно и своевременно. Для создания и настройки приборной панели наших графиков и таблиц мы воспользуемся Grafana.
Grafana это совместимый с широким набором баз данных (включая InfluxDB) свободно распространяемый инструмент по графическому отображению метрик, в котором пользователь может создавать оповещения об удовлетворении частью данных конкретного условия. Например, если ваш процессор достигает пиковых значений, оповещение может прийти вам в Slack, Mattermost, на почту и так далее. Более того, свои оповещения я настроил так, чтобы активно отслеживать каждый случай, когда кто-то «заходит» в мою инфраструктуру.
Grafana не требует каких-то особых настроек: как мы уже отметили ранее, InfluxDB «сканирует» переменную «time». Сама же интеграция очень проста: мы начнем с импорта публичного ключа чтобы добавить пакет с официального сайта Grafana (он зависит от вашей операционной системы):
Затем запустим его через systemctl:
Теперь, когда мы перейдем в браузере на страницу localhost:3000, мы должны будем увидеть интерфейс входа в Grafana. По определению, зайти можно через логин admin и пароль admin (после первого входа учетные данные рекомендуется сменить).
Давайте перейдем в раздел Sources (Источники) и добавим туда нашу базу данных Influx:
Теперь под надписью New Dashboard виднеется небольшой зеленый прямоугольник. Наведите на него свой курсор и выберите Add Panel (Добавить Панель), а затем Graph (График):
Теперь можно увидеть график с тестовыми данными. Нажмите на заголовок этой диаграммы и нажмите Edit(Изменить). С Grafana можно создавать умные запросы: вам не нужно знать каждое поле в базе, Grafana предложит их вам из списка подходящих для анализа параметров.
Писать запросы еще никогда не было так легко: просто выберите интересующую вас метрику и нажмите Refresh (Обновить). Еще я рекомендую разделить метрики по хостам, чтобы было проще изолировать проблемы. Если вам интересны другие идеи по созданию контрольных панелей, для вдохновения можно посетить сайт Grafana со всевозможными примерами.
Мы заметили, что Grafana это очень легко расширяемый инструмент, и он позволяет нам сравнивать очень разные по сравнению друг с другом данные. Нет ни одной метрики, которую нельзя было бы заполучить, так что вас ограничивает только ваша же изобретательность. Отслеживайте ваши устройства и получайте самый полный обзор вашей инфраструктуры в реальном времени!