Grafana — это современная и мощная система визуализации данных, однако она является лишь частью большой экосистемы мониторинга нагрузки, вся магия, как и водится в IT, происходит за кулисами, там где не видно. В этой статье мы разберемся в том, как в принципе работают системы мониторинга нагрузки на примере графаны и заббикса, а также, конечно же, установим и настроим Grafana на VPS.
Начнём сначала, разберёмся в том, как устроены системы мониторинга нагрузки и как они работают. Если теория вам не интересна, а нужен конкретный мануал — переходите сразу на этот раздел: Установка Grafana на VPS.
Системы мониторинга: из чего состоят и как работают?
Как правило, системы мониторинга нагрузки состоят из трех и более компонентов. В самом простом варианте система может состоять из агента, передающего данные в хранилище и системы визуализации данных.
В случае с уже ставшей классической схемы работы Grafana, есть три элемента:
- Агент, передающий данные — node explorer;
- Приложение для мониторинга событий и оповещений — Prometheus;
- Система визуализации данных — Grafana.
Другая не менее популярная система мониторинга нагрузки Zabbix использует немного другую модель работы. В ней четыре элемента:
- Ядро, которое управляет всеми процессами системы мониторинга;
- Прокси сервер — хранит статистику в выбранном формате (SQL);
- Агент — программа, собирающая статистику на наблюдаемых серверах;
- Web-интерфейс, отражающий полученные данные в виде графиков.
Вне зависимости от количества элементов в системе мониторинга нагрузки, она работает по одну общему принципу: сбор метрик агентом → передача их в БД → визуализация данных в web. Такая схема может быть локальной и распределенной. Давайте рассмотрим каждый тип систем мониторинга.
Локальная система мониторинга нагрузки
Как следует из названия, локальная система мониторинга располагается на том же сервере, который нужно наблюдать. Такая схема хорошо подходит, если у вас один единственный рабочий сервер. Однако, у такой схемы есть очевидный существенный минус — если сервер «упадет», то система мониторинга не сможет вам об этом сообщить, так как тоже работать не будет.
Проблему стабильности работы сервера можно решить просто — заказать надежный сервер у проверенного провайдера. Например, серверы 1cloud работают под управлением отказоустойчивой виртуализации Enterprise-уровня — это гарантирует высокий уровень надежности и отказоустойчивости серверов.
Основным преимуществом локальной системы мониторинга является простота её установки и настройки. Сегодня есть большое количество готовых решений на базе Docker, где буквально в несколько команд можно развернуть всю систему мониторинга нагрузки. Кстати, если вы ещё не знакомы с докером или слышали о нём и давно хотели попробовать — рекомендуем почитать наш цикл статей про Docker.
Введение в Docker
Разбираемся в том, что такое Docker, из каких компонентов состоит и какие технологии контейнеризации использует.
Продвинутая работа с Docker
Разбираемся в более сложной работе с Docker и учимся управлять множеством контейнеров.
Инструкция по установке Grafana через Docker дана ниже, к ней мы ещё придём, а пока давайте рассмотрим схему распределенной установки системы мониторинга нагрузки.
Распределённая система мониторинга нагрузки
Как следует из названия, распределенная система мониторинга нагрузки — это система, элементы которой разнесены по разным серверам и связаны между собой сетью. Говоря, простыми словами: Grafana может быть на одном сервере, Prometheus на другом сервере, а количество наблюдаемых серверов вообще может быть каким угодно.
Очевидно, что такая система благодаря своей распределенности более устойчива к сбоям и высоким нагрузкам, а также более мутабельная — каждый её элемент может быть точно настроен, однако есть, и обратная сторона медали — большие трудозатраты на развертывание и обслуживание такой системы.
Вот как графически можно представить работу распределенной системы мониторинга Grafana:
Как мы говорили ранее, такая схема дает возможность изменять каждый компонент системы в отдельности, а также дополнять эту схему дублирующими элементами. Вот, например, схема, где Grafana и Zabbix в качестве источника данных использует один BD сервер — Prometheus.
Такой подход может быть очень удобен, если вам нужно отдавать разные данные разным людям. Например, такая система может отдавать клиентам данные о потребляемых ресурсах на серверах, а сетевым администраторам эта же система может предоставлять данные о сетях и количестве потребляемого трафика.
Одним словом, если вам нужно получать данные о нагрузках с одного сервера — можно использовать локальную установку системы мониторинга из Docker, а если надо мониторить множество серверов — то лучше применить распределенную систему мониторинга.
О том как создать такую систему мы расскажем в следующей статье, а пока перейдём к практике — установим Grafana из Docker на VPS.
Установка Grafana на VPS
Ставится Grafana из докера на VPS очень просто:
- Если у вас не установлен Docker — установите его командой sudo apt-get update && sudo apt-get install -y docker-compose;
- Проверьте командой systemctl status docker, что Docker установился и работает корректно. Если статус докера — active, можно двигаться дальше;
- Установите две переменные окружения, которые содержат данные для подключения к Prometheus и Grafana:
ADMIN_USER=admin
ADMIN_PASSWORD=admin - Перейдите в директорию или создайте её, куда будет размещена копия репозитория с Grafana. В нашем случае мы создали такую директорию: mkdir var/grafana/;
- Находясь в нужной вам директории выполните команду: git clone https://github.com/Einsteinish/Docker-Compose-Prometheus-and-Grafana.git;
- Перейдите в появившуюся директорию командой cd Docker-Compose-Prometheus-and-Grafana;
- Выполните сборку и запуск контейнеров командой 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 — это система визуализации данных, если её использовать вместе с node exporter и Prometheus можно получить надежную и удобную систему мониторинга нагрузки. Такая связка может быть установлена локально — на сервере, который нужно мониторить и распределенно — на отдельных серверах.
Локальную установку Grafana проще всего произвести с помощью Docker, так вы сможете легко следить за состоянием вашей системы мониторинга и она не будет мешать вашим основным программам, так как будет изолирована от них. В случае с распределенной системой мониторинга, на наблюдаемый сервер устанавливается только агент, который собирает данные, а база данных и система визуализации данных устанавливаются на другие серверы.
Вот сравнительная таблица эксплуатационных свойств двух вариантов установки систем мониторинга нагрузки:
Свойства системы мониторинга нагрузки | Локальная установка | Распределенная установка |
---|---|---|
Отказоустойчивость | Средняя | Высокая |
Сложность установки и настройки | Низкая | Высокая |
Возможность масштабирования | Нет | Есть |
Удобство внедрения новых элементов в систему | Низкое | Высокое |
Уровень потребления ресурсов | Высокий | Низкий |
Подходит для мониторинга множества серверов? | Нет | Да |
Стоимость | Низкая | Средняя/Высокая |
Если упростить таблицу и говорить только об основной функциональной разнице между вариантами установки, то можно сказать так: локальная установка системы мониторинга нагрузки хороша, когда у вас 1 сервер для мониторинга, если нужно мониторить кластер — тогда нужна распределенная система мониторинга.
О том, как установить и настроить распределенную систему мониторинга нагрузки, а также кастомизировать графики мы подробно поговорим в наших следующих статьях, а пока мы готовим материал, вы можете познакомиться с возможностями Grafana поближе, установив её на доступный и производительный VPS от 1cloud.