Grafana zabbix plugin windows

DATAENGINER

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

Давайте рассмотрим как интегрировать Zabbix метрики для отображения в Grafana.

Интеграция Zabbix и Grafana.

Шаг 1. Для начала подключимся к виртуальной машине, где установлен Grafana Server по ssh. Для установки мы будем использовать менеджер для управления плагинами grafana-cli. А устанавливать будем плагин который позволит соединить нам Zabbix и Grafana. Плагин называется: alexanderzobnin-zabbix-app. Таким образом команда примет вид:

После установки перезагрузим сервер Grafana и проверим, что перезапуск прошел успешно.

Шаг 2. Авторизуемся в Grafana и в боковом меню перейдем в configuraion->plugins.

Найдем в списке плагинов Zabbix, откроем плагин.

Для включения плагина нажмем кнопку Enable.

В правом верхнем углу появится сообщение о успешном или не успешном запуске, если запуск прошел успешно, то заместо кнопки Enable мы увидим две кнопки Update и Disable.

Шаг 3. Далее подключим Zabbix Сервер как новый ресурс, для этого перейдем в меню Configuration->Data Source.

Нажмем кнопку Add data source. Прокрутим в самый низ и нажмем на наш плагин Zabbix.

Шаг 4. Далее на открывшейся вкладке укажем URL, который использует Zabbix сервер, имя пользователя и пароля для авторизации в Zabbix.

Прокрутим вниз страницы, нажмем кнопку Save & Test, если мы все указали верно, то появится сообщение о том, что источник данных успешно подключен, а чуть выше кнопки появится сообщение с версией Api, так как мы используем новую версию Zabbix и Grafana, то в моем случае версия Api обозначена как undefined.

Вернемся к окну источников данных и увидим новый источник данных Zabbix.

На этом интеграция сервисов Zabbix сервер и Grafana завершена, в следующей статье мы рассмотрим как создать панель используя метрики Zabbix Сервера. Надеюсь данный материал Вам поможет в работе, приятного использования.

Несколько Zabbix серверов в одном Grafana Dashboard

Долгое время у меня в голове витала мысль о том, что было бы здорово как-то организовать единый dashboard для нескольких zabbix серверов. До проработки вопроса долго не доходили руки, но в итоге дошли. Сразу же было найдено простое и эффективное решение, о котором ранее просто не задумывался. Далее рассказываю подробно о том, как я объединил в едином дашборде все подопечные серверы zabbix с помощью Grafana.

Введение

Начнем с того, кому и зачем это может быть нужен общий дашборд заббикс серверов в Grafana. Если у вас один сервер Zabbix, то тема для вас совершенно не актуальна. В целом, у Zabbix сейчас своими средствами можно собирать красивые и информативные дашборды прямо из коробки.

У меня в управлении постоянно находится несколько никак не связанных между собой zabbix серверов от разных заказчиков, плюс свои личные. Везде настроены уведомления, в том числе в telegram. Оповещения удобно рассортированы по меткам, чатам, каналам и т.д. С этим никаких проблем нет. Но иногда хочется одним взглядом быстро посмотреть на все активные триггеры всех серверов. Это нужно для того, чтобы быть уверенным, что не забыл отреагировать на что-то важное, где не настроены повторяющиеся уведомления.

Решение вопроса мульти дашборда в zabbix изначально мне виделось очень сложным, так как не представлял, на базе какого готового инструмента это можно было сделать. Пока я не вспомнил про Grafana. Причем, знаю то я ее давно, но использую редко. Она чаще всего с prometheus используется, а у меня основной мониторинг всегда и везде Zabbix. При этом его графических возможностей мне хватает за глаза. За красотой не гонюсь, важен функционал.

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

Читайте также:  Репозитории python для linux

После того, как узнал, что с помощью Grafana можно будет собрать multi dashboard для zabbix, настроить его было дело техники. Причем не очень сложной. Далее подробно расскажу, как это сделать.

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

То же самое на Debian 10, если предпочитаете его:

Установка Grafana

Установить Grafana не просто, а очень просто. Я вообще не стал заморачиваться, так как мне она нужна только для одного дашборда. Поэтому запустил графану в докере.

Запустил Grafana на 3000 порту, сразу же установив несколько основных плагинов, в том числе тот, что нужен для интеграции с zabbix — alexanderzobnin-zabbix-app.

Если не хотите docker, то воспользуйтесь документацией по установке. Там нет никаких проблем, так как есть репозиторий с готовыми пакетами. Ставится все очень быстро и просто.

Я настроил доступ к web интерфейсу Grafana через nginx proxy_pass с помощью следующего конфига. Предварительно получил сертификат let’s encrypt.

Дальше можно идти в web интерфейс и логиниться. Логин и пароль по умолчанию в Grafana — admin / admin.

Подключение Zabbix к Grafana

Теперь нам нужно по очереди подключить все Zabbix сервера, данные из которых мы хотим видеть в Grafana. Для этого идем в Configuration -> Plugins. Мотаем в самый низ и находим там Zabbix.

Заходим в него и активируем, нажав Enable . Дальше идем в Data Sources. Опять же, мотаем в самый низ и выбираем Zabbix.

Если у вас в Data Sources нет Zabbix, значит ваша версия Графаны запрещает использование неподписанных плагинов. Чтобы это исправить, добавьте в настройках параметр:

и перезапустите Grafana.

Здесь нам нужно заполнить параметры доступа к серверу Zabbix. Ко всем подключаемым серверам должен быть доступ со стороны Grafana. Так же нам нужен будет отдельный пользователь zabbix с доступом ко всем хостам, информацию с которых мы хотим видеть в Grafana.

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

URL должен заканчиваться на скрипт api_jsonrpc.php. То есть полный url до web интерфейса и скрипт на конце. И не забудьте выбрать версию сервера. Там по умолчанию стоит 3-я. Я сначала не заметил этого. Некоторое время пришлось разбираться с тем, почему нет подключения к zabbix. После того, как все настроите, нажимайте Save & Test . Должны увидеть сообщение, что все в порядке.

Таким же образом вам нужно добавить все сервера Zabbix, информацию с которых вы хотите видеть в общем дашборде Grafana.

Настройка Multi Dashboard

Осталось добавить данные на единый Dashboard. Для этого идем на главную графаны и добавляем новый dashboard.

Выбираем Choose Visualisation.

В общем случае достаточно указать только тип визуализации — Zabbix Problems и Data Source. Данные по активным триггерам по всем группам и хостам сразу же появятся. Ниже можно настроить некоторые параметры. К примеру, я не вывожу триггеры типа Information и тэги к ним, так как не использую их.

После того, как все настроите, сохраните дашборд. Следующие панели можно добавлять просто копируя и редактируя уже сделанную. В ней нужно будет поменять только Data Source. В итоге у меня получился вот такой Dashboard из 5-ти основных серверов Zabbix.

Я не настраивал никакой красоты. Все сугубо по делу. Просто список, который я могу быстро посмотреть и оценить обстановку.

Визуализация данных Zabbix с помощью Grafana

Если у вас есть желание настроить красивые визуализации для Zabbix в Grafana, то можете начинать это делать. В принципе, тут ничего сложного нет. Мы уже все подготовили. Все интуитивно понятно, не то, что визуализации в Kibana для Elastic. Там я залипаю надолго, когда что-то рисую.

В комплекте плагина alexanderzobnin-zabbix-app есть несколько примеров дашбордов, но из коробки они не везде работают. Надо допиливать под конкретные версии серверов, так как время от времени шаблоны меняются. Для того, чтобы посмотреть готовые дашборды, надо вернуться в Data Source и перейти на вкладку Dashboards.

Читайте также:  Unable to query the live linux source machine make sure

Ну и выполнить их Import . Дальше опять идите на главную и добавляйте импортированный дашборд.

Должно получиться примерно так.

Лучше сразу с нуля начинать делать дашборд из тех данных и графиков, которые необходимы именно вам. Я обычно не использую готовое.

Заключение

На этом по объединению разных Zabbix серверов в единый дашборд у меня все. На деле настройка оказалась очень простой и быстрой. Разобрался во всем сходу. Не пришлось возиться со всякими мелочами. Завис только в одном месте, когда забыл в Data Source поменять версию сервера с 3 на 4. Подключение не шло. Потом внимательно все проверил и завелось.

Grafana+Zabbix: Визуализация работы производственной линии

В этой статья я хочу поделиться опытом использования open source систем Zabbix и Grafana для визуализации работы производственных линий. Информация может быть полезна тем, кто ищет быстрый способ визуального отображения или аналитики собранных данных в проектах промышленной автоматизации или IoT. Статья не является подробным руководством, это скорее концепция системы мониторинга, основанная на открытом программном обеспечении для производственного предприятия.

Инструментарий

Zabbix – его мы используем давно для мониторинга ИТ инфраструктуры завода. Система оказалось настолько удобной и универсальной, что мы стали заводить в нее данные с производственных линий, датчиков и контроллеров. Это нам позволило собрать все данные метрик в одном месте, сделать простые графики расхода ресурсов и производительности оборудования, но очень не хватало аналитики и красивых графиков.

Grafana – это мощнейший инструмент для аналитики и визуализации данных. Большое количество плагинов позволяют забирать данные из различных источников (zabbix, clickhouse, influxDB), обрабатывать их на лету (считать среднее значение, сумму, разницу и т.д.) и рисовать всевозможные графики (от простых линий, спидометров, таблиц до сложных схем).

Draw.io – сервис, позволяющий в онлайн редакторе нарисовать от простой блок схемы до плана помещений. Есть много готовых шаблонов и нарисованных объектов. Данные можно экспортировать во все основные графические форматы или xml.

Собираем все вместе

Статей как установить и настроить Grafana и Zabbix написано много, я расскажу про основные моменты конфигурации.

На Zabbix сервере создается «узел сети» (host), которому будут принадлежать «элементы данных» (item) с метриками от наших датчиков. Имена узлов и элементов данных желательно продумать заранее и сделать максимально структурированными, так как к ним мы будем обращаться из графаны через регулярные выражения. Такой подход удобен тем, что можно одним запросом получать данные с группы элементов.

Для настройки графаны потребуется установить дополнительные плагины:

  • Zabbix by Alexander Zobnin (alexanderzobnin-zabbix-app) – интеграция с zabbix
  • natel-discrete-panel – плагин для дискретной визуализации на горизонтальном графике
  • pierosavi-imageit-panel – плагин для отображения данных поверх своей картинки
  • agenty-flowcharting-panel – плагин для динамической визуализации схемы из draw.io

Сама интеграция с заббиксом настраивается в графане, пункт меню 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» или содержит слово «наличие» или содержит слово «кабачок»

Читайте также:  Заряд блютуз гарнитуры windows 10


Пример настройки запроса данных о двигателях первой линии и наличии сырья

Преобразование данных

Исходные данные могут быть не всегда в том виде, в котором нам нужно их отобразить. Например, у нас есть ежеминутные данные о весе продукта в емкости (кг), и нам нужно отобразить скорость заполнения в т/час. Я это делаю следующим образом: беру данные о весе и преобразую их функцией графаны delta, которая считает разницу между значениями метрики, так текущий вес превращается в кг/мин. Затем умножаю на 0.06 для приведения результата в тонны/час. Так как метрика веса используется в нескольких запросах, я указываю для нее новый псевдоним (setAlias) и буду его использовать в правиле визуализации.


Пример использования параметра delta и множителя и переименования метрики в запросе

Вот еще пример преобразования данных: мне нужно было подсчитать кол-ва замесов (начало цикла = пуск двигателя). Метрика считается на основе статуса двигателя «линия 1 — насос откачки из бака 1 (статус)». Преобразование: данные исходной метрики меняем функцией delta (разница значений), таким образом в метрике будет значение «+1» для пуска двигателя, «-1» для остановки и «0» когда двигатель не меняет свой статус. Затем убираю все значения меньше 1 и суммирую их. В результате получается кол-во пусков двигателя.


Пример преобразования данных из текущего статуса в кол-во пусков

Теперь про саму визуализацию

В настройках отображения есть кнопка «Edit Draw», она запускает редактор, в котором можно нарисовать схему. У каждого объекта на схеме есть свои параметры. Например, если указать настройки шрифта в редакторе – они будут применяться к визуализации данных в графане.


Так выглядит редактор в Draw.io

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

В параметрах () мы указываем:

  • Options — задается имя правила (Rule name), название или псевдоним метрики, данные которой будут использоваться (Apply to metrics). Тип агрегации данных (Aggregation) влияет на конечный результат метрики, так Last — означает, что будет выбрано последнее значение, avg — среднее значение за период, выбранный в верхнем правом углу.
  • Thresholds — параметр пороговых значений, описывает логику применения цвета, то есть выбранный цвет будет применяться к элементам на схеме в зависимости от данных метрики. В моем примере при значении метрик «0» — статус «Ok» цвет будет зеленый, при значении «>1» статус Critical и цвет будет красный.
  • Color/Tooltip Mappings» и «Label/Text Mappings» — выбор элемента схемы и сценария его поведения. В первом сценарии объект будет закрашен, во втором – на нем будет текст с данными из метрики. Для выбора объекта на схеме нужно нажать знак цепи и кликнуть мышкой на схеме.


На этом примере я закрашиваю насос и его стрелку красным цветом если он работает и зеленым если нет

При помощи плагина flowcharting мне удалось нарисовать схему всей линии, на которой:

  1. меняется цвет агрегатов в соответствии с их статусом
  2. есть сигнализация отсутствия продукта в емкостях
  3. отображается настройка частот двигателей
  4. скорость заполнения/сброса первого бака
  5. подсчитывается кол-во циклов работы линии (замесы)


Визуализация работы производственной линии

Результат

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

Заключение

Мне очень понравилась связка Zabbix+Grafana и я рекомендую обратить на нее внимание, если вам нужно быстро обработать данные с контроллеров или датчиков без программирования или внедрения сложных коммерческих продуктов. Безусловно, это не заменит профессиональные SCADA системы, но будет достаточно как инструмент централизованного мониторинга всего производства.

Оцените статью