Установка Grafana на Kubernetes для мониторинга кластера

Установка Grafana на Kubernetes для мониторинга кластера

 

Grafana — это инструмент панели управления с открытым исходным кодом, который можно использовать для отображения показателей различных систем. Его можно интегрировать с различными источниками данных, такими как Prometheus, InfluxDB Stackdriver и т. Д.

Grafana использует данные временных рядов для инфраструктуры и приложений (таких как использование дискового ввода-вывода, ЦП и память), которые сначала загружаются в инструмент анализа, например Prometheus, а затем анализируются.

В этом посте объясняется, как настроить панель управления Grafana в Kubernetes, используя Prometheus в качестве инструмента анализа данных.

Следующие шаги помогут нам настроить рабочий экземпляр Grafana в существующем кластере Kubernetes.

После установки и полной работоспособности кластера Kubernetes переходите к следующим шагам настройки.

 

Шаг 1.  Разверните сервис Grafana в Kubernetes

Создайте новый проект для развертывания:

Create new project for the deployment:

$ kubectl create namespace monitoring
namespace/monitoring created

Разверните сервис Grafana в только что созданном пространстве имен.

$ kubectl create deployment grafana -n monitoring --image=docker.io/grafana/grafana:latest
deployment.apps/grafana created

Это развертывает Grafana в кластере и запускает его. Через несколько секунд вы можете проверить, был ли развернут образ, используя:

$ kubectl get deployments -n monitoring

Результат будет примерно таким:

$ kubectl get deployments -n monitoring
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
grafana   1/1     1            1           21s

Шаг 2 Предоставьте Grafana Service с помощью NodePort.

Мы должны предоставить сервис grafana через NodePort, поскольку в настоящее время он доступен только с использованием ClusterIP.
Раскройте развертывание графаны с помощью службы NodePort с помощью следующей команды:

 

$ kubectl -n monitoring expose deployment grafana --type="NodePort" --port 3000
service/grafana exposed

Это создает службу и предоставляет порт 3000 , порт графаны по умолчанию.

Проверьте, была ли предоставлена ​​служба, с помощью следующей команды:

$ kubectl get service -n monitoring
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
grafana      NodePort    10.96.174.231   <none>        3000:32150/TCP   9s

Мы используем describe service команду, чтобы определить, какой порт открыт для внешнего доступа.

root@kube-master:~# kubectl describe service grafana
Name:                     grafana
Namespace:                default
Labels:                   app=grafana
Annotations:              <none>
Selector:                 app=grafana
Type:                     NodePort
IP:                       10.152.183.50
Port:                     <unset>  3000/TCP
TargetPort:               3000/TCP
NodePort:                 <unset>  32150/TCP
Endpoints:                10.1.196.7:3000
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

Grafana теперь доступна для порта 32150 и может быть доступна через этот порт извне.

Шаг 3. Доступ к веб-панели Grafana.

Теперь вы можете открыть панель управления Grafana в браузере, http://<master_IP>:NodePort.например:

http://172.21.200.11:32150

Откроется страница входа в Grafana. Имя пользователя и пароль по умолчанию для Grafana:admin/admin

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

Нам нужно протестировать наш экземпляр Grafana, чтобы узнать, работает ли он должным образом. Самый простой метод тестирования — использовать метод TestData DB, который предоставляет образец визуализированных данных.

Щелкните вкладку «Создать свой первый источник данных», затем выберите «База данных TestData». Нажмите «Сохранить и проверить», как показано ниже.

Нажмите « Создать новую панель мониторинга», чтобы создать панель.

Чтобы увидеть панель с визуализированными данными, нажмите «тепловая карта» или «график».

Для различных источников данных доступно множество готовых шаблонов Grafana. Эти шаблоны можно использовать для создания удобных информационных панелей с предварительно созданными функциями, подходящими для вашей среды.

 

Следующие шаги помогут нам отслеживать наш кластер Kubernetes с помощью только что развернутого экземпляра Grafana.

1. Получите идентификатор шаблона из общедоступного шаблона grafana, как показано:

2.  Выберите опцию Импорт на панели инструментов Grafana.

3. Введите идентификатор панели инструментов, полученный от Grafana.

4. Нажмите кнопку «Загрузить»:

5. Нажмите «Импорт», чтобы импортировать информационную панель. Это приведет к перенаправлению на панель управления с показателями, отображаемыми, как в примере ниже:

Чтобы получить больше метрик в кластере кубернетов, вам необходимо интегрировать экспортеры, такие как Prometheus и Kube State Metrics.

Об этом мы поговорим в других статьях на этом сайте.

Заключение

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