В настоящее время логи, генерируемые платформой, сохраняются в компоненте хранения логов; однако период их хранения относительно короткий. Для предприятий с высокими требованиями к соответствию нормативам логи обычно требуют более длительного срока хранения для удовлетворения аудиторских требований. Кроме того, экономический аспект хранения также является одним из ключевых факторов для предприятий.
Исходя из вышеописанных сценариев, платформа предлагает решение для архивирования логов, позволяющее пользователям переносить логи во внешнее NFS или объектное хранилище.
| Ресурс | Описание |
|---|---|
| NFS | Заранее настроить сервис NFS и определить путь NFS для монтирования. |
| Kafka | Заранее получить адрес сервиса Kafka. |
| Адрес образа | Необходимо использовать CLI-инструмент в кластере global для выполнения следующих команд и получения адресов образов:- Получить адрес образа alpine: kubectl get daemonset nevermore -n cpaas-system -o jsonpath='{.spec.template.spec.initContainers[0].image}' - Получить адрес образа razor: kubectl get deployment razor -n cpaas-system -o jsonpath='{.spec.template.spec.containers[0].image}' |
Нажмите Cluster Management > Clusters в левой навигационной панели.
Нажмите кнопку действий справа от кластера, в который будут передаваться логи > CLI Tool.
Измените YAML согласно описанию параметров ниже; после изменения вставьте код в открытый командный интерфейс CLI Tool и нажмите Enter для выполнения.
| Тип ресурса | Путь поля | Описание |
|---|---|---|
| ConfigMap | data.export.yml.output.compression | Сжатие текста логов; поддерживаются варианты none (без сжатия), zlib, gzip. |
| ConfigMap | data.export.yml.output.file_type | Тип экспортируемого файла лога; поддерживаются txt, csv, json. |
| ConfigMap | data.export.yml.output.max_size | Размер одного архивного файла в МБ. При превышении этого значения логи автоматически сжимаются и архивируются согласно настройке compression. |
| ConfigMap | data.export.yml.scopes | Область передачи логов; в настоящее время поддерживаются: системные логи, логи приложений, логи Kubernetes, продуктовые логи. |
| Deployment | spec.template.spec.containers[0].command[7] | Адрес сервиса Kafka. |
| Deployment | spec.template.spec.volumes[3].hostPath.path | Путь NFS для монтирования. |
| Deployment | spec.template.spec.initContainers[0].image | Адрес образа Alpine. |
| Deployment | spec.template.spec.containers[0].image | Адрес образа Razor. |
После того как статус контейнера изменится на Running, вы сможете просматривать непрерывно архивируемые логи в пути NFS; структура каталогов файлов логов следующая:
| Ресурс | Описание |
|---|---|
| S3 Storage | Заранее подготовить адрес сервиса S3-хранилища, получить значения access_key_id и secret_access_key; создать бакет для хранения логов. |
| Kafka | Заранее получить адрес сервиса Kafka. |
| Адрес образа | Необходимо использовать CLI-инструмент в кластере global для выполнения следующих команд и получения адресов образов:- Получить адрес образа alpine: kubectl get daemonset nevermore -n cpaas-system -o jsonpath='{.spec.template.spec.initContainers[0].image}' - Получить адрес образа razor: kubectl get deployment razor -n cpaas-system -o jsonpath='{.spec.template.spec.containers[0].image}' |
Нажмите Cluster Management > Clusters в левой навигационной панели.
Нажмите кнопку действий справа от кластера, в который будут передаваться логи > CLI Tool.
Измените YAML согласно описанию параметров ниже; после изменения вставьте код в открытый командный интерфейс CLI Tool и нажмите Enter для выполнения.
| Тип ресурса | Путь поля | Описание |
|---|---|---|
| Secret | data.access_key_id | Base64-кодированное значение полученного access_key_id. |
| Secret | data.secret_access_key | Base64-кодированное значение полученного secret_access_key. |
| ConfigMap | data.export.yml.output.compression | Сжатие текста логов; поддерживаются варианты none (без сжатия), zlib, gzip. |
| ConfigMap | data.export.yml.output.file_type | Тип экспортируемого файла лога; поддерживаются txt, csv, json. |
| ConfigMap | data.export.yml.output.max_size | Размер одного архивного файла в МБ. При превышении этого значения логи автоматически сжимаются и архивируются согласно настройке compression. |
| ConfigMap | data.export.yml.scopes | Область передачи логов; в настоящее время поддерживаются: системные логи, логи приложений, логи Kubernetes, продуктовые логи. |
| ConfigMap | data.export.yml.output.s3.bucket_name | Имя бакета. |
| ConfigMap | data.export.yml.output.s3.endpoint | Адрес сервиса S3-хранилища. |
| ConfigMap | data.export.yml.output.s3.region | Регион сервиса S3-хранилища. |
| Deployment | spec.template.spec.containers[0].command[7] | Адрес сервиса Kafka. |
| Deployment | spec.template.spec.volumes[3].hostPath.path | Локальный путь для монтирования, используется для временного хранения информации логов. После синхронизации с S3 файлы логов автоматически удаляются. |
| Deployment | spec.template.spec.initContainers[0].image | Адрес образа Alpine. |
| Deployment | spec.template.spec.containers[0].image | Адрес образа Razor. |
После того как статус контейнера изменится на Running, вы сможете просматривать непрерывно архивируемые логи в бакете.