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