Grafana на VPS: установка и настройка

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

Начнём сначала, разберёмся в том, как устроены системы мониторинга нагрузки и как они работают. Если теория вам не интересна, а нужен конкретный мануал — переходите сразу на этот раздел: Установка Grafana на VPS.

Системы мониторинга: из чего состоят и как работают?

Системы мониторинга: из чего состоят и как работают?

Как правило, системы мониторинга нагрузки состоят из трех и более компонентов. В самом простом варианте система может состоять из агента, передающего данные в хранилище и системы визуализации данных.

 

В случае с уже ставшей классической схемы работы Grafana, есть три элемента:

  • Агент, передающий данные — node explorer;
  • Приложение для мониторинга событий и оповещений — Prometheus;
  • Система визуализации данных — Grafana.
 

Другая не менее популярная система мониторинга нагрузки Zabbix использует немного другую модель работы. В ней четыре элемента:

  • Ядро, которое управляет всеми процессами системы мониторинга;
  • Прокси сервер — хранит статистику в выбранном формате (SQL);
  • Агент — программа, собирающая статистику на наблюдаемых серверах;
  • Web-интерфейс, отражающий полученные данные в виде графиков.

Вне зависимости от количества элементов в системе мониторинга нагрузки, она работает по одну общему принципу: сбор метрик агентом → передача их в БД → визуализация данных в web. Такая схема может быть локальной и распределенной. Давайте рассмотрим каждый тип систем мониторинга.

Локальная система мониторинга нагрузки

Как следует из названия, локальная система мониторинга располагается на том же сервере, который нужно наблюдать. Такая схема хорошо подходит, если у вас один единственный рабочий сервер. Однако, у такой схемы есть очевидный существенный минус — если сервер «упадет», то система мониторинга не сможет вам об этом сообщить, так как тоже работать не будет.

Проблему стабильности работы сервера можно решить просто — заказать надежный сервер у проверенного провайдера. Например, серверы 1cloud работают под управлением отказоустойчивой виртуализации Enterprise-уровня — это гарантирует высокий уровень надежности и отказоустойчивости серверов.

Основным преимуществом локальной системы мониторинга является простота её установки и настройки. Сегодня есть большое количество готовых решений на базе Docker, где буквально в несколько команд можно развернуть всю систему мониторинга нагрузки. Кстати, если вы ещё не знакомы с докером или слышали о нём и давно хотели попробовать — рекомендуем почитать наш цикл статей про Docker.

   

Инструкция по установке Grafana через Docker дана ниже, к ней мы ещё придём, а пока давайте рассмотрим схему распределенной установки системы мониторинга нагрузки.

Распределённая система мониторинга нагрузки

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

Очевидно, что такая система благодаря своей распределенности более устойчива к сбоям и высоким нагрузкам, а также более мутабельная — каждый её элемент может быть точно настроен, однако есть, и обратная сторона медали — большие трудозатраты на развертывание и обслуживание такой системы.

Вот как графически можно представить работу распределенной системы мониторинга Grafana:

 

Как мы говорили ранее, такая схема дает возможность изменять каждый компонент системы в отдельности, а также дополнять эту схему дублирующими элементами. Вот, например, схема, где Grafana и Zabbix в качестве источника данных использует один BD сервер — Prometheus.

 

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

Одним словом, если вам нужно получать данные о нагрузках с одного сервера — можно использовать локальную установку системы мониторинга из Docker, а если надо мониторить множество серверов — то лучше применить распределенную систему мониторинга.

О том как создать такую систему мы расскажем в следующей статье, а пока перейдём к практике — установим Grafana из Docker на VPS.

Установка Grafana на VPS

Установка Grafana на VPS

Ставится Grafana из докера на VPS очень просто:

  1. Если у вас не установлен Docker — установите его командой sudo apt-get update && sudo apt-get install -y docker-compose;
  2. Проверьте командой systemctl status docker, что Docker установился и работает корректно. Если статус докера — active, можно двигаться дальше;
  3. Установите две переменные окружения, которые содержат данные для подключения к Prometheus и Grafana:
    ADMIN_USER=admin
    ADMIN_PASSWORD=admin
  4. Перейдите в директорию или создайте её, куда будет размещена копия репозитория с Grafana. В нашем случае мы создали такую директорию: mkdir var/grafana/;
  5. Находясь в нужной вам директории выполните команду: git clone https://github.com/Einsteinish/Docker-Compose-Prometheus-and-Grafana.git;
  6. Перейдите в появившуюся директорию командой cd Docker-Compose-Prometheus-and-Grafana;
  7. Выполните сборку и запуск контейнеров командой docker-compose up -d.

После установки нужно проверить запустились ли контейнеры. Для этого выполните команду docker container ls --format 'table {{.Names}} | {{.Status}}'| nl -v 0. В результате выполнения этой команды вы увидите список из 7 запущенных контейнеров.

Хорошо, теперь проверим, работает ли Prometheus и Grafana. Логин и пароль — admin, их мы устанавливали вначале, через переменные окружения. Введите в строку браузера: ip-адрес вашего сервера:9090 — загрузится web-интерфейс Prometheus:

Теперь введите в строку браузера: ip-адрес вашего сервера:3000 — откроется основная страница с Grafana. В поле login и password укажите те же данные, что вы указывали для входа на страницу Prometheus, далее Grafana попросит вас сменить пароль — сделайте это. После входа вы окажетесь на главной страницы Grafana. Для просмотра статистики — нажмите на кнопку Dashboards в виде 4 смежных квадратов, затем перейдите на вкладку Manage и выберите нужный вам дашборд.

По умолчанию версия системы мониторинга, которую мы развернули из докера имеет 4 дашборда:

  • Docker Containers — дашборд с данными по контейнерам Docker;
  • Docker Host — основной дашборд со сведениями по вашему серверу;
  • Monitor Services — дашборд с данными по Prometheus;
  • Nginx — дашборд статистики по Nginx.

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

В двух словах о Grafana

В двух словах о Grafana

Grafana — это система визуализации данных, если её использовать вместе с node exporter и Prometheus можно получить надежную и удобную систему мониторинга нагрузки. Такая связка может быть установлена локально — на сервере, который нужно мониторить и распределенно — на отдельных серверах.

Локальную установку Grafana проще всего произвести с помощью Docker, так вы сможете легко следить за состоянием вашей системы мониторинга и она не будет мешать вашим основным программам, так как будет изолирована от них. В случае с распределенной системой мониторинга, на наблюдаемый сервер устанавливается только агент, который собирает данные, а база данных и система визуализации данных устанавливаются на другие серверы.

Вот сравнительная таблица эксплуатационных свойств двух вариантов установки систем мониторинга нагрузки:

Свойства системы мониторинга нагрузки Локальная установка Распределенная установка
Отказоустойчивость Средняя Высокая
Сложность установки и настройки Низкая Высокая
Возможность масштабирования Нет Есть
Удобство внедрения новых элементов в систему Низкое Высокое
Уровень потребления ресурсов Высокий Низкий
Подходит для мониторинга множества серверов? Нет Да
Стоимость Низкая Средняя/Высокая

Если упростить таблицу и говорить только об основной функциональной разнице между вариантами установки, то можно сказать так: локальная установка системы мониторинга нагрузки хороша, когда у вас 1 сервер для мониторинга, если нужно мониторить кластер — тогда нужна распределенная система мониторинга.

О том, как установить и настроить распределенную систему мониторинга нагрузки, а также кастомизировать графики мы подробно поговорим в наших следующих статьях, а пока мы готовим материал, вы можете познакомиться с возможностями Grafana поближе, установив её на доступный и производительный VPS от 1cloud.