---
title: 'Логи в кластере'
sidebar_label: 'Логи в кластере Managed Kubernetes'
sidebar_position: 4
description: 'Как смотреть логи кластера, настроить получение логов контейнеров через Filebeat и экспорт аудитных логов'
---

import Formbricks from '@theme/MDXComponents/Formbricks';
import { CustomTable } from '@selectel/docux/components';

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

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

* [логи кластера](#cluster-logs);
* [логи контейнеров](#container-logs);
* [логи подов и сервисов (аудитные логи)](#pods-and-services-logs).

## Логи кластера \{#cluster-logs}

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

* [посмотреть логи кластера в журнале событий](#view-cluster-logs-in-event-log);
* [выгрузить аудит-логи](#export-audit-logs) в сервисе [Аудит-логи](/audit-logs/).

Логи в сервисе Аудит-логи подробнее логов в журнале событий.
Полный список событий в логах сервиса Аудит-логи можно посмотреть в подразделе [Сервис mks](/audit-logs/events.mdx#managed-kubernetes) инструкции [События в аудит-логах](/audit-logs/events.mdx).

### Посмотреть логи кластера в журнале событий \{#view-cluster-logs-in-event-log}

1. В [панели управления](https://my.selectel.ru/mks/) в верхнем меню нажмите **Продукты** и выберите **Managed Kubernetes**.

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

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

   <CustomTable>
     <table>
       <tbody>
         <tr>
           <th>IN\_PROGRESS</th>
           <td>Событие выполняется</td>
         </tr>

         <tr>
           <th>IN\_QUEUE</th>
           <td>Событие в очереди. Ожидается завершение события со статусом `IN_PROGRESS`</td>
         </tr>

         <tr>
           <th>CANCELED</th>
           <td>Событие отменено</td>
         </tr>

         <tr>
           <th>ERROR</th>
           <td>Произошла ошибка. Если причина ошибки — нехватка квот в проекте, [увеличьте квоты](/access-control/projects/quotas.mdx#change-quotas). Если причина не указана, [создайте тикет](https://my.selectel.ru/tickets/create/)</td>
         </tr>

         <tr>
           <th>DONE</th>
           <td>Событие успешно завершилось</td>
         </tr>
       </tbody>
     </table>
   </CustomTable>

### Выгрузить аудит-логи в сервисе Аудит-логи \{#export-audit-logs}

Используйте инструкции в разделе [Выгрузить аудит-логи](/audit-logs/export-logs/).

## Логи контейнеров \{#container-logs}

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

### Настроить получение логов контейнеров через Filebeat \{#receive-container-logs-via-filebeat}

[Filebeat](https://www.elastic.co/beats/filebeat) по умолчанию настроен на работу с Docker.
В Selectel вместо Docker в качестве среды исполнения контейнеров ([CRI](https://kubernetes.io/docs/setup/production-environment/container-runtimes/)) используется [containerd](https://containerd.io/).

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

```yaml
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/"
```

## Логи подов и сервисов (аудитные логи) \{#pods-and-services-logs}

В аудитных логах отображаются события, которые происходят в кластере.
Например, в подах или сервисах.
Эти события могут быть инициированы пользователями, приложениями или Control Plane.
Список событий, которые попадают в логи, и параметры этих событий зависят от политики. Политику, которая применяется для аудитных логов Managed Kubernetes, можно посмотреть в файле [audit-policy.yaml](https://github.com/selectel/mks-audit-logs-manifest/blob/main/audit-policy.yaml) документации Selectel на сайте GitHub.
Подробнее о политике в подразделе [Audit policy](https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/#audit-policy) статьи [Auditing](https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/) документации Kubernetes.

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

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

Чтобы получать аудитные логи из кластера Managed Kubernetes в системе хранения и анализа логов, [настройте интеграцию](#configure-integration-with-external-system).

### Настроить интеграцию с системой хранения и анализа логов \{#configure-integration-with-external-system}

Аудитные логи доступны в кластерах с версией Kubernetes 1.28 и выше.
В кластерах Managed Kubenretes на облачных серверах вы можете [обновить версию кластера](/managed-kubernetes/clusters/upgrade-version.mdx).
Во время обновления версии аудитные логи недоступны.

1. [Проверьте систему хранения и анализа логов](#check-external-system).
2. Включите аудитные логи — при [создании кластера](/managed-kubernetes/create/create-cloud-cluster.mdx) или в [существующем кластере](#enable-audit-logs-in-existing-cluster).
3. [Подключитесь к кластеру](#connect-to-cluster).
4. [Настройте экспорт аудитных логов в систему хранения и анализа логов](#configure-export-of-audit-logs).

#### 1. Проверить систему хранения и анализа логов \{#check-external-system}

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

#### 2. Включить аудитные логи в существующем кластере \{#enable-audit-logs-in-existing-cluster}

1. В [панели управления](https://my.selectel.ru/mks/) в верхнем меню нажмите **Продукты** и выберите **Managed Kubernetes**.
2. В разделе **Кластеры** откройте страницу кластера → вкладка **Настройки**.
3. В блоке **Логирование** включите тумблер **Аудитные логи**.

#### 3. Подключиться к кластеру \{#connect-to-cluster}

Используйте инструкцию [Подключиться к кластеру](/managed-kubernetes/clusters/connect-to-cluster.mdx) для нужной операционной системы.

#### 4. Настроить экспорт аудитных логов в систему хранения и анализа логов \{#configure-export-of-audit-logs}

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

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

   ```yaml
   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`:

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

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

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

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

<Formbricks />
