ClusterLoggingConfig
Scope: Cluster
Version: v1alpha1
Описывает источник логов в log-pipeline.
Каждый ресурс ClusterLoggingConfig
описывает правила сбора логов из кластера.
- spec
Обязательный параметр
- spec.destinationRefs
Обязательный параметр
Массив имен ресурса
ClusterLogDestination
, с которыми будет работать этот источник логов.Поля с числовыми и булевыми типами будут преобразованы в строки.
- spec.file
Описывает правило сбора логов из файлов на узле.
- spec.file.exclude
Список шаблонов путей к файлам, которые нужно исключить при сборе логов.
Поддерживаются wildcards.
Примеры:
exclude: "/var/log/nginx/error.log"
exclude: "/var/log/audit.log"
- spec.file.include
Список шаблонов путей к файлам для сбора логов.
Поддерживаются wildcards.
Примеры:
include: "/var/log/*.log"
include: "/var/log/nginx/*.log"
- spec.file.lineDelimiter
Символ новой строки, который использовать при парсинге логов.
Пример:
lineDelimiter: "\\r\\n"
- spec.kubernetesPods
Описывает правило сбора логов из подов кластера.
- spec.kubernetesPods.keepDeletedFilesOpenedFor
Указывает время, в течение которого удаленные файлы будут оставаться открытыми для чтения. Vector будет сохранять метаданные подов в течение этого времени, чтобы читать логи из удаленных подов. Эта опция полезна в случаях недоступности хранилища логов или сетевого разделения. Vector будет держать файлы логов открытыми до их окончательной отправки в пункт назначения.
Применение опции может повлиять на потребление ресурсов Vector и также быть причиной нехватки места на диске из-за удаленных файлов с логами. Используйте с осторожностью.
Формат - строка, содержащая единицу времени в часах и минутах: 30m, 1h, 2h30m, 24h.
Шаблон:
^([0-9]+h([0-9]+m)?|[0-9]+m)$
- spec.kubernetesPods.labelSelector
Задаёт фильтр по меткам пода.
Подробнее про выражения можно узнать в документации.
- spec.kubernetesPods.labelSelector.matchExpressions
Список выражений для меток, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging - key: tier operator: NotIn values: - production
- spec.kubernetesPods.labelSelector.matchExpressions.key
Имя метки.
- spec.kubernetesPods.labelSelector.matchExpressions.operator
Оператор сравнения.
Допустимые значения:
In
,NotIn
,Exists
,DoesNotExist
- spec.kubernetesPods.labelSelector.matchExpressions.values
Значение метки.
- Элемент массива
Шаблон:
[a-z0-9]([-a-z0-9]*[a-z0-9])?
Длина:
1..63
- spec.kubernetesPods.labelSelector.matchLabels
Список меток, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
matchLabels: foo: bar baz: who
- spec.kubernetesPods.namespaceSelector
Задаёт фильтр по пространствам имен.
Фильтр может использовать какой-то один способ задания условия из трех доступных (параметры
matchNames
,excludeNames
,labelSelector
).- spec.kubernetesPods.namespaceSelector.excludeNames
Список пространств имен, с подов которого нужно исключить сбор логов.
- spec.kubernetesPods.namespaceSelector.labelSelector
Фильтр по меткам пространств имен, с которых нужно собирать логи.
Подробнее про выражения можно узнать в документации.
- spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions
Список выражений для меток, которые должно иметь пространство имен, чтобы подпадать под условие фильтра.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.key
Обязательный параметр
Имя метки.
- spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.operator
Обязательный параметр
Оператор сравнения.
Допустимые значения:
In
,NotIn
,Exists
,DoesNotExist
- spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.values
Значение метки.
- spec.kubernetesPods.namespaceSelector.labelSelector.matchLabels
Список меток, которые должно иметь пространство имен, чтобы подпадать под условие фильтра.
Пример:
matchLabels: foo: bar baz: who
- spec.kubernetesPods.namespaceSelector.matchNames
Список пространств имен, с подов которого нужно собирать логи.
- spec.labelFilter
Список правил для фильтрации логов по их меткам метаданных.
Пример:
labelFilter: - field: container operator: In values: - nginx - field: pod_labels.tier operator: Regex values: - prod-.+ - stage-.+
- spec.labelFilter.field
Обязательный параметр
Имя метки для использования в фильтре.
Не должно быть пустым.
Шаблон:
.+
- spec.labelFilter.operator
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть;DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- spec.labelFilter.values
Массив значений или регулярных выражений для соответствующих операций. Не работает для операций
Exists
иDoesNotExist
.Можно использовать целые числа или строки. Поля с числами с плавающей запятой и поля логического типа будут преобразованы в строки при сравнении.
- spec.logFilter
Список фильтров для логов, которые применяются к полям сообщения в формате JSON.
Только логи, подпадающие под правила, будут сохранены в хранилище.
Пример:
logFilter: - field: tier operator: Exists - field: foo operator: NotIn values: - dev - 42 - 'true' - '3.14' - field: bar operator: Regex values: - "^abc" - "^\\d.+$"
- spec.logFilter.field
Обязательный параметр
Имя поля для фильтрации. Должно быть пустым для логов не в JSON-формате.
- spec.logFilter.operator
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть.DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- spec.logFilter.values
Массив значений или регулярных выражений для соответствующих операций. Не работает для операций
Exists
иDoesNotExist
.Можно использовать целые числа или строки. Поля с числами с плавающей запятой и поля логического типа будут преобразованы в строки при сравнении.
- spec.multilineParser
Список паттернов для определения многострочных логов.
- spec.multilineParser.custom
Правила парсинга многострочных логов для парсера
Custom
.- spec.multilineParser.custom.endsWhen
Условие, при котором находится последняя строчка многострокового лога.
- spec.multilineParser.custom.endsWhen.notRegex
Регулярное выражение, которое считает мэтчем строки, НЕ попавшие в него.
- spec.multilineParser.custom.endsWhen.regex
Регулярное выражение, которое считает мэтчем строки, попавшие в него.
- spec.multilineParser.custom.startsWhen
Условие, при котором находится первая строчка многострокового лога.
- spec.multilineParser.custom.startsWhen.notRegex
Регулярное выражение, которое считает мэтчем строки, НЕ попавшие в него.
- spec.multilineParser.custom.startsWhen.regex
Регулярное выражение, которое считает мэтчем строки, попавшие в него.
- spec.multilineParser.type
Обязательный параметр
Типы парсеров:
None
— не парсить логи;General
— парсер, который пытается сливать логи, у которых в начале сообщения стоит пробел или табуляция;Backslash
— парсер, который парсит многострочные логи в SHELL-формате с обратным слэшем у строк одного сообщения;LogWithTime
— парсер, который ожидает, что любое новое сообщение начинается с временной метки;MultilineJSON
— простой парсер JSON-логов, который предполагает, что новое сообщение начинается с символа{
;Custom
- парсер, который парсит многострочные логи в указанном пользователем вspec.multilineParser.custom
формате.
По умолчанию:
"None"
Допустимые значения:
None
,General
,Backslash
,LogWithTime
,MultilineJSON
,Custom
- spec.type
Обязательный параметр
Возможные источники логов.
KubernetesPods
собирает логи с подов.File
позволяет читать локальные файлы, доступные на узле.Допустимые значения:
KubernetesPods
,File