Перейти к основному содержимому

Логи в кластере Managed Kubernetes

Последнее изменение:

В кластерах Managed Kubernetes можно получать:

Логи кластера

В логах кластера отображаются события, которые происходят с кластером. Например, создание кластера, изменение групп нод, обновление сертификатов и версии. Если запрос был выполнен автоматически, например произошло обновление сертификатов по расписанию, то это действие тоже попадет в логи. Вы можете:

Логи в сервисе Аудит-логи подробнее логов в журнале событий. Полный список событий в логах сервиса Аудит-логи можно посмотреть в подразделе Сервис mks инструкции События в аудит-логах.

Посмотреть логи кластера в журнале событий

  1. В панели управления в верхнем меню нажмите Продукты и выберите Managed Kubernetes.

  2. Откройте страницу кластера → вкладка Журнал событий.

  3. Посмотрите статус событий кластера в строке события → столбец Статус.

    IN_PROGRESSСобытие выполняется
    IN_QUEUEСобытие в очереди. Ожидается завершение события со статусом IN_PROGRESS
    CANCELEDСобытие отменено
    ERRORПроизошла ошибка. Если причина ошибки — нехватка квот в проекте, увеличьте квоты. Если причина не указана, создайте тикет
    DONEСобытие успешно завершилось

Выгрузить аудит-логи в сервисе Аудит-логи

Используйте инструкцию Выгрузить аудит-логи.

Логи контейнеров

В логи контейнеров попадают события, которые происходят с контейнерами. Например, создание и удаление контейнера. Файлы логов хранятся в каталоге /var/log/pods/ или /var/log/containers. Логи отдельного контейнера можно посмотреть с помощью kubectl logs <container_name>, где <container_name> — имя контейнера. Если в кластере Managed Kubernetes много контейнеров, вы можете настроить получение логов контейнеров через Filebeat.

Настроить получение логов контейнеров через Filebeat

Filebeat по умолчанию настроен на работу с Docker. В Selectel вместо Docker в качестве среды исполнения контейнеров (CRI) используется containerd.

Чтобы настроить механизм получения метаданных логов через Filebeat, используйте конфигурационный файл:

filebeat.inputs:
- type: container
fields_under_root: true
paths:
- "/var/log/containers/*.log"
processors:
- add_kubernetes_metadata:
host: ${NODE_NAME}
in_cluster: true
default_matchers.enabled: false
matchers:
- logs_path:
logs_path: "/var/log/containers/"

Логи подов и сервисов (аудитные логи)

В аудитных логах отображаются события, которые происходят в кластере. Например, в подах или сервисах. Эти события могут быть инициированы пользователями, приложениями или Control Plane. Список событий, которые попадают в логи, и параметры этих событий зависят от политики. Политику, которая применяется для аудитных логов Managed Kubernetes, можно посмотреть в файле audit-policy.yaml документации Selectel на сайте GitHub. Подробнее о политике в подразделе Audit policy статьи Auditing документации Kubernetes.

Аудитные логи можно направлять в системы хранения и анализа логов, такие как:

  • внешние хранилища данных, например Elasticsearch или Stackdriver;
  • или SIEM-системы, например MaxPatrol SIEM или KUMA.

Чтобы получать аудитные логи из кластера Managed Kubernetes в системе хранения и анализа логов, настройте интеграцию.

Настроить интеграцию с системой хранения и анализа логов

Аудитные логи доступны в кластерах с версией Kubernetes 1.28 и выше. В кластерах Managed Kubenretes на облачных серверах вы можете обновить версию кластера. Во время обновления версии аудитные логи недоступны.

  1. Проверьте систему хранения и анализа логов.
  2. Включите аудитные логи — при создании кластера или в существующем кластере.
  3. Подключитесь к кластеру.
  4. Настройте экспорт аудитных логов в систему хранения и анализа логов.

1. Проверить систему хранения и анализа логов

Убедитесь, что система хранения и анализа логов доступна по протоколу HTTPS и для нее настроено терминирование TLS-соединений.

2. Включить аудитные логи в существующем кластере

  1. В панели управления в верхнем меню нажмите Продукты и выберите Managed Kubernetes.
  2. Откройте страницу кластера → вкладка Настройки.
  3. В блоке Логирование включите тумблер Аудитные логи.

3. Подключиться к кластеру

Используйте инструкцию Подключиться к кластеру для нужной операционной системы.

4. Настроить экспорт аудитных логов в систему хранения и анализа логов

Аудитные логи начнут передаваться в систему хранения и анализа логов после создания объекта Secret.

  1. Создайте yaml-файл с манифестом для объекта Secret:

    apiVersion: v1
    kind: Secret
    metadata:
    name: mks-audit-logs
    data:
    host: <host>
    port: <port>
    username: <username>
    password: <password>
    ca.crt: <ca_certificate>

    Укажите:

    • <host> — DNS- или IP-адрес системы хранения и анализа логов;
    • <port> — порт для подключения к системе хранения и анализа логов;
    • опционально: <username> — имя пользователя системы хранения и анализа логов;
    • опционально: <password> — пароль пользователя системы хранения и анализа логов;
    • опционально: <ca_certificate> — сертификат из приватного центра сертификации (CA). Если для подключения используется Let's Encrypt сертификат, этот параметр не нужно заполнять.
  2. Примените манифест и создайте объект Secret в пространстве имен kube-system:

    kubectl apply -f <file_name> --namespace=kube-system

    Укажите <file_name> — имя yaml-файла с манифестом для создания нового объекта Secret. Например, secret.yaml.

  3. Проверьте, что объект Secret создан:

    kubectl get secret mks-audit-logs --output=yaml --namespace=kube-system