CCE позволяет использовать ICAgent для сбора логов контейнеров рабочих нагрузок. Когда создаётся узел, ICAgent (DaemonSet с именем icagent в kube-system пространства имён кластера) устанавливается по умолчанию. Вы можете использовать ICAgent для сбора логов и отправки их в места хранения, описанные в следующей таблице.
Местоположение хранилища логов | Содержание для сбора | Метод конфигурации |
|---|---|---|
AOM (Этот режим не рекомендуется, так как он более не развивается.) | - Логи stdout контейнера - Логи файлов контейнера |
|
LTS | - Логи stdout контейнера - Логи файлов контейнера - Логи узла - События Kubernetes | Создайте политику сбора в LTS. |
ICAgent собирает только текстовые файлы логов в форматах .log, .trace и .out.
для добавления политики логов.Ниже используется Nginx в качестве примера. Политики логов зависят от рабочих нагрузок.
Параметр | Описание |
|---|---|
Тип тома |
|
hostPath | Введите путь на хосте, например, /var/paas/sys/log/nginx. |
Точка монтирования | Путь контейнера (например, /tmp) в который будут монтироваться ресурсы хранилища. ПРИМЕЧАНИЕ:
|
Extended Host Path | Этот параметр обязателен только если Тип тома установлен в hostPath. Расширенные пути хоста содержат идентификаторы pod или имена контейнеров для различения разных контейнеров, в которые монтируется путь хоста. В оригинальный каталог тома/подкаталог добавляется каталог 3‑го уровня. Вы можете легко получить файлы, выведенные одним Pod.
|
Путь сбора | Путь сбора ограничивает область сбора до указанных логов.
Пример: Путь сбора /tmp/**/test*.log указывает, что все .log файлы с префиксом test будут собраны из /tmp и поддиректорий глубиной пять уровней. ВНИМАНИЕ: Убедитесь, что версия ICAgent 5.12.22 или новее. |
Log Dump | Log dump — это ротация файлов логов на локальном хосте.
Отключить
|
Вы можете установить путь хранения логов контейнера, определив файл YAML.
Как показано ниже, том emptyDir монтируется в /var/log/nginx. Таким образом, ICAgent собирает логи в /var/log/nginx. policy — это пользовательское поле 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, тип volumes изменён на 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 | Extended host path | Расширенные пути хоста содержат идентификаторы pod или имена контейнеров для различения разных контейнеров, в которые монтируется путь хоста. В оригинальный каталог тома/подкаталог добавляется каталог 3‑го уровня. Вы можете легко получить файлы, выведенные одним Pod.
|
policy.logs.rotate | Log dump | Log dump — это ротация файлов логов на локальном хосте.
ПРИМЕЧАНИЕ:
|
policy.logs.annotations.pathPattern | Путь сбора | Путь сбора ограничивает область сбора до указанных логов.
Пример: Путь сбора /tmp/**/test*.log указывает, что все .log файлы с префиксом test будут собраны из /tmp и поддиректорий глубиной пять уровней. ВНИМАНИЕ: Убедитесь, что версия ICAgent 5.12.22 или новее. |
После настройки пути сбора логов и создания рабочей нагрузки ICAgent собирает файлы логов из настроенного пути. Сбор занимает около 1 минуты.
После завершения сбора логов перейдите на страницу деталей рабочей нагрузки и нажмите Logs в правом верхнем углу, чтобы просмотреть логи.
Вы также можете просматривать логи в консоли 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>