CCE может собирать журналы рабочих нагрузок и передавать их в AOM 1.0. Когда создаётся узел, ICAgent (DaemonSet с именем icagent в kube-system пространство имён кластера) устанавливается по умолчанию. ICAgent собирает журналы рабочих нагрузок и передаёт их в AOM 1.0. Вы можете просматривать журналы рабочих нагрузок в консоли CCE или AOM.
AOM 1.0 будет отключён. Не рекомендуется использовать ICAgent для сбора журналов контейнеров и взаимодействия с AOM 1.0. Рекомендуется использовать дополнение Cloud Native Log Collection (Сбор журналов контейнеров с помощью дополнения Cloud Native Log Collection) для сбора журналов контейнеров и взаимодействия с LTS.
Ограничения
ICAgent собирает только текстовые журналы в форматах .log, .trace и .out.
Использование ICAgent для сбора журналов
- Когда создаётся рабочая нагрузка, задайте журналирование для контейнера.
- Щёлкните
чтобы добавить политику журналирования.Далее в качестве примера используется Nginx. Политики журналирования различаются в зависимости от рабочих нагрузок.
- Установите Тип тома в hostPath или emptyDir.
Таблица 1 Настройка политик журналирования Параметр
Описание
Тип тома
- hostPath: Путь хоста монтируется к указанному пути контейнера (путь монтирования). В пути хоста узла вы можете просматривать журналы контейнера, выводимые в путь монтирования.
- emptyDir: Временный путь узла монтируется к указанному пути (путь монтирования). Данные журналов, находящиеся во временном пути, но не переданные коллектором в AOM, исчезнут после удаления пода.
hostPath
Введите путь хоста, например, /var/paas/sys/log/nginx.
Путь монтирования
Путь контейнера (например, /tmp) к которому будут монтироваться ресурсы хранилища.
ПРИМЕЧАНИЕ:- Не монтируйте хранилище в системный каталог, например / или /var/run; это действие может вызвать ошибку контейнера. Рекомендуется монтировать контейнер в пустой каталог. Если каталог не пуст, убедитесь, что в нём нет файлов, влияющих на запуск контейнера. В противном случае такие файлы будут заменены, что приведёт к сбоям при запуске контейнера и создании рабочей нагрузки.
- Если контейнер смонтирован в каталог с высоким риском, рекомендуется использовать учётную запись с минимальными правами для запуска контейнера; иначе файлы с высоким риском на хосте могут быть повреждены.
- AOM собирает только первые 20 журналов, изменённых недавно. По умолчанию собирает журналы из 2 уровней подпапок.
- AOM собирает только .log, .trace, и .out текстовые журналы в путях монтирования.
- Подробности о том, как установить права для точек монтирования в контейнере, см. Настройка Security Context для Пода или Контейнера.
Расширенный путь хоста
Этот параметр обязателен только если Тип тома установлен в HostPath.
Расширенные пути хоста содержат ID подов или имена контейнеров для различения разных контейнеров, в которые монтируется путь хоста.
В оригинальный каталог тома/подкаталог добавляется каталог третьего уровня. Вы можете легко получить файлы, выводимые одним Под.
- Нет: Расширенный путь не настроен.
- PodUID: ID пода.
- PodName: имя пода.
- PodUID/ContainerName: ID пода или имя контейнера.
- PodName/ContainerName: имя пода или контейнера.
Путь сбора
Путь сбора ограничивает область сбора указанными журналами.
- Если путь сбора не указан, файлы журналов в .log, .trace, и .out форматы будут собраны из указанного пути.
- /Path/**/ указывает, что все файлы журналов в .log, .trace, и .out форматы будут рекурсивно собраны из указанного пути и всех подпапок на глубине 5 уровней.
- * в именах файлов журналов указывает на неточный поиск.
Пример: Путь сбора /tmp/**/test*.log указывает, что все .log файлы с префиксом тест будут собраны из /tmp и подкаталоги глубиной 5 уровней.
ВНИМАНИЕ:Убедитесь, что ICAgent имеет версию 5.12.22 или новее.
Лог Дамп
Лог дамп относится к ротации файлов журналов на локальном хосте.
- Включено: AOM сканирует файлы журналов каждую минуту. Когда файл журнала превышает 50 МБ, он дампится. Новый .zip файл создаётся в каталоге, где находится файл журнала. Для файла журнала AOM хранит только последние 20 .zip файлов. Когда количество .zip файлов превышает 20, более ранние .zip файлы будут удалены.
- Выключено: AOM не дампит файлы журналов.
ПРИМЕЧАНИЕ:- AOM вращает файлы журналов, используя copytruncate. Перед включением дампа журналов убедитесь, что файлы журналов записываются в режиме добавления. В противном случае могут возникнуть дыры в файлах.
- В настоящее время основные компоненты журналов, такие как Log4j и Logback, поддерживают ротацию файлов журналов. Если вы уже настроили ротацию файлов журналов, пропустите конфигурацию. В противном случае могут возникнуть конфликты.
- Рекомендуется настроить ротацию файлов журналов для ваших собственных сервисов, чтобы гибко контролировать размер и количество ротовых файлов.
- Нажмите OK.
Пример YAML
Вы можете задать путь хранения журналов контейнера, определив файл YAML.
Как показано на следующей схеме, том emptyDir монтирует временный путь к /var/log/nginx. Таким образом, ICAgent собирает журналы в /var/log/nginx. Эта политика поле настраивается CCE и позволяет ICAgent идентифицировать и собирать журналы.
apiVersion: apps/v1kind: Deploymentmetadata:name: testlognamespace: defaultspec:selector:matchLabels:app: testlogtemplate:replicas: 1metadata:labels:app: testlogspec:containers:- image: 'nginx:alpine'name: container-0resources:requests:cpu: 250mmemory: 512Milimits:cpu: 250mmemory: 512MivolumeMounts:- name: vol-logmountPath: /var/log/nginxpolicy:logs:rotate: ''volumes:- emptyDir: {}name: vol-logimagePullSecrets:- name: default-secret
Ниже показано, как использовать том hostPath. По сравнению с emptyDir тип томов изменяется на hostPath, и путь на хосте должен быть настроен для этого тома hostPath. В следующем примере, /tmp/log на хосте монтируется в /var/log/nginx. Таким образом, ICAgent может собирать журналы в /var/log/nginx, не удаляя журналы из /tmp/log.
apiVersion: apps/v1kind: Deploymentmetadata:name: testlognamespace: defaultspec:replicas: 1selector:matchLabels:app: testlogtemplate:metadata:labels:app: testlogspec:containers:- image: 'nginx:alpine'name: container-0resources:requests:cpu: 250mmemory: 512Milimits:cpu: 250mmemory: 512MivolumeMounts:- name: vol-logmountPath: /var/log/nginxreadOnly: falseextendPathMode: PodUIDpolicy:logs:rotate: Hourlyannotations:pathPattern: '**'volumes:- hostPath:path: /tmp/logname: vol-logimagePullSecrets:- name: default-secret
Параметр | Описание | Описание |
|---|---|---|
extendPathMode | Расширенный путь хоста | Расширенные пути хоста содержат ID подов или имена контейнеров для различения разных контейнеров, в которые монтируется путь хоста. В оригинальный каталог тома/подкаталога добавляется каталог уровня 3. Вы можете легко получить файлы, выведенные одним Под.
|
policy.logs.rotate | Лог дамп | Лог дамп относится к ротации файлов журналов на локальном хосте.
ПРИМЕЧАНИЕ:
|
policy.logs.annotations.pathPattern | Путь сбора | Путь сбора сужает область сбора до указанных журналов.
Пример: Путь сбора /tmp/**/test*.log указывает, что все .log файлы, начинающиеся с test будут собраны из /tmp и поддиректорий на глубине 5 уровней. CAUTION: Убедитесь, что ICAgent версии 5.12.22 или новее. |
Просмотр логов
После настройки пути сбора логов и создания нагрузки ICAgent собирает лог‑файлы из настроенного пути. Сбор занимает около 1 минуты.
После завершения сбора логов перейдите на страницу деталей нагрузки и щёлкните Логи в правом верхнем углу, чтобы просмотреть логи.
Вы также можете просматривать логи в консоли AOM.
Вы также можете выполнить kubectl logs команду для просмотра stdout контейнера.
- Просмотрите логи указанного пода.kubectl logs <pod_name> -n <namespace>
- Просмотрите логи указанного пода в реальном времени.kubectl logs -f <pod_name> -n <namespace>
- Просмотрите логи указанного контейнера в указанном поде.kubectl logs <pod_name> -c <container_name> -n <namespace>
- Просмотрите логи указанного контейнера в указанном поде в реальном времени.kubectl logs -f <pod_name> -c <container_name> -n <namespace>
- Ограничения
- Использование ICAgent для сбора логов
- Пример YAML
- Просмотр логов