Эстетика мониторинга с 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, но для некоторых опций может потребоваться больше ресурсов.
![](https://devops-courses.zone3000.net/wp-content/uploads/2021/06/zone3000_article-grafana-02.png)
Для хранения конфигурационных данных (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 используется во фронтэнде для сохранения панелей мониторинга, создания пользователей, обновления источников данных и других показателей.
![](https://devops-courses.zone3000.net/wp-content/uploads/2021/06/zone3000_article-grafana-03.png)
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.
![](https://devops-courses.zone3000.net/wp-content/uploads/2021/06/zone3000_article-grafana-04-401x380.png)
Grafana переменные
Использовать Grafana variables можно в запросах и заголовках панелей, так как переменная – это значение-заполнитель (placeholder). Когда меняем значения в раскрывающемся списке панели инструментов, меняются также и Grafana запросы показателей. Это сделано для того, чтобы показать новое значение. Переменные помогают создавать динамичные панели информации. Можете использовать переменные вместо жесткого кодирования имен серверов, датчиков, приложений.
![Эстетика мониторинга с Grafana](https://devops-courses.zone3000.net/wp-content/uploads/2021/06/zone3000_article-grafana-05-2.png)
Как установить 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. Если все ОК, программа сразу предложит изменить пароль. Рекомендуем это сделать сразу, и, конечно, сохранить в надежном месте новые креды.