В этой статье мы расскажем об установке и настройке Grafana, как пользоваться этим инструментом, вы узнаете как подключить внешние источники данных и многое другое.
Grafana — инструмент с открытым исходным кодом для визуализации данных из различных систем сбора статистики. Используется для представления в графическом виде временных рядов и текстовых данных.
Grafana поддерживает установку на самые популярные операционные системы: Linux (Debian, Ubuntu, CentOS, Fedora, OpenSuse, RedHat), Mac и Windows. Допустимыми базами данных, в которых возможно хранение данных о пользователях и дашбордах, являются SQLite (используется по умолчанию), MySQL и PostgreSQL. В качестве демонстрационных серверов будем использовать «Облачные серверы» с операционными системами CentOS Stream и Ubuntu, на которые установим Grafana с базой данных SQLite.
Перед началом установки Grafana, подготовим серверы. В консоли управления Selectel перейдём в раздел Облачная платформа и нажмём кнопку Создать сервер.

На следующем представлении выберем готовую конфигурацию сервера с 1 vCPU и 1 ГБ RAM с операционной системой CentOS 8 64-bit.

Наш сервер будет иметь 10 ГБ на жестком диске. Для целей демонстрации этого достаточно. Прокручиваем вниз и нажимаем кнопку Создать. Аналогичным образом создадим сервер с Ubuntu 20.04 LTS 64-bit.

После проделанных манипуляций оба сервера появятся в списке доступных. Приступим к установке Grafana.

- Установка Grafana на CentOS Stream
- Установка Grafana на Ubuntu 20
- Настройка брандмауэра для доступа к Grafana
- Создание и настройка панелей и дашбордов
- Импорт и экспорт дашбордов
- Обратный прокси-сервер и SSL
- Конфигурационный файл Grafana
- [paths]
- Logs
- [server]
- Protocol
- Domain
- Enforce_domain
- Root_url
- Static_root_path
- Cert_file
- Cert_key
- [database]
- Type
- Host
- User
- Password
- Ssl_mode
- [security]
- [users]
- Allow_org_create
- Auto_assign_org
- Auto_assign_org_role
- [auth. anonymous]
- Org_name
- [auth. ldap]
- Config_file
- [auth. proxy]
- Enabled
- Header_name
- Auto_sign_up
- [session]
- Provider_config
- Cookie_name
- Cookie_secure
- Session_life_time
- [analytics]
- [dashboards. json]
- Заключение
- Инсталляция Grafana на CentOS Stream
- Инсталляция Grafana на Ubuntu
- Работа с дашбордами
- Как установить Grafana на Ubuntu
- Как войти в панель управления Grafana
Установка Grafana на CentOS Stream
sudo nano /etc/yum.repos.d/grafana.repo
Впишем в этот файл следующие переменные со значениями:
Далее установим Grafana:
sudo yum install grafana -y
После установки включаем автозагрузку и запускаем демон Grafana:
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
Установка завершена. Grafana на CentOS Stream готова к использованию. Проверим текущий статус сервиса:
sudo systemctl status grafana-server
В результате получим вывод:
grafana-server.service — Grafana instance
Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-01-25 09:48:04 MSK; 5s ago
Установка Grafana на Ubuntu 20
На Ubuntu Grafana устанавливается из репозитория производителя. Скачаем GPG-ключ и добавим его в список надежных:
После этого добавим в систему репозиторий Grafana:
sudo add-apt-repository «deb https://packages.grafana.com/oss/deb stable main»
Далее обновляем кэш APT и установим Grafana:
sudo apt update
sudo apt install grafana
Установка завершена. Grafana на Ubuntu 20.04 готова к использованию. Проверим текущий статус сервиса:
grafana-server.service — Grafana instance
Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-01-25 09:44:26 MSK; 10s ago
Настройка брандмауэра для доступа к Grafana
По умолчанию Grafana доступна на порту 3000. При использовании firewalld или iptables, необходимо разрешить сетевой доступ к этому порту из внешнего мира.
Набор команд для firewalld (добавление нового правила и перезагрузка сервиса firewalld для применения конфигурации):
firewall-cmd —zone=public —add-port=3000/tcp —permanent
systemctl reload firewalld
Набор команд для iptables:
Вписываем в раздел OUTPUT ACCEPT следующую строку:
-A INPUT -p tcp -m tcp —dport 3000 -m state —state NEW -j ACCEPT
И перезапускаем iptables:
sudo systemctl restart iptables

После выполнения команды выше, можно входить с новым паролем.
Grafana поддерживает из коробки различные источники данных:
Полный список можно посмотреть в документации. Перечень встроенных источников данных может быть расширен при помощи сторонних плагинов. Один из таких плагинов — плагин Zabbix для Grafana. Мониторинг — одно из основных назначений использования Grafana.

Установим этот плагин и добавим его в Grafana.
grafana-cli plugins install alexanderzobnin-zabbix-app
Теперь перезагрузим сервис Grafana:
systemctl restart grafana-server

Перейдем к настройке плагина и нажмём на кнопку Enable.

С момента включения плагина, в меню Data Sources появится новый источник данных — Zabbix. Нажмём на кнопку Select и настроим источник данных.

В настройках плагина укажем URL-адрес, имя пользователя и пароль для доступа по API к Zabbix.

Нажимаем на кнопку Save & Test и получаем подтверждение корректности настроек.

С этого момента данных из Zabbix могут быть использованы для создания визуализаций.
Создание и настройка панелей и дашбордов
Панели и дашборды — основные сущности представлений внутри Grafana. Каждый дашборд состоит из набора панелей. Для создания дашбордов перейдём в представление Dashboards и нажмём на кнопку New Dashboard.

На следующем шаге будет предложено добавить на дашборд новую панель.

Grafana имеет встроенные панели, которые можно сразу начинать использовать. По умолчанию представлены следующие типы:

Далее выберем в выпадающем меню источник данных Zabbix и укажем группу, хост, приложение и элемент данных. Если всё выполнено правильно — на графике появятся данные.

Grafana поддерживает различные типы визуализаций:
При создании новой панели, в правой части экрана в разделе Visualization есть возможность выбрать тип визуализации. Перейдем к созданию SingleStat (отображается как Stat) — панели с комбинацией численного и графического представлений. После ввода специфических данных для Zabbix, нажмём кнопку Apply.

В результате выполненных действий, увидим на дашборде две панели.

У каждой панели и каждого дашборда в Grafana есть свой набор настроек. Настройки первой открываются через выпадающее меню панели, а настройки второго откроются после нажатия на шестеренку в верхнем правом углу экрана.

На изображении ниже показаны настройки дашборда.

Импорт и экспорт дашбордов
В Grafana можно импортировать и экспортировать дашборды. Для импорта нужно перейти в представление Dashboards и нажать кнопку Import.

Для импорта доступны две опции: загрузка произвольного JSON и импорт готовых дашбордов с grafana.com. Во втором случае нужно указывать ID дашборда.

Для экспорта любого дашборда, необходимо нажать на специальную иконку в верхней части экрана и далее нажать Save to file. Дашборд будет сохранен в формате JSON.

Обратный прокси-сервер и SSL
Для настройки SSL в Grafana необходимо использовать обратный прокси-сервер. В этом разделе мы расскажем как настроить такой прокси на базе Nginx. Для целей демонстрации мы зарегистрировали домен grafana.tk, для которого выпустили специальный сертификат Let’s Encrypt.

После создания сервера мы настроили веб-сервер Nginx для работы через SSL. Осталось перенаправить трафик с него на порт 3000, по которому доступна Grafana. Для этого откроем конфигурационный файл веб-сервера.
sudo nano /etc/nginx/sites-available/grafana.tk
В этом файле будем работать с этим блоком конфигурации:
Заменим его на следующий:
Таким образом мы настроили переадресацию на локальный порт 3000. Теперь можно проверить корректность конфигурации Nginx:
sudo nginx -t
Осталось перезапустить Nginx:
sudo systemctl reload nginx
Теперь наша тестовая Grafana доступна по URL https://grafana.tk. Проверим:

Кроме настроек SSL, в Grafana, для повышения уровня безопасности, можно отключить анонимный доступ и создание новых учетных записей.
Конфигурационный файл Grafana
Для тонкой настройки Grafana, можно использовать конфигурационный файл (по умолчанию /etc/grafana/grafana.ini). Здесь хранятся параметры, которые можно менять при необходимости. Рассмотрим основные блоки этого файла.
[paths]
Директория, в которой Grafana хранит базу данных sqlite3 и другие данные. Эта директория обычно задаётся в стартовом скрипте init.d.
Logs
Директория, в которой Grafana хранит логи. Эта директория обычно задаётся в стартовом скрипте init.d.
[server]
Порт, на котором будет доступен веб-интерфейс Grafana. По умолчанию номер порта 3000. Если нужно использовать порт 80, можно настроить переадресацию в iptables:
sudo iptables -t nat -A PREROUTING -p tcp —dport 80 -j REDIRECT —to-port 3000
Для переадресации можно также использовать веб-сервер Nginx или Apache.
Protocol
Протокол, по которому будет доступна Grafana. Варианты http или https.
Domain
Может использоваться только вместе с опцией root_url (см. ниже). Важно, если вы используете аутентификацию через GitHub или Google OAuth.
Enforce_domain
Переадресация на корректный домен, если заголовок хоста не соответствует домену. По умолчанию в значении false.
Root_url
Полный URL-адрес для доступа к Grafana через веб-браузер. Важно, если вы используете аутентификацию через GitHub или Google OAuth.
Static_root_path
Путь к директории, в которой находятся файлы HTML, JS и CSS.
Cert_file
Директория с файлом сертификата (если доступ к Grafana — https).
Cert_key
Директория с файлом ключа (если доступ к Grafana осуществляется по протоколу https).
[database]
Grafana нужна база данных для хранения пользователей, дашбордов и других данных. По умолчанию используется sqlite3, которая включена в дистрибутив Grafana.
Type
Поддерживаются mysql, postgres или sqlite3 на выбор.
Параметр применим только к базе данных sqlite3. Путь к файлу данных.
Host
Имя базы данных Grafana.
User
Имя пользователя базы данных (не применимо к sqlite3).
Password
Пароль пользователя базы данных (не применимо к sqlite3).
Ssl_mode
Применимо только к postgres. Доступны опции: disable, require или verify-full.
[security]
Отключение пользовательской иконки. Устанавливается в true для отключения. По умолчанию имеет значение false.
[users]
Устанавливается в false для предотвращения создания новых учетных записей действующими пользователями.
Allow_org_create
Устанавливается в false для предотвращения создания новых организаций действующими пользователями. По умолчанию имеет значение true.
Auto_assign_org
Устанавливается в true для автоматического добавления новых пользователей в основную организацию (id 1). Когда установлено в false, новые пользователи добавляются в новые организации, которые создаются автоматически.
Auto_assign_org_role
Роль новых пользователей будет привязана к основной организации.
[auth. anonymous]
Устанавливается в true для включения анонимного доступа. По умолчанию находится в значении false
Org_name
Устанавливает имя организации, которое будет использоваться для анонимных пользователей.
Когда установлено значение true (по умолчанию) http api будет принимать соединения с флагом basic authentication.
[auth. ldap]
Устанавливается в true для включения интеграции с LDAP (по умолчанию: false).
Config_file
Путь к конфигурационному файлу LDAP (по умолчанию: /etc/grafana/ldap.toml).
[auth. proxy]
Эта функция разрешает аутентифицироваться в обратном прокси.
Enabled
По умолчанию установлено в false.
Header_name
По умолчанию имя пользователя, но также может принимать значение адреса электронной почты.
Auto_sign_up
Устанавливается в значение true для включения автоматического входа пользователей, которые отсутствуют в Grafana DB. По умолчанию установлено значение true.
[session]
Валидные значения: memory, file, mysql, postgres. По умолчанию установлено значение file.
Provider_config
Эта опция должна быть сконфигурирована отдельно в зависимости от того, какой тип провайдера сессии установлен.
Cookie_name
Имя сессионного cookie в Grafana.
Cookie_secure
Устанавливается в true если Grafana находится только за HTTPS-прокси. По умолчанию установлено в значение false.
Session_life_time
Как долго длится сессия в секундах. По умолчанию 86400 секунд (24 часа).
[analytics]
Если вы хотите отслеживать активности в Grafana при помощи Google analytics, укажите ваш Universal Analytics ID. По умолчанию эта функция отключена.
[dashboards. json]
Если у вас есть система, которая автоматически строит дашборды из JSON-файлов, вы можете включить эту опцию, чтобы новые дашборды были доступны через поиск в Grafana.
Значение true или false. По умолчанию выключено.
Полный путь к директории, содержащей JSON-файлы с дашбордами.
Заключение
Мы рассмотрели подходы к установке, настройке и работе с Grafana. Этот популярный инструмент имеет большое сообщество разработчиков, которые поддерживают проект и разрабатывают новые плагины, дашборды и развивают продукт. У Grafana регулярно выходят обновления и улучшения, поэтому можно без опасений использовать этот инструмент в продакшн средах.
Работать с любым IT-проектом становится проще, если у администратора под рукой есть масса различных метрик и результатов мониторинга. Еще лучше, если получаемые данные отображаются в удобном для изучения виде – визуально. С этой целью применяют инструменты вроде Grafana – решение с открытым исходным кодом, предназначенное для сбора информации из разных источников и ее консолидации в виде визуальных отчетов.
Продукт поддерживает разные платформы – Windows, macOS, Linux (популярные сборки вроде Debian, Ubuntu, CentOS, Fedora, OpenSuse или RedHat). В качестве базы данных возможна работа с SQLite, , PostgreSQL. Выбор богатый, в большинстве случаев администратору не требуется адаптироваться к решению.
На примерах далее рассмотрим установку программы, ее базовые настройки, особенности работы с дашбордами.
Инсталляция Grafana на CentOS Stream
При аренде виртуальной машины или выделенного сервера на пользователь вправе устанавливать на удаленный компьютер любую операционную систему. Чаще это одна из распространенных сборок Linux, вроде CentOS или Ubuntu, поэтому в качестве примера и возьмем последние версии этих ОС. И будем считать, что платформа уже установлена, готова к инсталляции утилита Графана и другие прикладные программы.
1. Создадим новую конфигурацию официального репозитория:
2. Внесем в сгенерированный файл данные по переменным:
3. Проведем инсталляцию приложения:
sudo yum install grafana –y
4. Включим автозагрузку программы и запустим ее:
sudo systemctl enable grafana-serversudo systemctl start grafana-server
Инсталляция завершена, приложение готово к эксплуатации. Но перед этим желательно проверить его текущий статус. Выполним это командой:
После ввода на экране компьютера должно появиться сообщение:
grafana-server.service — Grafana instance Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
Оно означает, что продукт установлен, активен, находится в заводских настройках и готов к работе. Проверка нужна на случай, если предыдущий администратор уже работал с программой или на сервер была установлена какая-либо нестандартная сборка Linux, в которой уже был интегрирован целый перечень дополнительных утилит.
Инсталляция Grafana на Ubuntu
Процедура установки на Ubuntu та же – Grafana берется из официального репозитория и ставится на платформу после подготовки. Последняя заключается во внесении адреса нужного сайта в список доверенных, чтобы система не блокировала скачивание файлов.
После инсталляции и включения автозагрузки приложения остается проверить текущий статус:
Сходным образом процедура инсталляции Grafana выглядит и для Docker. В любом случае перед использованием его функционала требуется настройка брандмауэра IPTables или Firewalld, если их уже активировали (рекомендуется).
Рассмотрим команды на примере популярного сетевого экрана IPTables. В нем необходимо открыть доступ по сети к «стандартному» порту (для GrafanaPort 3000). Процедура будет включать добавление новых правил и перезагрузку сервиса для применения изменений.
Добавляем строку в раздел OUTPUT ACCEPT:
Остается проверить запуск программы с удаленного хоста, чтобы убедиться в открытии порта 3000.
Если администратор предпочитает пользоваться брандмауэром Firewalld, изменение конфигурации будет выглядеть так:
firewall-cmd —zone=public —add-port=3000/tcp —permanentsystemctl reload firewalld
Графана поддерживает подключение целого перечня источников данных – Prometheus, Graphite, OpenTSDB, InflusDB и пр. Полный перечень вариантов приведен в инструкции от разработчика, но этим возможности программы не ограничены. Пользователь может подключать различные Grafana Plugins – дополнения, расширяющие возможности мониторинга, например популярный плагин Zabbix Grafana Dashboard.
grafana-cli plugins install alexanderzobnin-zabbix-appsystemctl restart grafana-server
После перезагрузки приложения в подразделе Plugins раздела Configuration появится новый пункт Zabbix. Нужно кликнуть по кнопке Enabled, чтобы активировать новый функционал, после этого в меню Data Sources появится новый источник данных, который настраивается нажатием на Select. Та же схема применяется для других плагинов, например для Grafana PostgreSQL, который нужен для работы с одноименной базой данных, или Grafana ElasticsSearch
Работа с дашбордами
Основа работы программы Графана – дашборды, наборы панелей с визуальным отображением полученных данных. По умолчанию на главный экран выводится часть основной информации, но каждый пользователь настраивает систему «под себя». Для этого достаточно кликнуть на кнопку New Dashboard и создать новую панель нужного вида (и так по кругу, пока на экран не будут выведены все необходимые данные).
Grafana есть возможность включить отображение данных типа Logs, строчек лог-файлов из внешних источников. На выбор пользователя различные методы визуализации – графические и табличные, тепловые карты, гистограммы и т.д. Grafana Logs можно импортировать или экспортировать, чтобы не создавать каждый раз с нуля, а просто перенести с однажды грамотно настроенной системы.
В случае необходимости «тонкого» управления программой рекомендуется обратиться к подробной документации разработчика. Там приведена схема конфигурирования путем внесения различных параметров напрямую в файл Grafana.ini. При помощи такого способа администратор меняет папки для хранения логов, порт по умолчанию, другие настройки доступа, включая прокси, добавление и блокировку новых пользователей.
Программа Grafana представляет собой универсальный продукт для мониторинга событий. Чтобы хорошо разобраться в нем, есть смысл поэкспериментировать с внешним видом дашбордов или их сочетанием, опробовать «ручной режим» конфигурирования путем внесения изменений в файл INI. Плюс стоит знакомиться с плагинами сторонних разработчиков, они заметно расширяют перечень функций приложения. Проект постоянно развивается, поэтому этот инструмент мониторинга будет оставаться в топе популярных.
В этой статье мы расскажем об инструменте мониторинга Grafana и дадим инструкцию по его установке на сервер с Linux Ubuntu.
Grafana ― это инструмент мониторинга и анализа данных с открытым исходным кодом. При помощи него можно визуализировать данные из разных источников. Вот полный список источников, которые Grafana официально поддерживает:
Но это не всё, с чем умеет работать инструмент. Начиная с версии 3.0, в Grafana источники данных можно расширить при помощи плагинов. Нужный плагин вы можете найти на официальном сайте.
Grafana получает данные из источников при помощи запросов. У каждого источника своя структура запросов. Данные из разных источников можно комбинировать и визуализировать на одном экране (dashboard) при помощи графиков, таблиц, диаграмм и т.д.
Полученные данные можно использовать в разных целях: например, отслеживать состояние серверов и контейнеров или собирать важные бизнес-метрики. На одном экране можно вывести как процент нагрузки на процессор, так и текущее количество посетителей на сайте, а при помощи графика можно проанализировать зависимость одного от другого.
На официальном сайте Grafana русская документация пока что отсутствует. Официальная русификация интерфейса в ближайшее время тоже не планируется. Судя по ответам на вопрос в GitHub Grafana, русский интерфейс появится не скоро.
Теперь перейдём к установке и настройке.
Как установить Grafana на Ubuntu
Готово, вы установили Grafana.
Как войти в панель управления Grafana
Готово, вы вошли в панель управления Grafana.

