Установка 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 — очень легкий, но мощный инструмент, когда дело доходит до информационных панелей. Он может быть интегрирован с несколькими инструментами мониторинга и может быть очень полезен для визуализации различных рабочих нагрузок в разных сценариях. Сюда входят облачные системы, сетевые среды и контейнеры.