grafana что это такое
Мониторинг вашей инфраструктуры с помощью Grafana, InfluxDB и CollectD
У компаний, которым необходимо управлять данными и приложениями на более чем одном сервере, во главу угла поставлена инфраструктура.
Для каждой компании значимой частью рабочего процесса является мониторинг инфраструктурных узлов, особенно при отсутствии прямого доступа для решения возникающих проблем. Более того, интенсивное использование некоторых ресурсов может быть индикатором неисправностей и перегрузок инфраструктуры. Однако мониторинг может использоваться не только для профилактики, но и для оценки возможных последствий использования нового ПО в продакшне. Сейчас для отслеживания потребляемых ресурсов на рынке существует несколько готовых к использованию решений, но с ними, тем не менее, возникают две ключевые проблемы: дороговизна установки и настройки и связанные со сторонним ПО вопросы безопасности.
Первая проблема это вопрос цены: стоимость может варьироваться от десяти евро (потребительские расценки) до нескольких тысяч (корпоративные расценки) в месяц, в зависимости от числа подлежащих мониторингу хостов. Для примера, предположим что мне нужен мониторинг трех узлов в течение одного года. При цене в 10 евро в месяц я потрачу 120 евро, тогда как небольшая компания будет вынуждена раскошелиться на десять-двадцать тысяч, что окажется финансово несостоятельным решением и попросту подорвет весь бюджет.
Вторая проблема это стороннее ПО. Учитывая, что для анализа данные пользователя — будь то частное лицо или компания — должны обрабатываться третьей стороной, возникает вопрос: каким образом третья сторона собирает данные и представляет их пользователю? Обычно для этого на узел устанавливают специальное приложение, через которое и ведется мониторинг, но зачастую такие приложения успевают устареть или оказываются несовместимы с операционной системой клиента. Опыт исследователей в области информационной безопасности проливает свет на проблемы в работе с «проприетарным ПО». Стали бы вы доверять такому ПО? Я — нет.
У меня есть свои узлы как для Tor, так и для некоторых криптовалют, поэтому для мониторинга я предпочитаю бесплатные, легко настраиваемые альтернативы с открытыми исходниками. В этом посте мы рассмотрим три таких инструмента: Grafana, InfluxBD и CollectD.
Мониторинг
Для эффективного анализа каждой метрики нашей инфраструктуры нужно приложение, способное подхватывать статистику с интересующих нас устройств. В этом отношении нам на помощь приходит CollectD: этот демон группирует и собирает («collects», потому и такое имя) все параметры, которые можно хранить на диске или передать по сети.
Данные затем будут переданы инстансу InfluxDB: это база данных временных рядов (time series database, TSBD), которая связывает данные со временем (закодированным в UNIX временную метку) в которое их получил сервер. Таким образом, отправленные CollectD данные поступят уже как последовательность событий.
Наконец, мы воспользуемся Grafana: эта программа свяжется с InfluxDB и отобразит данные на удобных для пользователя цветастых приборных панелях. Благодаря всевозможным графикам и гистограммам мы сможем в реальном времени отслеживать данные CPU, оперативной памяти и так далее.
InfluxDB
Давайте начнем с InfluxDB, свободно распространяемой TSBD для хранения данных в виде последовательности событий. Эта разработанная на Go база данных станет сердцем нашей мониторинговой «системы».
Всякий раз при поступлении данных к ним по умолчанию привязывается UNIX метка. Гибкость такого подхода освобождает пользователя от необходимости хранить переменную «time», что в противном случае оказывается довольно сложным. Давайте представим, что у нас есть несколько расположенных на разных материках устройств. Каким образом мы будем обрабатывать переменную «time»? Станем ли мы привязывать все данные ко времени по Гринвичу, или мы зададим каждому узлу свой часовой пояс? Если данные сохраняются в разных часовых поясах, каким образом нам корректно отобразить их на графиках? Как можно видеть, проблемы возникают одна за другой.
Так как InfluxDB отслеживает время и автоматически проставляет метки на каждое поступление данных, она может синхронно записывать данные в конкретную базу данных. Именно поэтому InfluxDB часто представляют в виде таймлайна: запись данных не влияет на производительность базы данных (что порой случается у MySQL), поскольку запись это всего лишь добавление конкретного события в таймлайн. Поэтому название программы происходит от восприятия времени как бесконечного и неограниченного «потока».
Установка и настройка
Еще одно преимущество InfluxDB заключается в простоте установки и предоставляемой сообществом проекта, которое его широко поддерживает, объемной документации. У InfluxDB есть два типа интерфейса: командная строка (удобный инструмент для разработчиков, но плохо подготовлена к работе с большими объемами данных) и HTTP API для прямого взаимодействия с базой данных.
Скачать InfluxDB можно не только с официального сайта, но и через систему управления пакетами (мы продемонстрируем это через Debian). Кроме того, перед установкой рекомендуется проверить пакеты через GPG, поэтому ниже мы импортируем ключи пакета InfluxDB:
Наконец, мы обновим и установим InfluxDB:
Для запуска мы воспользуемся systemctl :
В том же CLI интерфейсе мы создадим базу данных «metrics», в которой и будем хранить наши метрики.
Затем мы настроим конфигурацию InfluxBD ( /etc/influxdb/influxdb.conf ) таким образом, чтобы интерфейс открывался через порт 24589 (UDP) с прямым соединением к базе данных «metrics» для поддержки CollectD. Также нам надо будет скачать файл types.db и поместить его по адресу /usr/share/collectd/ (или в любую другую папку) для корректного определения данных, которые CollectD передает в родном формате.
Больше про CollectD в конфигурации можно прочесть в документации.
CollectD
CollectD в нашей мониторинговой инфраструктуре будет исполнять роль агрегатора данных, который упрощает передау данных до InfluxDB. По определению CollectD собирает метрики с CPU, оперативной памяти, жестких дисков, сетевых интерфейсов, процессов… Потенциал этой программы безграничен, особенно если учесть широкий выбор как уже доступных плагинов, так и набор запланированных.
Как можно видеть, установка CollectD проста:
Давайте проиллюстрируем работу CollectD упрощенным примером. Допустим, я хочу знать число процессов на моем узле. Для проверки этого CollectD совершит вызов API чтобы узнать число процессов за единицу времени (по определению это 5000 миллисекунд) и ничего более. Как только агрегатор получит данные, он передаст их для настройки в InfluxDB через модуль (под названием «Network»), который нам надо будет настроить.
Я предлагаю изменить в файле конфигурации имя хоста, который пересылается InfluxDB (в нашей инфраструктуре это «централизованная» база данных, поскольку она расположена на одном узле). Таким образом, к нам не будут поступать лишние данные и исчезнет риск перезаписи данных другими узлами.
Grafana
Один график стоит тысячи изображений
Беря во внимание перефразированную цитату, наблюдение за метриками инфраструктуры в режиме реального времени через графики и таблицы дает нам действовать эффективно и своевременно. Для создания и настройки приборной панели наших графиков и таблиц мы воспользуемся Grafana.
Grafana это совместимый с широким набором баз данных (включая InfluxDB) свободно распространяемый инструмент по графическому отображению метрик, в котором пользователь может создавать оповещения об удовлетворении частью данных конкретного условия. Например, если ваш процессор достигает пиковых значений, оповещение может прийти вам в Slack, Mattermost, на почту и так далее. Более того, свои оповещения я настроил так, чтобы активно отслеживать каждый случай, когда кто-то «заходит» в мою инфраструктуру.
Grafana не требует каких-то особых настроек: как мы уже отметили ранее, InfluxDB «сканирует» переменную «time». Сама же интеграция очень проста: мы начнем с импорта публичного ключа чтобы добавить пакет с официального сайта Grafana (он зависит от вашей операционной системы):
Затем запустим его через systemctl:
Теперь, когда мы перейдем в браузере на страницу localhost:3000, мы должны будем увидеть интерфейс входа в Grafana. По определению, зайти можно через логин admin и пароль admin (после первого входа учетные данные рекомендуется сменить).
Давайте перейдем в раздел Sources (Источники) и добавим туда нашу базу данных Influx:
Теперь под надписью New Dashboard виднеется небольшой зеленый прямоугольник. Наведите на него свой курсор и выберите Add Panel (Добавить Панель), а затем Graph (График):
Теперь можно увидеть график с тестовыми данными. Нажмите на заголовок этой диаграммы и нажмите Edit(Изменить). С Grafana можно создавать умные запросы: вам не нужно знать каждое поле в базе, Grafana предложит их вам из списка подходящих для анализа параметров.
Писать запросы еще никогда не было так легко: просто выберите интересующую вас метрику и нажмите Refresh (Обновить). Еще я рекомендую разделить метрики по хостам, чтобы было проще изолировать проблемы. Если вам интересны другие идеи по созданию контрольных панелей, для вдохновения можно посетить сайт Grafana со всевозможными примерами.
Мы заметили, что Grafana это очень легко расширяемый инструмент, и он позволяет нам сравнивать очень разные по сравнению друг с другом данные. Нет ни одной метрики, которую нельзя было бы заполучить, так что вас ограничивает только ваша же изобретательность. Отслеживайте ваши устройства и получайте самый полный обзор вашей инфраструктуры в реальном времени!
Grafana: инструмент для удобной визуализации метрик мониторинга
«Если результат от запуска IT-проекта нельзя измерить — то как понять, что вы запустили нужный проект?», — говорят грамотные управленцы и бизнесмены. И с ними не поспоришь. Сейчас мы разберемся с тем, что такое Grafana, как она помогает принимать решения и кому нужен этот инструмент.
Метрики мониторинга, которых тысячи
Любой мало-мальски вменяемый IT-проект — это разные метрики. Среднее число активных пользователей в сутки, количество регистраций в неделю, средний чек на клиента, количество активных юзеров, пользующихся новой фичей, — это примеры метрик, с которыми приходится каждый день иметь дело управленцам и владельцам бизнеса. Конечно, это далеко не полный список — крупная компания легко может собирать показатели по тысячам параметров.
Аналитики как раз те люди, которые извлекают из метрик пользу. Они смотрят на колонки цифр и формируют гипотезы и рекомендации по тому, куда и как бизнес должен двигаться дальше.
Эти ребята в основном занимаются математикой и статистикой. Некоторые из них в состоянии самостоятельно писать запросы в базы данных, но это не их основная специальность. А раньше дела обстояли еще хуже — почти никто из аналитиков не умел работать с СУБД.
Поэтому, чтобы обеспечить аналитический отдел топливом в виде метрик, приходилось отвлекать программистов от работы и просить их выгрузить нужные значения из таблиц СУБД. Конечно, это сильно затрудняло процесс.
Grafana — все метрики мониторинга в одном месте
Grafana — универсальная обертка для работы с аналитическими данными, которые хранятся в разных источниках. Она сама ничего не хранит и не собирает, а является лишь универсальным клиентом для систем хранения метрик. Например, с помощью нее можно ходить за цифрами как в традиционную базу PostgreSQL, так и в специализированные аналитические системы типа Prometheus или Influx.
Графану можно подключать к любому хранилищу статистических данных. Разные отделы компании могут использовать разные СУБД и системы сбора статистики. Так вот, Grafana умеет работать с любой популярной системой хранения данных. Конечно, делает она это не сама — первоначальную настройку и подключение к СУБД выполняют администраторы. Но на этом их работа заканчивается — дальше аналитики могут самостоятельно строить свои запросы.
Grafana может собирать метрики из различных источников
Системы хранения данных на рисунке выше — лишь малая часть того, куда Grafana может подключаться для отображения статистики. Если вам нужно что-то очень редкое — всегда можно найти и поставить дополнительные плагины. А их много — комьюнити вокруг инструмента очень активное и дружное.
Grafana — все, что вам нужно знать
Как компания по разработке программного обеспечения с богатой историей работы над коммерческим и бесплатным программным обеспечением, SCAND была активным сторонником и участником сообщества Open Source. Часть нашей работы была посвящена ядру инструмента визуализации данных Grafana.
Наша команда работала над проектом, который требовал создания списков сопоставлений, которые помогают преобразовывать идентификаторы в удобные для пользователя тексты и наоборот. Эта функция была очень востребована сообществом этого инструмента для создания графиков и таблиц, а также нашим клиентом. Коммит был разработан нашей командой и добавлен в систему 5 марта 2018 года.
Grafana — это многоплатформенная платформа для аналитики и интерактивной визуализации с открытым исходным кодом. Он предназначен для предоставления контекстно-насыщенной визуализации, в основном с помощью графиков, но он также поддерживает другие методы представления данных благодаря своей архитектуре подключаемых панелей. Каждая панель управления адаптируется и настраивается в соответствии с потребностями конкретного проекта разработки программного обеспечения. Одна из причин популярности Grafana среди разработчиков — ее элегантные дашборды. Визуализации называются панелями, и разработчики могут создавать собственные информационные панели с панелями для различных источников данных. Он поддерживает тепловые карты, графики, таблицы и типы панелей с произвольным текстом. Разработчики также могут получить доступ к хорошо зарекомендовавшей себя экосистеме пользовательских информационных панелей для различных типов информации и источников.
Что такое Grafana Tool: особенности и преимущества
Даже малые предприятия генерируют огромные объемы данных в 2021 году, что делает инструменты для отслеживания и анализа больших данных важной частью любого рабочего процесса. Grafana — эффективное решение, потому что оно простое в использовании, предоставляет красивые графики и может быть интегрировано с рядом баз данных, включая MySQL, Graphite, Influx DB, Logz.io, Influx DB, ElasticSearch и PostgreSQL. Тот факт, что это открытый исходный код, также означает, что разработчики могут создавать собственные плагины для удовлетворения своих конкретных потребностей.
Grafana — отличный инструмент для визуализации данных. Доступность и наблюдаемость для всех пользователей обеспечивается за счет упрощенной установки и настройки. Все пользователи могут найти приложение для отслеживания производительности удовлетворительным благодаря привлекательному и настраиваемому интерфейсу.
Панель управления хорошо оснащена для понимания сложных данных, таких как графики, тепловые карты, гистограммы и географические карты, и она постоянно обновляется. Инструмент предоставляет множество решений визуализации для понимания данных в соответствии с бизнес-потребностями конкретного проекта. Вот ключевые особенности Grafana, которые вам следует знать:
Преимущества Grafana включают:
Grafana Cloud — это открытая платформа метрик SaaS, которая является облачной, быстрой и высокодоступной. Это особенно полезно для тех, кто не хочет беспокоиться об управлении всей инфраструктурой развертывания и не хочет брать на себя бремя размещения решения локально. Он работает на кластерах Kubernetes. Серверная часть совместима с Prometheus и Graphite. В результате у вас есть выбор: использовать экземпляр облака Grafana или и то, и другое.
Grafana также предлагает Grafana Enterprise, разработанную для крупных предприятий со сложными потребностями в визуализации данных. Grafana Enterprise обеспечивает обслуживание клиентов и обучение под руководством своей команды разработчиков.
Почему компании используют Grafana?
Компании, использующие инструменты анализа баз данных и визуализации, такие как Grafana, намного эффективнее своих конкурентов. Grafana используется предприятиями для отслеживания своей инфраструктуры и ведения журналов аналитики, а также для улучшения операционных показателей. Панели управления Grafana упрощают мониторинг пользователей и событий за счет автоматизации сбора, управления и отображения данных. Эта информация может использоваться менеджерами по продуктам, аналитиками безопасности и разработчиками для принятия решений.
Он показывает командам и компаниям, что на самом деле делают их клиенты, а не только то, что они утверждают. Известно, что это открытое поведение, и оно чрезвычайно информативно. Пользователи не очень хорошо умеют предвидеть свое будущее, но наличие аналитики помогает техническим командам копать глубже, чем опросы и отслеживание, подверженные человеческим ошибкам.
Завершение
Grafana позволяет предприятиям полностью понять, почему и как пользователи или события связаны с их инфраструктурой или сетью. Это особенно полезно для групп аналитики безопасности, поскольку позволяет им шаг за шагом отслеживать события и цифровые следы пользователей, чтобы узнать, чем они занимаются в своей сети. Поскольку большинство приложений и веб-сайтов не созданы для предоставления исчерпывающих отчетов или визуализаций, аналитика является важной частью современных технологий SecOps и DevOps как услуги. Данные, которые они получают, часто неточны и плохо структурированы без адекватной визуализации. Grafana снова делает данные полезными, объединяя все источники данных в единое, хорошо организованное представление.
Состоялся релиз Grafana v6 — новые функции открытого инструмента для визуализации
В конце февраля вышла шестая версия платформы для мониторинга Grafana. В материале мы расскажем подробнее об особенностях этого релиза и новых возможностях инструмента.
Что такое Grafana
Grafana — инструмент для визуализации данных. Он умеет работать с таблицами, графиками, текстом, картами и поддерживает интеграцию со сторонними приложениями и плагинами. Grafana дает возможность создавать так называемые дашборды с панелями, каждая из которых отображает заданные показатели системы за установленный период. Каждый дашборд универсален, и его можно настроить под нужды конкретного проекта.
С Grafana работают такие компании, как NetApp, PayPal Stack Overflow и Red Hat. В частности, PayPal с помощью Grafana отслеживают производительность работы сервисов, а команде Red Hat платформа помогает следить за нагрузкой на OpenStack Cloud.
Что изменилось в новой версии
Новую версию Grafana представили на конференции GrafanaCon, которая прошла в конце февраля в Лос-Анджелесе. Обо всех нововведениях Grafana v6 вы можете почитать в журнале изменений на официальном сайте проекта. Расскажем о наиболее интересных из них.
Переход с Angular на React. Сообщество просило предоставить возможность писать кастомные плагины на React еще весной прошлого года. В новом релизе разработчики Grafana реализовали эту функцию. Теперь для плагинов будет использоваться SDK-библиотека @grafana/ui.
При этом в Grafana совершили полную миграцию на новую библиотеку. По словам разработчиков, на такой шаг они пошли, чтобы упростить поддержку кодовой базы (сделать код future-proof).
Добавили Explore. Это — инструмент для анализа и отладки, который позволит выяснять причины неполадок в работе инфраструктуры. Он интегрируется с редактором запросов Prometheus. Обычно для получения информации о статусе конкретного объекта пользователь обращается к серверу Prometheus с помощью языка запросов PromQL. Grafana v6 позволит миновать этот шаг и сразу отобразить всю информацию на дашбордах.
Также в обновленном редакторе заработала функция автозаполнения названий метрик и запросов, и появились фильтры для поиска данных в таблицах. По словам разработчиков, эти обновления помогут быстрее находить нужную информацию без переключения между инструментами.
Новая система сбора логов Loki. Это — горизонтально-масштабируемая система логирования, индексирующая не содержимое логов, а их метаданные. Пользователи получили возможность хранить логи в сжатом формате. Такой подход будет удобен при работе с логами подов Kubernetes, поскольку их метки проиндексируются автоматически.
Удалили хранилище пользовательских сессий. Это было сделано, чтобы упростить работу с ПО вроде Redis, Memcache, Postgres или MySQL. Вместо сессий для подтверждения аутентификации теперь будут использоваться токены с коротким жизненным циклом. Время жизни токенов пользователи могут настроить в конфигурационном файле. Разработчики также реализовали несколько обновлений безопасности: cookies по умолчанию работают с атрибутом SameSite, что защищает пользователей от атаки Cross-Site Request Forgery (CSRF).
Среди менее значимых улучшений также стоит отметить изменение дизайна цветовой палитры и поддержку уведомлений чатов Google Hangouts.
/ Flickr / Bruce Guenter / CC BY
Аналоги Grafana
Grafana — не единственный открытый инструмент для визуализации данных. В качестве альтернативного решения можно выделить платформу Kibana, которая входит в стек ELK (ElasticSearch, Logstash, Kibana). Именно его мы в 1cloud используем в качестве инструмента логирования — свой опыт внедрения ELK мы описали в отдельном материале.
Среди плюсов Kibana комьюнити выделяет простоту развертывания и возможность текстового поиска. Grafana также ценят за приятный и функциональный интерфейс. При этом Kibana, в отличие от Grafana, умеет анализировать текстовые сообщения логов. По этой причине Kibana подойдет больше, если перед пользователем стоит задача изучить системную информацию и установить с её помощью причину неисправности.
Кроме того, Kibana выигрывает у Grafana в вопросах масштабируемости. В прошлом году команда разработчиков Punchplatform отказалась от Grafana в пользу Kibana, когда число виртуальных серверов выросло до нескольких сотен.
К недостаткам Kibana можно отнести ограниченность интеграции. Этот инструмент работает только с Elasticsearch, а Grafana можно использовать вместе со сторонними сервисами вроде Prometheus или Redis.
«Grafana и Kibana — это инструменты, которые помогут решить разные задачи, — отмечает начальник отдела развития IaaS-провайдера 1cloud.ru Сергей Белкин. — Если речь идет о мониторинге нескольких сотен или тысяч серверов, то Kibana справится лучше. Если же первостепенная задача — интеграция со сторонними сервисами, то здесь стоит обратить внимание на Grafana».
Будущее решений для визуализации данных
По прогнозам BI-SURVEY, решения для сбора и визуального представления информации станут одним из основных трендов 2019 года. При этом считается, что отрасль ждет переход от простых систем отображения данных в формате графов и таблиц к «умным» инструментам на базе систем ИИ. Такой подход позволит автоматизировать ряд рутинных задач, связанных с мониторингом ИТ-инфраструктуры.
По этой причине можно ожидать, что Grafana, Kibana и подобные проекты станут более гибкими и обзаведутся компонентами, которые будут не только отслеживать, но и самостоятельно устранять инциденты.