ClusterLogDestination
Scope: Cluster
Version: v1alpha1
Описывает параметры хранилища логов, к которому можно подключить бесконечное количество источников.
metadata.name
задаёт имя upstream’а, который будет использоваться в ресурсе ClusterLoggingConfig.
- строка или число
Максимальный размер буфера на диске. Должен быть не меньше ~256 МБ (268435488 байт).
Вы можете указать размер как простое целое число или как число с одним из следующих суффиксов:
E
,P
,T
,G
,M
,k
,Ei
,Pi
,Ti
,Gi
,Mi
,Ki
.Подробнее об указании ресурсов:
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Примеры:
maxSize: 512Mi
maxSize: 268435488
- строка
Использовать
doc_type
для индексов. Имеет смысл использовать только для Elasticsearch <= 6.X.- Для Elasticsearch >= 7.X вам не нужно использовать эту опцию, так как все работает по умолчанию.
- Для Elasticsearch >= 6.X рекомендуемое значение —
_doc
, так как его использование позволит легко обновиться до Elasticsearch версии 7.X. - Для Elasticsearch < 6.X вы можете использовать любое значение, которое не начинается с
_
. Например,logs
.
- объект
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipper
и иметь лейблlog-shipper.deckhouse.io/watch-secret: true
.
- объект
Дополнительные label’ы, которыми будут снабжаться записи логов.
Вы можете использовать простые шаблоны:
{{ app }}
.Некоторые ключи зарезервированы:
- parsed_data;
- pod;
- pod_labels_*;
- pod_ip;
- namespace;
- image;
- container;
- node;
- pod_owner.
Пример:
extraLabels: forwarder: vector key: value app_info: "{{ app }}" array_member: "{{ array[0] }}" symbol_escating_value: "{{ pay\\.day }}"
- массив строк
Обязательный параметр
Список пар адресов (хост:порт) Kafka-брокеров в кластере Kafka, к которым должны подключиться клиенты для получения метаданных (топиков и партиций).
По умолчанию:
[]
Пример:
bootstrapServers: - 10.14.22.123:9092 - 10.14.23.332:9092
- строка
Позволяет задать поле key_field.
Примеры:
keyField: host
keyField: node
keyField: namespace
keyField: parsed_data.app_info
- объект
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipper
и иметь лейблlog-shipper.deckhouse.io/watch-secret: true
.
- объект
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipper
и иметь лейблlog-shipper.deckhouse.io/watch-secret: true
.
- объект
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipper
и иметь лейблlog-shipper.deckhouse.io/watch-secret: true
.
- массив объектов
Список фильтров для keyField.
Только логи, НЕ подпадающие под правила, будут ограничены по количеству записей.
Примеры:
excludes: field: tier operator: Exists
excludes: field: foo operator: NotIn values: - dev - 42 - 'true' - '3.14'
excludes: field: bar operator: Regex values: - "^abc" - "^\\d.+$"
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть;DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- массив
Массив значений или регулярных выражений для соответствующих операций. Не работает для операций
Exists
иDoesNotExist
.Можно использовать целые числа или строки. Поля с числами с плавающей запятой и поля логического типа будут преобразованы в строки при сравнении.
- объект
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipper
и иметь лейблlog-shipper.deckhouse.io/watch-secret: true
.
- объект
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipper
и иметь лейблlog-shipper.deckhouse.io/watch-secret: true
.
- объект
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipper
и иметь лейблlog-shipper.deckhouse.io/watch-secret: true
.
ClusterLoggingConfig
Scope: Cluster
Описывает источник логов в log-pipeline.
Каждый ресурс ClusterLoggingConfig
описывает правила сбора логов из кластера.
- строка
Указывает время, в течение которого удаленные файлы будут оставаться открытыми для чтения. Vector будет сохранять метаданные подов в течение этого времени, чтобы читать логи из удаленных подов. Эта опция полезна в случаях недоступности хранилища логов или сетевого разделения. Vector будет держать файлы логов открытыми до их окончательной отправки в пункт назначения.
Применение опции может повлиять на потребление ресурсов Vector и также быть причиной нехватки места на диске из-за удаленных файлов с логами. Используйте с осторожностью.
Формат - строка, содержащая единицу времени в часах и минутах: 30m, 1h, 2h30m, 24h.
Шаблон:
^([0-9]+h([0-9]+m)?|[0-9]+m)$
- объект
Задаёт фильтр по меткам пода.
Подробнее про выражения можно узнать в документации.
- массив объектов
Список выражений для меток, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging - key: tier operator: NotIn values: - production
- объект
Задаёт фильтр по пространствам имен.
Фильтр использует параметр
labelSelector
для определения пространств имен, из которых должны собираться логи.- объект
Фильтр по меткам пространств имен, с которых нужно собирать логи.
Подробнее про выражения можно узнать в документации.
- массив объектов
Список выражений для меток, которые должно иметь пространство имен, чтобы подпадать под условие фильтра.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- массив объектов
Список правил для фильтрации логов по их меткам метаданных.
Пример:
labelFilter: - field: container operator: In values: - nginx - field: pod_labels.tier operator: Regex values: - prod-.+ - stage-.+
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть;DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- массив объектов
Список фильтров для логов, которые применяются к полям сообщения в формате JSON.
Только логи, подпадающие под правила, будут сохранены в хранилище.
Пример:
logFilter: - field: tier operator: Exists - field: foo operator: NotIn values: - dev - 42 - 'true' - '3.14' - field: bar operator: Regex values: - "^abc" - "^\\d.+$"
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть.DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- объект
Условие, при котором находится последняя строчка многострокового лога.
- объект
Условие, при котором находится первая строчка многострокового лога.
- строка
Обязательный параметр
Типы парсеров:
None
— не парсить логи;General
— парсер, который пытается сливать логи, у которых в начале сообщения стоит пробел или табуляция;Backslash
— парсер, который парсит многострочные логи в SHELL-формате с обратным слэшем у строк одного сообщения;LogWithTime
— парсер, который ожидает, что любое новое сообщение начинается с временной метки;MultilineJSON
— простой парсер JSON-логов, который предполагает, что новое сообщение начинается с символа{
;Custom
- парсер, который парсит многострочные логи в указанном пользователем вspec.multilineParser.custom
формате.
По умолчанию:
"None"
Допустимые значения:
None
,General
,Backslash
,LogWithTime
,MultilineJSON
,Custom
Устаревший ресурс. Поддержка ресурса может быть исключена в следующих версиях.
Описывает источник логов в log-pipeline.
Каждый ресурс ClusterLoggingConfig
описывает правила сбора логов из кластера.
- строка
Указывает время, в течение которого удаленные файлы будут оставаться открытыми для чтения. Vector будет сохранять метаданные подов в течение этого времени, чтобы читать логи из удаленных подов. Эта опция полезна в случаях недоступности хранилища логов или сетевого разделения. Vector будет держать файлы логов открытыми до их окончательной отправки в пункт назначения.
Применение опции может повлиять на потребление ресурсов Vector и также быть причиной нехватки места на диске из-за удаленных файлов с логами. Используйте с осторожностью.
Формат - строка, содержащая единицу времени в часах и минутах: 30m, 1h, 2h30m, 24h.
Шаблон:
^([0-9]+h([0-9]+m)?|[0-9]+m)$
- объект
Задаёт фильтр по меткам пода.
Подробнее про выражения можно узнать в документации.
- массив объектов
Список выражений для меток, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging - key: tier operator: NotIn values: - production
- объект
Задаёт фильтр по пространствам имен.
Фильтр может использовать какой-то один способ задания условия из трех доступных (параметры
matchNames
,excludeNames
,labelSelector
).- объект
Фильтр по меткам пространств имен, с которых нужно собирать логи.
Подробнее про выражения можно узнать в документации.
- массив объектов
Список выражений для меток, которые должно иметь пространство имен, чтобы подпадать под условие фильтра.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- массив строк
Значение метки.
- массив объектов
Список правил для фильтрации логов по их меткам метаданных.
Пример:
labelFilter: - field: container operator: In values: - nginx - field: pod_labels.tier operator: Regex values: - prod-.+ - stage-.+
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть;DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- массив объектов
Список фильтров для логов, которые применяются к полям сообщения в формате JSON.
Только логи, подпадающие под правила, будут сохранены в хранилище.
Пример:
logFilter: - field: tier operator: Exists - field: foo operator: NotIn values: - dev - 42 - 'true' - '3.14' - field: bar operator: Regex values: - "^abc" - "^\\d.+$"
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть.DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- объект
Условие, при котором находится последняя строчка многострокового лога.
- объект
Условие, при котором находится первая строчка многострокового лога.
- строка
Обязательный параметр
Типы парсеров:
None
— не парсить логи;General
— парсер, который пытается сливать логи, у которых в начале сообщения стоит пробел или табуляция;Backslash
— парсер, который парсит многострочные логи в SHELL-формате с обратным слэшем у строк одного сообщения;LogWithTime
— парсер, который ожидает, что любое новое сообщение начинается с временной метки;MultilineJSON
— простой парсер JSON-логов, который предполагает, что новое сообщение начинается с символа{
;Custom
- парсер, который парсит многострочные логи в указанном пользователем вspec.multilineParser.custom
формате.
По умолчанию:
"None"
Допустимые значения:
None
,General
,Backslash
,LogWithTime
,MultilineJSON
,Custom
PodLoggingConfig
Scope: Namespaced
Version: v1alpha1
Ресурс для описания источника логов в log-pipeline.
Каждый ресурс PodLoggingConfig
описывает правила сбора логов из указанного namespace.
- строка
Указывает время, в течение которого удаленные файлы будут оставаться открытыми для чтения. Vector будет сохранять метаданные подов в течение этого времени, чтобы читать логи из удаленных подов. Эта опция полезна в случаях недоступности хранилища логов или сетевого разделения. Vector будет держать файлы логов открытыми до их окончательной отправки в пункт назначения.
Применение опции может повлиять на потребление ресурсов Vector и также быть причиной нехватки места на диске из-за удаленных файлов с логами. Используйте с осторожностью.
Формат - строка, содержащая единицу времени в часах и минутах: 30m, 1h, 2h30m, 24h.
Шаблон:
^([0-9]+h([0-9]+m)?|[0-9]+m)$
- массив объектов
Список правил для фильтрации логов по их меткам метаданных.
Пример:
labelFilter: - field: container operator: In values: - nginx - field: pod_labels.tier operator: Regex values: - prod-.+ - stage-.+ - field: message operator: Regex values: - ".*search_text.*"
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть;DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- объект
Задаёт фильтр по меткам пода.
Подробнее про выражения можно узнать в документации.
- массив объектов
Список выражений для меток, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- массив объектов
Список фильтров для логов, которые применяются к полям сообщения в формате JSON.
Только логи, подпавшие под правила, будут сохранены в хранилище.
Пример:
logFilter: - field: tier operator: Exists - field: foo operator: NotIn values: - dev - 42 - 'true' - '3.14' - field: bar operator: Regex values: - "^abc" - "^\\d.+$"
- строка
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве;NotIn
— является инверсией оператораIn
;Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);NotRegex
— является инверсией оператораRegex
(в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);Exists
— проверяет наличие поля и пропускает логи, только если поле есть;DoesNotExist
— проверяет наличие поля и пропускает логи, только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- объект
Условие, при котором находится последняя строчка многострокового лога.
- объект
Условие, при котором находится первая строчка многострокового лога.
- строка
Обязательный параметр
Типы парсеров:
None
— не парсить логи;General
— парсер, который пытается сливать логи, у которых в начале сообщения стоит пробел или табуляция;Backslash
— парсер, который парсит многострочные логи в SHELL-формате с обратным слэшем у строк одного сообщения;LogWithTime
— парсер, который ожидает, что любое новое сообщение начинается с временной метки;MultilineJSON
— простой парсер JSON-логов, который предполагает, что новое сообщение начинается с символа{
;Custom
- парсер, который парсит многострочные логи в указанном пользователем вspec.multilineParser.custom
формате.
По умолчанию:
"None"
Допустимые значения:
None
,General
,Backslash
,LogWithTime
,MultilineJSON
,Custom