Эстетика мониторинга с Grafana
Когда заходит речь о визуализации мониторинга, DevOps превращается в ценителя прекрасного – визуально удобных технологий. К таким относится Grafana – популярный инструмент создания панелей мониторинга. DevOps комьюнити любит Grafana, а Grafana делает все, чтобы комьюнити удобно работало с метриками. В Grafana дашборды – динамические, с шаблонами переменных, а графики в Grafana позволяют визуализировать различные данные удобным способом. Grafana мониторинг – отличное решение для организаций, которое предлагает еще и брендинг вашей работы.
Grafana установка
Для установки есть минимальные требования к программному и аппаратному обеспечению. Пакет Grafana скачать можно на официальном сайте проекта.
Поддерживаемые операционные системы для Grafana Download: Debian / Ubuntu, CentOS, Fedora, OpenSuse, RedHat, macOS, Windows.
Возможна установка программы и на другие операционки, но этот способ не рекомендуется. Активируйте JavaScript в браузере – без этого работать с программой не получится. Стоит отметить, что плагины в Grafana помогут настроить интеграцию с нужными тулами.
Grafana – легковесный продукт, и не требует много ресурсов от ЦПУ и памяти. В целом рекомендуемый объем памяти – 255 MB, но для некоторых опций может потребоваться больше ресурсов.
Для хранения конфигурационных данных (user, source, Grafana Dashboard) нужна база данных. Программа поддерживает следующие базы:
- PostgreSQL
- SQLite
- MySQL
По умолчанию Grafana использует встроенную в пакет установки базу SQLite. Обратите внимание, в версиях 9.5.18, 9.4.23, 9.6.14, 10.9, 11.4, and 12-beta2 PostgreSQL обнаружен баг, который мешает использованию Grafana. Бэкэнд платформы предоставляет HTTP API, тот же Grafana API используется во фронтэнде для сохранения панелей мониторинга, создания пользователей, обновления источников данных и других показателей.
Grafana настройка
В Grafana доступно много опций конфигурации, которые определяются в переменных окружений или файле .ini. После каждого внесения изменений в настройки, программу нужно перегружать.
В файле defaults.ini сохранены настройки по умолчанию, поэтому очень рекомендуем ничего не менять в этом файле. В зависимости от вашей ОС изменения в конфигурацию можно вносить в файлы custom.ini или grafana.ini.
В Linux, если установка проходила из пакетов deb или rpm, файл конфигурации лежит по адресу /etc/grafana/grafana.ini, а отдельный документ custom.ini не используется. Чтобы запустить Grafana в Docker Image, настройка будет проходить в environment variables, а не файле конфигурации. Если нужно сохранить данные работы Grafana в Docker, выберите постоянное хранилище или сделайте связку с контейнером.
Grafana Alerts
Ребята из Grafana Labs точно знают, что создавать крутые Grafana Dashboard нужно не для того, чтобы постоянно не отрывать от них глаз. Мониторинг можно осуществлять с помощью Grafana Alerts, используя временные ряды.
Предупреждения появляются только тогда, когда что-то происходит, не отвлекая в остальное время.
Для успешной реализации этого подхода команда должна следовать одной инструкции. Достигнуть этого можно через Prometheus в Grafana с использованием node exporter.
Grafana переменные
Использовать Grafana variables можно в запросах и заголовках панелей, так как переменная – это значение-заполнитель (placeholder). Когда меняем значения в раскрывающемся списке панели инструментов, меняются также и Grafana запросы показателей. Это сделано для того, чтобы показать новое значение. Переменные помогают создавать динамичные панели информации. Можете использовать переменные вместо жесткого кодирования имен серверов, датчиков, приложений.
Как установить Grafana Plugins
Полезная вещь – плагины в Grafana, список которых еженедельно расширяется благодаря сообществу. С помощью Grafana Plugins можно не только настроить удобную работу с программой, но и значительно расширить функционал. Плагины Grafana Zabbix, Grafana Kubernetes, Grafana Elasticsearch, Prometheus Grafana помогают выстроить оптимальную конфигурацию для работы DevOps.
Например, плагин Grafana Zabbix позволяет визуализировать данные мониторинга в реальном времени, создавая информационные панели для отслеживания метрик и расширяя возможности обеих программ. Плагин Prometheus Grafana усиливает долгосрочный мониторинг благодаря объединению этих двух мощных инструментов. В Grafana настройка графиков данных из Prometheus происходит через удобные дашборды.
Сильная база данных поможет научиться работать с приложением легко, быстро и эффективно. А еще почувствуете себя настоящим дизайнером – нескромный выбор тем, оформления Grafana Dashboard, способов визуализации. Это превращает повседневную мониторинговую рутину в настоящее искусство.
Grafana нужна база данных для хранения пользователей, информационных панелей, уведомлений. Grafana удобна тем, что у нее нет сложных требований к базе данных. Программа по умолчанию использует sqlite3 в качестве локальной базы. В ней и содержится информация о конфигурации (пользователи, дашборды, уведомления). Внутренняя база данных хранится по адресу /var/lib/grafana (при использовании дефолтной sqlite3). Другие базы, такие как MySQL и MariaDB, работают на том же сервере, что и сервер Grafana.
Панель Grafana использует язык запросов для обращения к источникам данных, из которых хочет получить метрики для визуализации. Простыми словами запрос – это вопрос на специальном языке, который понимает нужный источник данных. Grafana поддерживает до 26 запросов для одной панели. Вот примеры редакторов запросов: InfluxDB, Prometheus (PromQL), LogQL. Именно они помогают Grafana сформулировать запрос на нужном языке.
Grafana – отличная оболочка для обработки и визуализации данных. Сама программа данные не хранит, в отличие от других систем, например, Graphite, которая и строит, и хранит графики. Grafana только визуализирует метрики и показатели, которые получает из сторонних интегрированных источников. Если попробуете поискать кэш, в Grafana вы его не найдете. Фокус программы – на визуальной части и информационных панелях.
В дефолтных настройках Grafana работает на порту 3000. При регистрации в системе и при первом log in откройте браузер и перейдите по ссылке http://localhost:3000/. Это и будет дефолтный 3000 HTTP порт, который использует Grafana. Если настраиваете другой, например, 80-й, нужно дать программе разрешение. К примеру: $ sudo setcap ‘cap_net_bind_service=+ep’ /usr/sbin/grafana-server. Или делаем редирект 80-го порта на порт Grafana: $ sudo iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 3000.
Перед апдейтом программы стоит проверить, на какой версии вы работаете. Есть несколько способов проверить версию Grafana. Мы можем проверить как версионность cli, так и сервера.
- Для проверки Grafana cli version используйте следующую команду: /usr/local/groundwork/grafana/bin/grafana-cli -v.
- Чтобы узнать версию сервера Grafana запустите /usr/local/groundwork/grafana/bin/grafana-server -v.
Еще существуют различные плагины, которые помогают проверить версию Grafana. Например, проект version-checker. Это консоль для отображения текущей версии, последнего апстрима, версий имеджей, которые используются в кластере Kubernetes (если вы работаете с ним).
Показатели и метрики с консолей Grafana программа сохраняет в data base. Например, PostgreSQL, SQLite, MySQL. Чтобы экспортировать dashboard и data source, на открытой дашборде кликните иконку Share вверху страницы и выберите Export. Консоль сохраниться в JSON file. Чтобы сделать обратную операцию, т.е. импортировать консоль с данными, в разделе меню нажмите Home и выберите Import dashboard (начнется загрузка JSON file).
Программа использует cloud servers, например, на операционках Ubuntu и CentOS, на которые можно установить Grafana, используя SQLite data base. Серверы готовят перед установкой Grafana. В Cloud Platform создаем server, который можно запустить от юзера, созданного во время установки пакета. Если установка происходила с помощью репозитория APT или пакета .deb, сервер можно запустить через systemd или init.d.
Проверяем, чтобы все запустилось:
- sudo systemctl daemon-reload
- sudo systemctl start grafana-server
- sudo systemctl status grafana-server
CLI (Command Line Interface, командная строка) – исполняемый файл, который связывает Grafana с сервером. Запускается он на той же машине, где и расположен сервер. У командной строки Grafana есть команды plugins и admin, равно как и другие, более глобальные функции.
Чтобы открыть командную строку Grafana, нажмите на grafana-cli – откроется программа, которая будет закрыта вместе с закрытием окна. Это и есть инструмент CLI. Для использования командной строки, откройте окно CMD. Чтобы посмотреть все команды и опции, запустите grafana-cli -h.
Чтобы подключиться к серверу, нужно определиться, на какой системе будем устанавливать саму программу. Например, рассмотрим подключение к серверу в Grafana на Ubuntu 18.04.
Установив Grafana, запускаем сервис и добавляем его в auto download:
- sudo systemctl start grafana-server
- sudo systemctl enable grafana-server
Чтобы проверить, что все работает без ошибок, запускаем команду: sudo systemctl status grafana-server. Когда все сделано корректно, должно появиться сообщение active (running), подсвеченное зеленым. У Grafana своя authorization system, поэтому необязательно закрывать ее обратным proxy (кроме случаев, когда нужно установить сертификат безопасности). По умолчанию интерфейс работает на порту 3000.
Grafana поддерживает разные типы плагинов – для data source, панелей, приложений. Плагины для панелей упрощают процесс установки дашбордов визуализации данных и помогают создать нужный интерфейс. Плагины для приложений помогают объединять источники данных, дашборды, страницы в удобный комплекс.
Чтобы установить плагины Grafana перейдите на страницу плагинов на официальном сайте и выберите тот плагин, который хотите установить. Кликните на него и нажмите Installation. Плагины можно устанавливать в Grafana Cloud или локально.
После установки программы нужно выполнить первый вход в Grafana. Когда делаете log in первый раз, откройте браузер и перейдите к хосту http://localhost:3000/. По умолчанию в программе стоит 3000 HTTP (вы можете его изменить при конфигурации).
На странице входа введите admin в поля username и password, т.е. пароль Grafana по умолчанию – admin. Если все ОК, программа сразу предложит изменить пароль. Рекомендуем это сделать сразу, и, конечно, сохранить в надежном месте новые креды.