Начало работы с Grafana
Grafana - это платформа с открытым исходным кодом, предназначенная для мониторинга и наблюдения за данными. Она позволяет запрашивать, визуализировать, оповещать и понимать показатели независимо от того, где они хранятся. Создавайте, изучайте и делитесь дашбордами со своей командой и развивайте культуру управления данными.
В этой статье мы расскажем Вам о том, как самостоятельно установить Grafana. С ее помощью Вы сможете создать дашборд своей мечты всего за минуту.
Для чего предназначена Grafana?
Благодаря архитектуре плагинов Grafana помогает визуализировать и анализировать метрики из различных источников, с ее помощью можно также отправлять оповещения в случае возникновения каких-либо аномальных ситуаций. Давайте рассмотрим несколько наиболее распространенных вариантов ее использования. С ее помощью Вы сможете ...
- Визуализировать загрузки процессора, памяти, сети и других ресурсов машины;
- Визуализировать и оповещать о большом количестве входящих веб-запросов непосрественно в веб-приложении;
- Следить за состоянием компонентов Вашей платформы, такими как API, фронтенд-приложения, базы данных и т. д.
И многое-многое другое!
Начало работы с Grafana
Grafana может быть установлена на различные платформы с помощью собственных пакетов. В данном случае мы установим ее с помощью Docker. В качестве пароля администратора, который можно установить во время установки (не волнуйтесь, Вы можете изменить его сразу же после), укажите GF_SECURITY_ADMIN_PASSWORD. В зависимости от конфигурации обратного прокси или ингресса установите GF_SERVER_ROOT_URL. Подробный пример конфигурации можно найти здесь.
docker run \ -d \ -p 3000:3000 \ --name=grafana \ -e "GF_SERVER_ROOT_URL=http://localhost:3000" \ -e "GF_SECURITY_ADMIN_PASSWORD=secret" \ grafana/grafana
Для простоты мы установим localhost. После выполнения приведенной выше команды Вы сможете открыть http://localhost:3000 в браузере и войти в систему с именем пользователя admin и паролем, установленными ранее.
Как устроена Grafana
Теперь, когда все готово к работе, давайте разберемся в основных концепциях Grafana.
Источники данных
Фундаментальный и, пожалуй, самый важный компонент, отвечающий за извлечение данных из сторонних источников, таких как Elasticsearch, Cloudwatch, Graphite, InfluxDB и т. д.
Дашборды и виджеты
Виджет - это простая панель визуализации для одного набора, состоящего из нескольких метрик. Существует множество виджетов, таких как графики, списки журналов, таблицы, тепловые карты, singlestat и многое другое, доступное с помощью плагинов.
Дашборд - это группа виджетов, представляющая гораздо больше возможностей: папки, переменные (для изменения визуализации виджетов), временные диапазоны и автообновление виджетов.
Оповещения
Grafana поддерживает оповещения на основе правил, заданных пользователем. Оповещения можно отправлять по самым различным каналам связи, включая Microsoft Teams, Slack, электронную почту, Webhooks и PagerDuty.
Плагины
Плагины можно использовать для расширения существующей функциональности Grafana или добавления новых источников данных и типов виджетов, что делает Grafana действительно расширяемой. Пожалуйста, ознакомьтесь с репозиторием официальных плагинов, а также с инструкциями по их установке.
Пользователи
Grafana обеспечивает управление пользователями с такими ролями и правами, как редактор, зритель или администратор.
Создание своего первого дашборда с помощью Grafana
Теперь, когда мы уже совсем немного знаем о Grafana, давайте с ее помощью создадим наш первый дашборд. Для простотымы будем использовать источник данных TestData из Grafana.
В левой части главной страницы щедкните на значок плюса и создайте дашборд под названием Test Data Dashboard. Добавьте новую панель и новый запрос:
Затем нажмите на иконку запроса слева и добавьте источник по умолчанию (Grafana), он добавит нужный нам график.
Чтобы настроить визуализацию, нажмите на значок визуализации и выберите тип графика. Есть еще несколько опций, таких как ширина линии, цвет, укладка и т. д. Существуют и другие типы визуализаций, такие как таблицы, отдельные статистики, калибры и т. д.
Сохраните график. Он должен выглядеть так, как показано ниже.
Настройка оповещений
Визуализация показателей полезна, но никто не сможет сидеть за компьютером и смотреть на дашборд 24 часа в сутки 7 дней в неделю!!! Оповещения помогают информировать о критических показателях, таких как высокий уровень использования памяти.
Давайте настроим оповещение в Slack для только что созданного дашборда. На главной странице нажмите на Alerting, перейдите к каналам уведомлений и добавьте новый канал уведомлений для Slack. Для этого Вам потребуются учетные данные, имя канала slack и имя пользователя.
PS: Test Data Source Grafana не поддерживает функцию оповещений.
Далее щелкните на иконку оповещения для его полной установки.
Определим условие: например, если среднее значение показателя в минуту более 10, значит, пора бить тревогу. Далее мы определяем то, кому буду отправляться уведомления – в нашем случае в Slack Metricfire. Оповещение может сопровождаться тестовым сообщением (можете выбрать его из списка доступных шаблонов).
А что же дальше
Поздравляю!!! Вы создали свой первый дашборд, оснащенный функцией оповещения. Теперь можно приступить к изучению других не менее интересных возможностей Grafana!
Производство
Для обеспечения доступа к данным (что крайне важно для эффективного мониторинга данных) для установки в производстве используется либо k8s, либо docker swarm.
Развертывание k8s может быть выполнено через центр управления Prometheus. В данном случае развертывается стек Prometheus + Grafana с предварительно созданными панелями мониторинга k8s и предустановленными оповещениями.
Общие паттерны
Grafana + Grahite = любовь. Это наиболее распространенная комбинация, используемая для создания отчетов по метрикам. Grafana - отличный инструмент визуализации, но он не поддерживает сохранение данных, поэтому для сбора метрик используется Graphite, на котором и работает Grafana.
Плагины
Плагины - одна из самых мощных функций Grafana. В ней есть огромный репозиторий источников данных и виджетов, созданных сообществом, которые значительно расширяют и без того немалые возможности Grafana.
Администрирование
Для получения дашбордов в формате JSON Grafana предоставляет HTTP API. Их можно создать снова, предоставив полезную нагрузку, сохраненную в качестве резервной копии. Эти панели также можно импортировать через веб-интерфейс Grafana. Существует множество готовых дашбордов, разаботанных сторонними разработчиками специально для таких инструментов, как Elasticsearch, Airflow и k8s, которые также можно импортировать.









