Breadcrumbs

Устанoвка мониторинга и логирования

В этом документе приведены инструкции по установке компонентов мониторинга и логирования в кластере Kubernetes.

Добавление сервера под мониторинг и логирование в кластер Kubernetes

Для установки компонентов мониторинга и логирования в кластере Kubernetes необходимо использовать отдельный хост Виртуальная машина 3 (ВМ3), оснащенный локальным диском для хранения данных мониторинга и логирования.

Мониторинг и логирование состоят из следующих ключевых компонентов:

  • Grafana

  • InfluxDB

  • Prometheus

  • Loki

  • Fluent Bit

Для добавления сервера мониторинга на кластер Kubernetes, подготовьте хост и установите Ubuntu Server 22.04 LTS.

Подготовка хоста

Подготовьте хост ВМ3 со следующими характеристиками:

  • Процессор - 8 ядер

  • ОЗУ - 32 ГБ

  • Диск1: 100ГБ (sda), системный диск

  • Диск2: 500ГБ (sdb), для хранения данных мониторинга и логирования

  • 1 vNIC, IP-адрес

  • ОС: Ubuntu Server 22.04 LTS.

  • Образец названия хоста k8s-monitoring-xx (xx: 01, 02 ...)

Настройка Ubuntu Server 22.04 LTS

Для настройки Ubuntu Server 22.04 LTS выполните следующие шаги:

  1. Установите последнюю версию Ubuntu Server 22.04 LTS:

Bash
sudo apt update && sudo apt upgrade -y 
  1. Разрешите администратору доступ по SSH, скопировав SSH-ключи в~/.ssh/authorized_keys.

  2. Разрешите администратору беспарольный доступ sudo.

Bash
sudo bash -c "cat << EOF >> /etc/sudoers

$USER ALL=(ALL) NOPASSWD:ALL
EOF"
  1. Перезагрузите сервер:

Bash
sudo reboot

Добавление хоста в кластер Kubernetes

Все действия выполняются на ВМ1, если не указано иное.

  1. На ВМ3 клонируйте репозиторий:

Замените {TAG_NAME} любым доступным тегом (для получения полного списка тегов используйте git tag):

Bash
git clone https://github.com/aipix-dev/aipix-deploy.git
cd ./aipix-deploy
git checkout {TAG_NAME}
cd kubernetes/k8s-onprem/
  1. Установите базовые компоненты Kubernetes:

Bash
./install_kube_base.sh
  1. На ВМ1 получите регистрационный токен или URL:

Bash
kubeadm token create --print-join-command
Bash
###Пример токена:
kubeadm join 192.168.205.164:6443 --token 3yeqrm.abnp3yof8vivcbge --discovery-token-ca-cert-hash sha256:b58cfd679a3bb49f444dfe4869fad5e19f4fba87f1d6ae5f20da06c60f51684e
  1. Скопируйте токен и примените на ВМ3 через sudo:

Bash
###Example:
sudo kubeadm join 192.168.205.164:6443 --token 3yeqrm.abnp3yof8vivcbge --discovery-token-ca-cert-hash sha256:b58cfd679a3bb49f444dfe4869fad5e19f4fba87f1d6ae5f20da06c60f51684e
  1. Проверьте на ВМ1, что сервер добавлен и находится в статусе Ready:

Bash
kubectl get nodes
Bash
###Пример ответа:
NAME                   STATUS   ROLES           AGE     VERSION
k8s-monitoring-01      Ready    <none>          3m28s   v1.28.2
  1. Добавьте label и taint на данный сервер, чтобы он использовался только для мониторинга. Выполните следующие команды, заменив k8s-monitoring-01 на имя вашего сервера:

Bash
##Пример:
kubectl taint nodes k8s-monitoring-01 monitoring:NoSchedule
kubectl label nodes k8s-monitoring-01 monitoring=true
  1. На ВМ3 подготовьте локальное хранилище, выполнив следующие команды:

Bash
cd ~/aipix-deploy/kubernetes/k8s-onprem
./prepare_local_storage.sh 1 7 sdb make_fs

Установка компонентов мониторинга и логирования

Все действия выполняются на ВМ1, если не указано иное.

Для установки компонентов мониторинга и логирования выполните шаги:

  1. На ВМ1 перейдите в рабочую директорию:

Bash
cd ~/aipix-deploy/kubernetes
  1. Скопируйте sources.sh.sample в sources.sh, если не было сделано ранее, и проверьте конфигурации секции мониторинга.
    Для корректной работы мониторинга компонента Analytics требуется, чтобы переменная MONITORING была установлена в значение yes во время установки Analytics. При необходимости обновите установку Analytics.

Bash
vim ./sources.sh


Bash
#Параметры Monitoring 
export MONITORING=no                                 #развернуть Monitoring (yes или no)
export NS_MONITORING=monitoring                      #k8s пространство имён для мониторинга
export INFLUX_USR=admin                              #укажите influxdb администратора
export INFLUX_PSW=0hmSYYaRci6yJblARc6aHbHZ4YelTXTo   #укажите пароль для администратора influxdb (использовать только буквы и цифры)
export INFLUX_TOKEN=2pORp9tDo40Lm32oGUKFLL8r1UuNbgUT #укажите токен для influxdb API  (использовать только буквы и цифры)
export TELEGRAM_BOT_TOKEN=temporary-token            # укажите токен Telegram‑бота для уведомлений
export TELEGRAM_CHAT_ID=temporary-chat-id            #укажите chat ID Telegram для уведомлений
  1. Подготовьте конфигурационные файлы для мониторинга:

Bash
./configure-monitoring.sh
  1. Проверьте конфигурационные файлы в папке ../monitoring/ и внесите изменения при необходимости. Для мониторинга S3 MinIO вам нужно настроить bearer_token в директивах job_name: minio-job и job_name: minio-job-bucket в файле prometheus-config-map.yaml. Чтобы получить токены, выполните следующие команды (в этом примере, local это название хранилища MinIO S3):

Bash
mc admin prometheus generate local (local, minio-1 or minio-2)
Bash
mc admin prometheus generate local bucket

Отредактируйте bearer_token или весь блок конфигурации MinIO в файле prometheus-config-map.yaml через vim ../monitoring/prometheus-config-map.yaml или vim ../monitoring/prometheus-values.yaml):

Bash
  - job_name: minio-job-cluster
    bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoibmF2ZWtzb2Z0IiwiZXhwIjo0ODUwMzk2OTA3fQ.WWCLGWb-usnTqR5aWGDwRpSlgl0VfDvthSSWYxhf3X1UNXCRWoGIZz386Q3KIShzAHipamIoFyf5oR9YCebobg
    metrics_path: /minio/v2/metrics/cluster
    scheme: http
    static_configs:
      - targets: [minio.minio-single.svc:9000]
  - job_name: minio-job-bucket
    bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoibmF2ZWtzb2Z0IiwiZXhwIjo0ODUwNTIwMjkyfQ.acVDRmB-kLSFCkzIIZAinzTRguHYYKZeM0ebwHHKfSDhjq3xYb4YaNwfHrJKoI4E3z5fTGD7sal4QwF5nxdn-w
    metrics_path: /minio/v2/metrics/bucket
    scheme: http
    static_configs:
      - targets: [minio.minio-single.svc:9000]
  1. Установите мониторинг и логирование, выполнив следующую команду:

Bash
./deploy-monitoring.sh

По завершению установки, вы сможете подключиться к Grafana и импортировать дашборды из коллекции дашбордов, расположенной в папке ~/aipix-deploy/monitoring/grafana-dashboards/ текущего репозитория при условии, что автоматическое предоставление дашбордов не настроено. В конце скрипта вы получите URL-адреса для разных компонентов.