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

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

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

Если у вас есть желание освоить Linux с нуля, не имея базовых знаний, рекомендую познакомиться с онлайн-курсом Administrator Linux.Basic в OTUS. Курс для новичков, для тех, кто хочет войти в профессию администратора Linux. Подробности по .

Введение

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

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

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

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

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

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

  1. Установка CentOS 8.
  2. Настройка CentOS 8.
  3. Установка и настройка zabbix сервера.

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

  1. Установка Debian 10.
  2. Базовая настройка Debian.
  3. Установка и настройка zabbix на debian.

Установка Grafana

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

# docker run -d -p 3000:3000 --name=grafana -e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource,alexanderzobnin-zabbix-app" grafana/grafana

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

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

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

server {
    listen 443 http2 ssl;
    server_name grafana.site.ru;
    access_log /var/log/nginx/grafana.site.ru-access.log full;
    error_log /var/log/nginx/grafana.site.ru-error.log;

    ssl_certificate /etc/letsencrypt/live/grafana.site.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/grafana.site.ru/privkey.pem;

    limit_conn perip 50;

    location /.well-known {
    root /tmp;
    }

    location / {
        proxy_pass http://10.20.50.7:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
    }
}

server {
    listen 80;
    server_name grafana.site.ru;
    return 301 https://grafana.site.ru$request_uri;
}

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

Grafana login

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

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

Zabbix plugin в Grafana

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

Zabbix Data Source в Grafana

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

allow_loading_unsigned_plugins = alexanderzobnin-zabbix-datasource 

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

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

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

Подключение Zabbix к Grafana
Настройки подключения заббикс в графане

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

Успешное подключение к zabbix server

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

Настройка Multi Dashboard

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

Добавление dashboard

Выбираем Choose Visualisation.

Создание visualization

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

Настройка визуализации Zabbix problems в Grafana
Параметры отображения триггеров

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

Дашборд с триггерами из нескольких zabbix серверов

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

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

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

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

Встроенные в плагин дашборды

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

Выбор готового дашборда

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

Grafana Dashboard для Zabbix Server

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

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

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

Онлайн курс "DevOps практики и инструменты"

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

20 комментариев

  1. Аватар
    Александр

    Та же проблема что и у Павла, версия графаны 7.1.5 плагин заббикс включаю, а в data source его нет, помогите пожалуйста! Ради интереса пробовал версию 7.0, там точно такая же проблема

    • Zerox

      Я не проверял на 7-й версии. Она, судя по всему, вышла недавно. У меня на 6-й нормально работает, как в статье описано. Могу только предложить использовать 6-ю версию.

    • Аватар
      Алексей

      плагин стал unsigned, поэтому в конфиге Grafana нужно прописать в строке "allow_loading_unsigned_plugins = alexanderzobnin-zabbix-datasource", тогда плагин появится в Data Sources. Единственное, у меня не получается теперь подключиться к заббиксу из графаны, но это думаю у меня какие-то сетевые проблемы.

  2. Аватар

    Владимир, добрый день.
    Подскажите пожалуйста, плагин zalexanderzobnin-zabbix-app в плагинах есть, активируется, а в Data Sources zabbix'а нет.

    • Аватар

      Сам спросил, сам ответил. :-)
      Нужно в конфиге Grafana в строчке "allow_loading_unsigned_plugins = " добавить "alexanderzobnin-zabbix-datasource" и перезапустить Grafana.

  3. Аватар
    Михаил

    Настройка интергации
    Поправьте пожалуйста.

  4. Аватар

    Я прав - один и тот же юзер+пароль должен быть на всех заббиксах для общей панели?

    • Zerox

      Нет, не обязательно. Для каждого Zabbix Server настраивается свое отдельное подключение для сбора данных.

  5. Аватар
    Андрей

    Владимир, подскажите пожалуйста наиболее правильный способ "прикрыть" web интерфейс графаны от свободного доступа?

    Есть вариант добавить в конфиг nginx, который Вы приводили выше auth_basic авторизацию, но то ли баг, то ли фича - если указать произвольный пароль в .httpaswd при проксировании не происходит перенаправление на web интерфейс графаны (где стандартная форма логина и пароля), появляется ошибка что не правильно указаны login, password. Если же в .httpaswd указать точно такой же логин/пароль, как от стандартного web интерфейса - всё начинает работать, т.е. после авторизации nginx перекидывает на dashboard с графиками, а родная форма графаны (где запрос логина/пароля) - не отображается. Так вообще можно оставить или есть другие, более правильные решения?

    • Zerox

      Способов несколько. Самый простой, закрыть доступ на уровне firewall или настроить vpn и разрешить доступ через него.
      Далее можно настроить работу графаны за nginx proxy, статья у меня есть. Надо будет настроить basic auth. Это вариант рабочий 100%. Если у вас не получается, скорее всего что-то не так сделали.

  6. Аватар

    Вышла 7я Grafana. Плагин для Zabbix рабочий. На первый взгляд работает корректно.

  7. Аватар

    Zerox, вы уже поставили версию 5.0?

    • Zerox

      Протестировал уже. Как раз статью подробную только что закончил. Завтра опубликую.

  8. Аватар

    Добрый день, а не планируется сделать связку consul+zabbix?

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.