Развёртывание Grafana с помощью Helm-чартов
Эта тема включает инструкции по установке и запуску Grafana на Kubernetes с помощью Helm-чартов.
Helm — это инструмент командной строки с открытым исходным кодом, используемый для управления приложениями Kubernetes. Это выпускной проект в CNCF Landscape.
Note
Сообщество Grafana с открытым исходным кодом предлагает Helm-чарты для запуска её на Kubernetes. Обратите внимание, что код предоставляется без каких-либо гарантий. Если вы столкнётесь с какими-либо проблемами, вы можете сообщить о них в поддерживаемом сообществом репозитории GitHub.
Посмотрите это видео, чтобы узнать больше об установке Grafana с помощью Helm-чартов:
Перед началом
Чтобы установить Grafana с помощью Helm, убедитесь, что вы выполнили следующее:
- Установите сервер Kubernetes на вашу машину. Информацию об установке Kubernetes см. в разделе Установка Kubernetes.
- Установите последнюю стабильную версию Helm. Информацию об установке Helm см. в разделе Установка Helm.
Установка Grafana с помощью Helm
При установке Grafana с помощью Helm вы выполняете следующие задачи:
-
Настройка репозитория Grafana Helm, который предоставляет пространство, в котором вы установите Grafana.
-
Развёртывание Grafana с помощью Helm, которое устанавливает Grafana в пространство имён.
-
Доступ к Grafana, который предоставляет шаги для входа в Grafana.
Настройка репозитория Grafana Helm
Чтобы настроить репозиторий Grafana Helm так, чтобы вы загрузили правильные Helm-чарты Grafana на вашу машину, выполните следующие шаги:
-
Чтобы добавить репозиторий Grafana, используйте следующий синтаксис команды:
helm repo add <DESIRED-NAME> <HELM-REPO-URL>Следующий пример добавляет Helm-репозиторий
grafana.helm repo add grafana-community https://grafana-community.github.io/helm-charts -
Выполните следующую команду, чтобы проверить, что репозиторий был добавлен:
helm repo listПосле добавления репозитория вы должны увидеть вывод, похожий на следующий:
NAME URL grafana-community https://grafana-community.github.io/helm-charts -
Выполните следующую команду, чтобы обновить репозиторий для загрузки последних Helm-чартов Grafana:
helm repo update
Развёртывание Helm-чартов Grafana
После настройки репозитория Grafana Helm вы можете начать развёртывать его в вашем кластере Kubernetes.
При развёртывании Helm-чартов Grafana используйте отдельное пространство имён вместо того, чтобы полагаться на пространство имён по умолчанию. В пространстве имён по умолчанию могут уже работать другие приложения, что может привести к конфликтам и другим потенциальным проблемам.
Когда вы создаёте новое пространство имён в Kubernetes, вы можете лучше организовывать, распределять и управлять ресурсами кластера. Дополнительную информацию см. в разделе Пространства имён.
-
Чтобы создать пространство имён, выполните следующую команду:
kubectl create namespace monitoringВы увидите вывод, похожий на этот, что означает, что пространство имён успешно создано:
namespace/monitoring created -
Найдите официальный репозиторий
grafana-community/grafana, используя команду:helm search repo <repo-name/package-name>Например, следующая команда предоставляет список Helm-чартов Grafana, из которых вы установите последнюю версию чарта Grafana.
helm search repo grafana-community/grafana -
Выполните следующую команду, чтобы развернуть Helm-чарт Grafana внутри вашего пространства имён.
helm install my-grafana grafana-community/grafana --namespace monitoringГде:
helm install: устанавливает чарт, развёртывая его в кластере Kubernetesmy-grafana: логическое имя чарта, которое вы указалиgrafana-community/grafana: имя репозитория и пакета для установки--namespace: пространство имён Kubernetes (то естьmonitoring), в котором вы хотите развернуть чарт
-
Чтобы проверить статус развёртывания, выполните следующую команду и убедитесь, что в столбце STATUS появилось
deployed:helm list -n monitoringВы должны увидеть вывод, похожий на следующий:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION my-grafana monitoring 1 2024-01-13 23:06:42.737989554 +0000 UTC deployed grafana-6.59.0 10.1.0 -
Чтобы проверить общий статус всех объектов в пространстве имён, выполните следующую команду:
kubectl get all -n monitoringЕсли вы столкнётесь с ошибками или предупреждениями в столбце STATUS, проверьте журналы и обратитесь к разделу «Устранение неполадок» этой документации.
Доступ к Grafana
В этом разделе описаны шаги, которые вы должны выполнить, чтобы получить доступ к Grafana через веб-браузер.
-
Выполните следующую команду
helm get notes:helm get notes my-grafana -n monitoringЭта команда выведет примечания к чарту. Вы увидите вывод
NOTES, который предоставляет полные инструкции о том:- Как декодировать пароль для входа для учётной записи администратора Grafana
- Как получить доступ к службе Grafana через веб-браузер
-
Чтобы получить пароль администратора Grafana, выполните команду следующим образом:
kubectl get secret --namespace monitoring my-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echoОна выдаст вам декодированный вывод строки
base64, который является паролем для учётной записи администратора. -
Сохраните декодированный пароль в файл на вашей машине.
-
Чтобы получить доступ к службе Grafana в веб-браузере, выполните следующую команду:
export POD_NAME=$(kubectl get pods --namespace monitoring -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=my-grafana" -o jsonpath="{.items[0].metadata.name}")Приведённая выше команда экспортирует переменную оболочки с именем
POD_NAME, которая сохранит полное имя развёрнутого pod. -
Выполните следующую команду переадресации портов, чтобы направить pod Grafana на прослушивание порта
3000:kubectl --namespace monitoring port-forward $POD_NAME 3000Дополнительную информацию о переадресации портов см. в разделе Использование переадресации портов для доступа к приложениям в кластере.
-
Перейдите на
127.0.0.1:3000в вашем браузере. -
Появится страница входа Grafana.
-
Чтобы войти, введите
adminв качестве имени пользователя. -
В качестве пароля вставьте тот, который вы сохранили в файл после декодирования ранее.
Настройка конфигурации Grafana по умолчанию
Helm — популярный менеджер пакетов для Kubernetes. Он объединяет манифесты ресурсов Kubernetes для повторного использования в разных средах. Эти манифесты написаны на языке шаблонов, позволяя вам предоставлять значения конфигурации через файл values.yaml или встроенно с помощью Helm, чтобы заменить заполнители в манифесте там, где должны находиться эти конфигурации.
Файл values.yaml позволяет настраивать конфигурацию чарта, указывая значения для различных параметров, таких как версии образов, лимиты ресурсов, конфигурации служб и так далее.
Изменяя значения в файле values.yaml, вы можете адаптировать развёртывание Helm-чарта к вашим конкретным требованиям, используя команды helm install или upgrade. Дополнительную информацию о настройке Helm см. в разделе Файлы значений.
Загрузка файла values.yaml
Чтобы внести любые изменения конфигурации, загрузите файл values.yaml из репозитория Grafana Helm Charts:
https://github.com/grafana-community/helm-charts/blob/main/charts/grafana/values.yaml
Note
В зависимости от требований вашего случая использования вы можете использовать один файл YAML, содержащий ваши изменения конфигурации, или создать несколько файлов YAML.
Включение постоянного хранилища (рекомендуется)
По умолчанию постоянное хранилище отключено, что означает, что Grafana использует эфемерное хранилище, и все данные будут храниться в файловой системе контейнера. Эти данные будут потеряны, если контейнер остановлен, перезапущен или если контейнер падает.
Настоятельно рекомендуется включить постоянное хранилище в Helm-чартах Grafana, если вы хотите гарантировать, что ваши данные сохраняются и не теряются в случае перезапусков или сбоев контейнера.
Включение постоянного хранилища в Helm-чартах Grafana обеспечивает надёжное решение для запуска Grafana в продакшен-средах.
Чтобы включить постоянное хранилище в Helm-чартах Grafana, выполните следующие шаги:
-
Откройте файл
values.yamlв вашем любимом редакторе. -
Отредактируйте значения и в разделе
persistenceизмените флагenableсfalseнаtrue....... ............ ...... persistence: type: pvc enabled: true # storageClassName: default ....... ............ ...... -
Выполните следующую команду
helm upgrade, указав файлvalues.yaml, чтобы изменения вступили в силу:helm upgrade my-grafana grafana-community/grafana -f values.yaml -n monitoring
Теперь PVC будет хранить все ваши данные, такие как дашборды, источники данных и так далее.
Установка плагинов (например, приложение Zabbix, панель Clock и т. д.)
Вы можете устанавливать плагины в Grafana из официальной и community страницы плагинов. Эти плагины позволяют вам добавлять новые типы визуализаций, источники данных и приложения, чтобы помочь вам лучше визуализировать ваши данные.
Grafana в настоящее время поддерживает три типа плагинов: панель, источник данных и приложение. Дополнительную информацию об управлении плагинами см. в разделе Управление плагинами.
Чтобы установить плагины в Helm-чартах Grafana, выполните следующие шаги:
-
Откройте файл
values.yamlв вашем любимом редакторе. -
Найдите строку
plugins:и в этом разделе определите плагины, которые вы хотите установить........ ............ ...... plugins: # here we are installing two plugins, make sure to keep the indentation correct as written here. - alexanderzobnin-zabbix-app - grafana-clock-panel ....... ............ ...... -
Сохраните изменения и используйте команду
helm upgrade, чтобы установить эти плагины:helm upgrade my-grafana grafana-community/grafana -f values.yaml -n monitoring -
Перейдите на
127.0.0.1:3000в вашем браузере. -
Войдите с учётными данными администратора, когда появится страница входа Grafana.
-
Перейдите в UI -> Administration -> Plugins
-
Найдите указанные выше плагины, и они должны быть помечены как установленные.
Настройка приватного центра сертификации (CA)
Во многих корпоративных сетях TLS-сертификаты выдаются приватным центром сертификации и не доверены по умолчанию (с использованием предоставленной цепочки доверия ОС).
Если вашему экземпляру Grafana нужно взаимодействовать со службами, предоставляющими сертификаты, выданные этими приватными CA, то вам нужно убедиться, что Grafana доверяет корневому сертификату.
Вам может потребоваться настроить это, если вы:
- имеете плагины, требующие связности с другими самостоятельно размещёнными системами. Например, если вы установили плагины Grafana Enterprise Metrics, Logs или Traces (GEM, GEL, GET), и ваш кластер GEM (или GEL/GET) использует приватный сертификат.
- хотите подключиться к источникам данных, которые слушают HTTPS с приватным сертификатом.
- используете бэкенд-базу данных для постоянного хранения или службу кэширования, которая использует приватные сертификаты для шифрования при передаче.
В некоторых случаях вы можете указать самоподписанный сертификат внутри Grafana (как в некоторых источниках данных) или выбрать пропуск проверки TLS-сертификата (это не рекомендуется, если только это не абсолютно необходимо).
Простое решение, которое должно работать по всему вашему экземпляру (плагины, источники данных и бэкенд-подключения), — добавить ваш самоподписанный сертификат CA в ваше развёртывание Kubernetes.
-
Создайте ConfigMap, содержащий сертификат, и разверните его в вашем кластере Kubernetes
# grafana-ca-configmap.yaml --- apiVersion: v1 kind: ConfigMap metadata: name: grafana-ca-cert data: ca.pem: | -----BEGIN CERTIFICATE----- (rest of the CA cert) -----END CERTIFICATE-----kubectl apply --filename grafana-ca-configmap.yaml --namespace monitoring -
Откройте файл Helm
values.yamlв вашем любимом редакторе. -
Найдите строку
extraConfigmapMounts:и в этом разделе укажите дополнительный ConfigMap, который вы хотите смонтировать........ ............ ...... extraConfigmapMounts: - name: ca-certs-configmap mountPath: /etc/ssl/certs/ca.pem subPath: ca.pem configMap: grafana-ca-cert readOnly: true ....... ............ ...... -
Сохраните изменения и используйте команду
helm upgrade, чтобы обновить ваше развёртывание Grafana и смонтировать новый ConfigMap:helm upgrade my-grafana grafana-community/grafana --values values.yaml --namespace monitoring
Устранение неполадок
Этот раздел включает советы по устранению неполадок, которые могут оказаться полезными при развёртывании Grafana на Kubernetes через Helm.
Сбор журналов
Важно просматривать журналы сервера Grafana при устранении любых проблем.
Чтобы проверить журналы Grafana, выполните следующую команду:
# dump Pod logs for a Deployment (single-container case)
kubectl logs --namespace=monitoring deploy/my-grafana
Если в развёртывании работает несколько контейнеров, выполните следующую команду, чтобы получить журналы только для развёртывания Grafana:
# dump Pod logs for a Deployment (multi-container case)
kubectl logs --namespace=monitoring deploy/grafana -c my-grafana
Дополнительную информацию о доступе к журналам приложений Kubernetes см. в разделах Pods и Deployments.
Повышение уровня детализации журналов
По умолчанию уровень журнала Grafana установлен в info, но вы можете повысить его до режима debug, чтобы получить информацию, необходимую для диагностики и устранения проблемы. Дополнительную информацию об уровнях журнала Grafana см. в разделе Настройка журналов.
Чтобы повысить уровень журнала до режима debug, выполните следующие шаги:
-
Откройте файл
values.yamlв вашем любимом редакторе и найдите строкуgrafana.ini, и там вы найдёте раздел о режиме журналирования. -
Добавьте level:
debugсразу под строкойmode: console# This is the values.yaml file ..... ....... .... grafana.ini: paths: data: /var/lib/grafana/ ..... ....... .... mode: console level: debugУбедитесь, что уровень отступа остаётся тем же, иначе это не сработает.
-
Теперь, чтобы применить это, выполните команду
helm upgradeследующим образом:helm upgrade my-grafana grafana-community/grafana -f values.yaml -n monitoring -
Чтобы проверить это, откройте интерфейс Grafana в браузере, используя предоставленный
IP:Port. Появится страница входа Grafana. -
Чтобы войти в Grafana, введите
adminв качестве имени пользователя и вставьте пароль, который был декодирован ранее. Перейдите в Server Admin > Settings и затем найдите log. Вы должны увидеть уровень в режимеdebug.
Сброс секретов администратора Grafana (учётные данные для входа)
По умолчанию учётные данные для входа для учётной записи супер-администратора генерируются через secrets. Однако это можно легко изменить. Чтобы добиться этого, выполните следующие шаги:
-
Отредактируйте файл
values.yamlи найдите строкуadminPassword. Там вы можете определить новый пароль:# Administrator credentials when not using an existing secret (see below) adminUser: admin adminPassword: admin -
Затем используйте команду
helm upgradeследующим образом:helm upgrade my-grafana grafana-community/grafana -f values.yaml -n monitoringЭта команда теперь сделает ваши учётные данные для входа супер-администратора
adminкак для имени пользователя, так и для пароля. -
Чтобы проверить это, войдите в Grafana, введите
adminкак для имени пользователя, так и для пароля. Вы должны иметь возможность войти как супер-администратор.
Удаление развёртывания Grafana
Чтобы удалить развёртывание Grafana, выполните команду:
helm uninstall <RELEASE-NAME> <NAMESPACE-NAME>
helm uninstall my-grafana -n monitoring
Это удаляет все объекты из данного пространства имён monitoring.
Если вы хотите удалить пространство имён monitoring, выполните команду:
kubectl delete namespace monitoring