Инструменты Grafana#
В DropApp поставляется две версии опционального компонента Grafana - 10.4.9 и 11.4.0.
Grafana - инструмент для визуализации данных из различных источников. Используется для представления в графическом виде данных временных рядов и текстовых данных и обладает высокой производительностью при работе с большими объемами данных.
Grafana поддерживает систему одноразовых паролей и интеграцию с различными источниками аутентификации.
Grafana взаимодействует со следующими источниками данных:
Prometheus;
Graphite;
MySQL;
InfluxDB;
Elasticsearch;
Loki и т.д.
Grafana имеет встроенные настраиваемые панели, которые можно использовать сразу после установки. Панели Grafana обладают широкими возможностями масштабирования и перемещения элементов, а также поддержку графиков и таблиц. По умолчанию представлены следующие типы графических панелей Grafana:
Graph– панель с графиками с возможностью комбинировать несколько метрик на одной панели;Gauge– панель в формате спидометра, есть возможность ограничить верхнее значение на шкале;Bar Gauge– панель с возможностью отображения метрик на вертикальной гистограмме;Table– панель с представлением в виде таблицы, на которой можно отображать значения нескольких метрик;Flame- панель, используемая для визуализации данных профилирования из Pyrscope и других источников данных непрерывного профилирования.Text– панель для отображения произвольного текста (подписи).
Помимо приведенных выше, для инструмента визуализации существуют и другие дополнительные панели, доступные в качестве плагинов.
Функции визуализации графиков Grafana:
многослойный режим: возможно отображение многослойного представления любого символа на графике Flame. В многослойном представлении все вызывающие объекты отображаются вверху, а все вызываемые объекты символа — внизу. Это полезно при необходимости видеть контекст символа;
переключение цветовой схемы: возможно переключение цветовой схемы между цветовым градиентом на основе относительного значения символа или имени пакета символа;
переключение выравнивания имен символов. Символы с длинными именами может быть трудно отличить, если они имеют одинаковый префикс. Grafana позволяет выравнивать текст по левому или правому краю для наблюдения важной части имени символа;
улучшенная навигация: доступно выделение символа или включение для него многослойного режима из таблицы. Кроме того, новая строка состояния поверх графика показывает, какие представления включены.
Также Grafana поддерживает функцию отключения значения в визуализациях временных рядов, трендов и временных шкал состояния.
В Grafana реализована функция редактора виджетов. Чтобы увидеть редактор виджетов в Grafana, включите переключатель функции vizAndWidgetSplit.
Grafana обладает функцией связывания строк журнала Loki в Explore, позволяющей быстро переходить к конкретным записям журнала для точного анализа. Нажав кнопку Copy link для строки журнала, возможно создать и скопировать короткий URL-адрес, который обеспечивает прямой доступ к конкретной записи журнала в абсолютном диапазоне времени. При переходе по ссылке Grafana автоматически прокручивает соответствующую строку журнала и выделяет ее, что позволяет легко идентифицировать и сосредоточиться на соответствующей информации.
Grafana Correlations - функция, позволяющая устанавливать связи между любыми запросами к источникам данных и передавать данные, такие как namespace, host или значения меток.
Аутентификация и авторизация:
No basic role- базовая роль без разрешений. Позволяет настроить индивидуальные разрешения RBAC для сервисных аккаунтов или пользователей;поддержка анонимного доступа для удобного контроля и мониторинга анонимного использования;
удобный пользовательский интерфейс для настройки одноэтапной аутентификации (SSO) и Terraform ресурс для настройки OAuth-провайдеров.
В Grafana доступны опции для включения всей таблицы данных в PDF-отчеты, что значительно улучшает опыт создания отчетов.
Установка Grafana#
Для установки Grafana выполните следующие действия:
Создайте namespace для мониторинга:
kubectl create namespace monitoringСоздайте файл манифеста
grafana.yaml:grafana.yaml
apiVersion: v1 kind: PersistentVolume metadata: name: grafana-pv labels: type: local spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce local: path: /mnt nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - worker2 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: grafana-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: grafana name: grafana spec: selector: matchLabels: app: grafana template: metadata: labels: app: grafana spec: securityContext: fsGroup: 472 supplementalGroups: - 0 containers: - name: grafana image: <path>/2.1.0/dapp-grafana-9-5/grafana:9.5.17 # Адрес репозитория приведен в качестве примера и должен быть заменен на актуальный. imagePullPolicy: IfNotPresent ports: - containerPort: 3000 name: http-grafana protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /robots.txt port: 3000 scheme: HTTP initialDelaySeconds: 10 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 2 livenessProbe: failureThreshold: 3 initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 1 tcpSocket: port: 3000 timeoutSeconds: 1 resources: requests: cpu: 250m memory: 750Mi volumeMounts: - mountPath: /var/lib/grafana name: grafana-pv volumes: - name: grafana-pv persistentVolumeClaim: claimName: grafana-pvc --- apiVersion: v1 kind: Service metadata: name: grafana spec: ports: - port: 3000 protocol: TCP targetPort: http-grafana nodePort: 31000 selector: app: grafana sessionAffinity: None type: NodePortВыполните команду:
kubectl apply -f ./grafana.yamlПроверьте статус выполнения команды из шага 3:
kubectl rollout status deployment.apps/grafana -n monitoringПроверьте, что в выводе содержится статус
successfully rolled out.Перенаправьте порт для сервиса Grafana на
localhost:kubectl port-forward svc/grafana -n monitoring --address localhost 3000:3000Выполните команду:
curl -L localhost:3000Откройте в браузере
http://localhost:3000и выполните аутентификацию и авторизацию в Grafana с логином и паролем, по умолчаниюadmin/admin.Убедитесь, что на следующей странице есть поле
newPasswordи смените пароль.
Сценарии использования Grafana#
Совместная работа с VictoriaMetrics#
Для данного сценария необходимо установить инструменты VictoriaMetrics и выполнить шаги 14-20 в соответствии со сценариями настоящего руководства администратора, раздел Victoriametrics.
Добавление источника данных посредством web-интерфейса#
Добавление источника данных предшествует созданию панели мониторинга.
Примечание
Добавлять источники данных могут только пользователи с ролью администратора кластера.
Чтобы добавить источник данных, выполните последовательность:
Нажмите
Connectionsв меню слева.Введите имя конкретного источника данных в диалоговом окне поиска.
Отфильтруйте по источнику данных
Data source, чтобы видеть только источники данных.Нажмите источник данных, который необходимо добавить.
Настройте источник данных, следуя инструкциям, специфичным для этого источника данных.
Настройте разрешения для источника данных, чтобы разрешить или запретить определенным пользователям возможность запрашивать или редактировать источник данных. Конфигурация каждого источника данных включает вкладку «Разрешения», на которой возможно ограничение разрешения источника данных определенными пользователями, командами или ролями.
Совместная работа с Jaeger#
Предварительные условия совместной работы с Jaeger#
Grafana поставляется со встроенной поддержкой Jaeger, которая обеспечивает сквозную распределенную трассировку. В этом разделе описываются конфигурация и запросы, специфичные для источника данных Jaeger.
Добавление источника данных в Grafana приведено в сценарии Совместная работа с VictoriaMetrics. Добавлять источники данных могут только пользователи с ролью администратора DropApp. Администратор также может настроить источник данных через YAML с помощью системы обеспечения Grafana.
Добавив источник данных, настройте его так, чтобы пользователи экземпляра Grafana могли создавать запросы в редакторе запросов. Когда пользователи создают информационные панели и используют Explore.
Настройка источника данных#
Чтобы настроить основные параметры источника данных, выполните следующие действия:
Нажмите
Подключенияв меню слева.В разделе
Ваши подключениянажмитеИсточники данных.Введите Jaeger в строку поиска.
Выберите Jaeger. Отобразится вкладка
Настройки источника данных.Установите основные параметры конфигурации источника данных:
Имя |
Описание |
|---|---|
Имя |
Устанавливает имя, которое используется для ссылки на источник данных в панелях и запросах |
По умолчанию |
Определяет, будет ли этот источник данных предварительно выбран для новых панелей |
URL-адрес |
Устанавливает URL-адрес экземпляра Jaeger, например http://localhost:16686 |
Базовая аутентификация |
Включает базовую аутентификацию для источника данных Jaeger |
Пользователь |
Определяет имя пользователя для базовой аутентификации |
Пароль |
Определяет пароль для базовой аутентификации |
Отличия Grafana 11.4.0 от Grafana 10.4.9#
Оповещения#
Отключена устаревшая система оповещений, Grafana v11 не будет запущена, если настройки не будут обновлены для работы с новой системой оповещений. Помимо этого, начиная с Grafana v11, будет невозможен переход с устаревшей системы оповещений на новую: Grafana v10.4.x последняя версия, поддерживающая миграцию, поэтому сначала необходимо выполнить миграцию на новую систему оповещений, а после выполнить обновление до Grafana v11.
Добавлена страница настроек, которая позволяет получить полное представление о том, куда перенаправляются оповещения, управляемые Grafana:
Возможно создание правил Grafana для управления менеджерами оповещений без необходимости навигации и редактирования источников данных.
Возможно управление моментальными снимками версий Altermanager, что позволит администраторам откатывать изменения или ошибки в конфигурации Altermanager.
Добавлен механизм визуального сравнения, который позволит увидеть, какие изменения были внесены.
Добавлена опция выбора шаблонов оповещений через добавление их в селектор шаблонов в форму Contact Points.
Добавлена возможность просмотра истории всех событий оповещений, сгенерированных правилами пользователя.
Доступна функция приостановки и возобновления оценки Alert rule в списке Alert rule и в разделе Details view.
Упрощено получение правил группы. Единственными условиями для каталога, в котором содержится группа, являются
alert.rules:readиfolders:read. Для предварительного просмотра Alert rule по-прежнему требуется разрешениеdatasources:query, независимо от Alert rule и разрешений для каталогов.Добавлена функция отключения звука в списке Alert rule или на странице Detail. Alert rule применяются к одному правилу, а разрешения на чтение, создание, обновление или удаление привязаны к разрешениям пользователя для этого правила.
Удалена поддержка устаревших атрибутов в отчетах, связанных со старым форматом планирования, электронной почтой и информационной панелью.
Плагины и фреймворки#
Интерфейс Vector признан устаревшим. При его использовании возникают ошибки TypeScript во время сборки. Рекомендовано заменить его обычным массивом. Плагины, которые скомпилированы для более старых версий и которые зависят от вызова
get/set, продолжат работать.Отключена по умолчанию поддержка фреймворка AngularJS для всех локальных и облачных экземпляров Grafana. Это предотвращает загрузку любого источника данных или панели визуализации.
Журналы#
Добавлена функциональность для фильтрации журналов и закрепления их в структуре содержимого Explore. Explore - инструмент для запроса, анализа и агрегирования данных в Grafana.
Функциональность Filtering Logs дополнена автоматическим выводом всех уровней журнала, добавлена возможность фильтрации по уровню журнала. Для выбора нескольких фильтров необходимо:
Удерживать клавишу Command на клавиатуре Mac.
Удерживать клавишу Control на клавиатуре Windows.
Функциональность Pinning Logs дополнена функцией закрепления журналов к структуре содержимого Explore. Для этого:
Наведите курсор на журнал на панели журналов.
Нажмите Pin to content outline.
Grafana поддерживает интеграцию с различными системами логирования, включая Loki. Для использования этой функции необходимо настроить подключение к существующему экземпляру Loki.
Добавлена функция в Explore для поиска в журналах Loki logs. Для использования функции необходимо в разделе Options в подразделе Direction выбрать функцию Forward.
Доступны в облачном режиме и уже установлены по умолчанию журналы Explorer.
Добавлена функция создания правил записи Alert rule для заблаговременного вычисления часто используемых или сложных для вычислений выражений, а также для сохранения результатов в виде нового набора временных рядов.
Ролевая модель и доступы#
Добавлена проверка на соответствие ID-токена HD-параметра и списка разрешенных доменов, в случае, если HD-параметр не соответствует списку разрешенных доменов, то в доступе к Grafana будет отказано, изменен способ ссылок на информационные панели, URL-адрес которых генерируется при просмотре отдельной повторяющейся панели.
Дополнена функциональность открытого исходного кода Grafana для управления отключениями с помощью Role-Based Access Control (RBAC). Появилась возможность выбора пользователей, которые могут создавать, редактировать, просматривать настройки, используя следующие разрешения:
Пользователи с правами
alert.silences:create permission, область действия которых ограничена каталогом, могут отключать доступ к правилам, содержащимся в этом каталоге и его подкаталоге.Пользователи с правами
alert.silences:read permission, область действия которых ограничена каталогом, могут просматривать ограничения на чтение правил, содержащихся в этом каталоге и его подкаталоге, а также общие ограничения на чтение.Пользователи с правами
alert.silences:write permission, область действия которых ограничена каталогом, могут отменять и повторно вводить ограничения на запись правил, содержащихся в этом каталоге и его подкаталогов.
Добавлена функция поддержки запросов между аккаунтами Metric Insights для AWS Cloudwatch Plugin. Функция позволяет создавать SQL-запросы для мониторинга нескольких учетных записей в одном регионе AWS Cloudwatch. Полученные результаты можно сгруппировать по идентификатору учетной записи, выбрав Account ID в опции Group By. Для более сложных запросов доступна функция переключения в редактор кода для ручного редактирования запроса.
Обновлена форма SALM: поля закрытого ключа и сертификата больше не являются обязательными. Для настройки данной функции необходимо отказаться от использования подписанных запросов. Для генерации нового сертификата и закрытого ключа необходимо нажать кнопку Sign requests на странице Generate key and certificate.
Доступна аутентификация в источнике данных GitHub через приложение GitHub, которое является альтернативой personal access tokens (PATs).
Добавлена функция отображения настраиваемых баннеров в интерфейсе Grafana. По умолчанию создание баннеров доступно только администраторам, но доступ на других пользователей возможно добавить через Role-based access control. Для использования баннера необходимо:
Включить
notificationBanner;Перейти в раздел Administrator;
Перейти в раздел General;
Выбрать Announcemenr banner.
Плагины могут использовать Grafana’s role based access control для определения собственных ролей и разрешения для управления доступам к своим маршрутам. Для этого пользователю необходимо добавить раздел
rolesвplugin.json. Grafana автоматически зарегистрирует эти роли и назначит их соответствующим базовыми ролям:Viewer,Editor,Admin, иGrafana Admin.Добавлена функция для управления точками подключения, временем отключения звука и шаблонами уведомлений через Role-Based Access Control (RBAC).