Логи

Содержание

Анализ запросов логов

В панели анализа запросов логов центра операций вы можете просматривать логи стандартного вывода (stdout) учетной записи, под которой выполнен вход, в рамках её прав, включая системные логи, логи продуктов, логи Kubernetes и логи приложений. Через эти логи можно получить представление о работе ресурсов.

  • Системные логи: логи с хост-узлов, например: dmesg, syslog/messages, secure и др.
  • Логи продуктов: логи собственных компонентов платформы и интегрированных с платформой сторонних компонентов, например: Container-Platform, Platform-Center, DevOps, Service-Mesh и др.
  • Логи Kubernetes: логи компонентов, связанных с оркестрацией контейнеров Kubernetes, а также логи, генерируемые kubelet, kubeproxy и docker, например: docker, kube-apiserver, kube-controller-manager, etcd и др.
  • Логи приложений: логи бизнес-приложений, включая файловые логи и логи стандартного вывода.

Условия запроса логов поддерживают фильтрацию логов в заданном временном диапазоне (выбранном или пользовательском), а результаты запроса отображаются в виде столбчатых диаграмм и стандартного вывода.

WARNING

В целях производительности платформа может отображать максимум 10 000 логов за один раз. Если объем логов на платформе слишком велик за определенный период, пожалуйста, сузьте временной диапазон запроса и выполняйте запросы поэтапно.

Поиск логов

  1. В левой навигационной панели нажмите Operations Center > Logs > Log Query Analysis.

  2. Выберите нужный тип лога, условия запроса, введите ключевые слова содержимого лога, которые хотите получить, затем нажмите Search.

TIP
  • Для разных Log Types доступны разные условия запроса.

  • Можно выбрать или ввести несколько тегов условий запроса; условия для разных типов ресурсов связаны логическим И. Некоторые теги условий поддерживают множественный выбор; после выбора обязательно нажмите клавишу Enter для подтверждения.

  • Условия запроса поддерживают нечеткий поиск; например, условие pod = nginx может вернуть логи для nginx-1, nginx-2.

  • Условия поиска по содержимому лога используются только для поиска ключевых слов и поддерживают использование параметров AND и OR для составных запросов. Однако не используйте одновременно AND и OR в одном запросе.

  • Столбчатая диаграмма показывает общее количество логов за текущий временной диапазон и количество логов в разные моменты времени. Клик по столбцу диаграммы позволяет просмотреть логи за промежуток времени между этим столбцом и следующим.

Экспорт данных логов

На странице можно отобразить максимум 10 000 записей логов. Если количество полученных логов слишком велико, можно воспользоваться функцией экспорта логов для просмотра до 1 миллиона записей.

  1. Нажмите кнопку Export в правом верхнем углу столбчатой диаграммы и настройте параметры в появившемся диалоговом окне экспорта логов.

    • Scope: диапазон экспорта логов, можно выбрать Current Page или All Results.

      • Current Page: экспортировать только результаты текущей страницы, максимум 1 000 записей.
      • All Results: экспортировать все данные логов, соответствующие текущим условиям запроса, максимум 1 миллион записей.
    • Fields: отображаемые поля логов. Можно выбрать, какие поля включать в экспортируемый файл, отметив соответствующие чекбоксы.

      Примечание: для разных типов логов доступны разные поля, выбирайте согласно вашим потребностям.

    • Format: формат экспорта файла логов, поддерживается txt или csv. Платформа экспортирует в сжатом формате gzip.

  2. Нажмите Export, браузер автоматически скачает сжатый файл на локальный компьютер.

Просмотр контекста лога

  1. Дважды кликните по области содержимого лога, в текущем диалоговом окне отобразятся 5 логов до и после времени печати текущего лога, что помогает специалистам по эксплуатации лучше понять причины возникновения текущих логов ресурсов.

  2. Можно настроить отображаемые поля контекста лога или экспортировать контекст лога. При экспорте контекста не нужно выбирать Scope; нажатие кнопки Export сразу скачает файл контекста на локальный компьютер через браузер.

Управление временем хранения логов приложений

Если политика проекта не установлена, время хранения логов приложений на платформе определяется параметром Application Log Retention Time Log Storage Plugin, установленного на Storage Cluster, выбранном при установке ACP Log Collector в кластере, где размещено приложение.

Вы можете дифференцировать время хранения Application Logs на платформе, добавляя и управляя политиками логов проектов.

TIP

Политики проектов применяются только к Application Logs в рамках конкретного проекта. После установки политики проекта время хранения всех логов приложений в этом проекте будет соответствовать политике проекта.

Администратор платформы устанавливает политики хранения

  1. В левой навигационной панели нажмите Operations Center > Logs > Policy Management.

  2. Нажмите Add Project Policy.

  3. В выпадающем списке Project выберите проект.

  4. Установите Log Retention Time.

    • Используйте кнопки -/+ по обе стороны счетчика для уменьшения/увеличения количества дней хранения или введите значение напрямую. Платформа позволяет устанавливать время хранения от 1 до 30 дней.
    • Если введено десятичное число, оно округляется вверх до целого; если значение меньше 1, округляется до 1, и кнопка - становится неактивной; если значение больше 30, округляется вниз до 30, и кнопка + становится неактивной.
  5. Нажмите Add.

Администратор проекта устанавливает политики хранения

  1. Перейдите на страницу деталей текущего проекта.

  2. Нажмите кнопку редактирования рядом с полем политики логов, чтобы включить политику логов во всплывающем окне.

  3. Установите Log Retention Time.

  • Используйте кнопки -/+ по обе стороны счетчика для уменьшения/увеличения количества дней хранения или введите значение напрямую. Платформа позволяет устанавливать время хранения от 1 до 30 дней.
  • Если введено десятичное число, оно округляется вверх до целого; если значение меньше 1, округляется до 1, и кнопка - становится неактивной; если значение больше 30, округляется вниз до 30, и кнопка + становится неактивной.

Установка политики хранения через CLI

  1. Выполните вход в кластер global и выполните команду:

    kubectl edit project <Project Name>
  2. Измените yaml согласно примеру ниже, сохраните и отправьте изменения.

    apiVersion: auth.alauda.io/v1
    kind: Project
    metadata:
      annotations:
        cpaas.io/creator: mschen1@alauda.io
        cpaas.io/description: ''
        cpaas.io/display-name: ''
        cpaas.io/operator: leizhuc
        cpaas.io/project.esPolicyLastEnabledTimestamp: '2025-02-18T09:53:54Z'
        cpaas.io/updated-at: '2025-02-18T09:53:54Z'
    creationTimestamp: '2025-02-13T08:19:11Z'
    finalizers:
      - namespace
    generation: 1
    labels:
      cpaas.io/project: bookinfo
      cpaas.io/project.esIndicesKeepDays: '7' # Время хранения логов приложений в проекте
      cpaas.io/project.esPolicyEnabled: 'true' # Включение политики проекта
      cpaas.io/project.id: '95447321'
      cpaas.io/project.level: '1'
      cpaas.io/project.parent: ''
    name: bookinfo
    ### Остальная часть yaml, не связанная с изменениями, опущена.

Настройка частичного исключения логов приложений из сбора

Если необходимо просматривать только Реальные логи конкретных приложений в кластере без их хранения (коллектор будет отбрасывать соответствующие логи), можно воспользоваться данной секцией для настройки области остановки сбора логов (кластер, namespace, Pod) для тонкого контроля сбора логов приложений.

Остановить сбор всех логов приложений в кластере

Можно обновить Параметры конфигурации ACP Log Collector кластера, чтобы выключить переключатель сбора Application Log, тем самым единообразно обновив область сбора логов для данного кластера. После выключения переключателя сбора для определенного типа логов сбор всех логов этого типа в текущем кластере прекратится.

Остановить сбор логов приложений в конкретном namespace

Можно выключить переключатель сбора логов для namespace, добавив метку cpaas.io/log.mute=true в указанный namespace, что остановит сбор всех логов стандартного вывода и файловых логов для всех Pod в этом namespace.

Возможные способы настройки:

  • Через командную строку: после входа на любой управляющий узел кластера выполните команду для обновления метки namespace.

    kubectl label namespace <Namespace Name> cpaas.io/log.mute=true
  • Через интерфейс: в представлении Project Management обновите метку namespace.

    1. В списке проектов представления Project Management нажмите на Project Name, в котором находится namespace.

    2. В левой навигационной панели выберите Namespaces.

    3. Нажмите на Namespace Name, метку которого нужно обновить.

    4. На вкладке Details нажмите кнопку управления справа от Labels.

    5. Добавьте метку (Ключ: cpaas.io/log.mute, Значение: true) или измените значение существующей метки, затем нажмите Update.

Остановить сбор логов Pod

Можно выключить переключатель сбора логов для конкретного Pod, добавив метку cpaas.io/log.mute=true к нему, что остановит сбор логов стандартного вывода и файловых логов для этого Pod.

После входа на любой управляющий узел кластера выполните команду для обновления метки Pod.

kubectl label pod <Pod Name> -n <Namespace Name> cpaas.io/log.mute=true

Примечание: если Pod принадлежит вычислительному компоненту (Workload), можно обновить метки вычислительного компонента (Deployment, StatefulSet, DaemonSet, Job, CronJob), чтобы единообразно обновить метки всех Pod под этим компонентом; метки сохранятся даже после пересоздания Pod.

Обновить метки вычислительного компонента можно следующим образом.

  1. В представлении продукта Container Platform переключитесь в namespace, где находится Pod, через верхнюю навигацию.

  2. В левой навигационной панели выберите Compute Components > Тип вычислительного компонента, к которому принадлежит Pod.

  3. Нажмите кнопку управления справа от нужного вычислительного компонента > Update.

  4. В правом верхнем углу переключитесь на режим редактирования YAML, нажав YAML.

  5. В поле spec.template.labels добавьте метку cpaas.io/log.mute: 'true'.

    Пример:

    spec:
      template:
        metadata:
          namespace: tuhao-test
          creationTimestamp: null
          labels:
            app: spilo
            cpaas.io/log.mute: 'true'
            cluster-name: acid-minimal-cluster
            role: exporter
            middleware.instance/name: acid-minimal-cluster
            middleware.instance/type: PostgreSQL
  6. Нажмите Update.