ClusterLogDestination
Scope: Cluster
Version: v1alpha1
Описывает параметры хранилища логов, к которому можно подключить бесконечное количество источников.
metadata.name
— задаёт имя upstream, который будет использоваться в CustomResource ClusterLoggingConfig.
- specобъект
Обязательный параметр
- spec.bufferобъект
Параметры буфера.
- spec.buffer.diskобъект
Параметры буфера на диске.
- spec.buffer.disk.maxSizeстрока или число
Максимальный размер буфера на диске. Должен быть не меньше ~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]+))))?$
- spec.buffer.disk.maxSizeстрока или число
- spec.buffer.memoryобъект
- spec.buffer.memory.maxEventsчисло
Максимальное количество событий в буфере.
- spec.buffer.memory.maxEventsчисло
- spec.buffer.typeстрока
Тип буфера для использования.
Допустимые значения:
Disk
,Memory
- spec.buffer.whenFullстрока
Поведение при заполнении буфера.
По умолчанию:
"Block"
Допустимые значения:
DropNewest
,Block
- spec.buffer.diskобъект
- spec.elasticsearchобъект
- spec.elasticsearch.authобъект
- spec.elasticsearch.auth.awsAccessKeyстрока
Закодированный в Base64 AWS
ACCESS_KEY
. - spec.elasticsearch.auth.awsAssumeRoleстрока
ARN роли в IAM.
- spec.elasticsearch.auth.awsRegionстрока
Регион AWS для аутентификации.
- spec.elasticsearch.auth.awsSecretKeyстрока
Закодированный в Base64 AWS
SECRET_KEY
. - spec.elasticsearch.auth.passwordстрока
Закодированный в Base64 пароль для Basic-аутентификации.
- spec.elasticsearch.auth.strategyстрока
Тип аутентификации —
Basic
илиAWS
.По умолчанию:
"Basic"
Допустимые значения:
Basic
,AWS
- spec.elasticsearch.auth.userстрока
Имя пользователя, используемое при Basic-аутентификации.
- spec.elasticsearch.auth.awsAccessKeyстрока
- spec.elasticsearch.dataStreamEnabledбулевый
Использовать Datastream для хранения логов (https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html).
Datastreams производительнее для хранения логов и метрик, но они существуют только в Elasticsearch >= 7.16.X.
По умолчанию:
false
- spec.elasticsearch.docTypeстрока
Использовать
doc_type
для индексов. Имеет значение использовать только для Elasticsearch <= 6.X.- Для Elasticsearch >= 7.X вам не нужно использовать эту опцию, т.к. все работает по умолчанию;
- Для Elasticsearch >= 6.X рекомендуемое значение —
_doc
, т.к. его использование позволит легко обновиться до Elasticsearch версии 7.X; - Для Elasticsearch < 6.X вы можете использовать любое значение, которое не начинается с
_
. Например —logs
.
- spec.elasticsearch.endpointстрока
Обязательный параметр
URL для подключения к Elasticsearch.
- spec.elasticsearch.indexстрока
Имя индекса, куда будут сохранены данные. Это поле можно задать динамически.
- spec.elasticsearch.pipelineстрока
Имя pipeline, который будет применён к данным перед записью в индекс.
- spec.elasticsearch.tlsобъект
Настройки защищённого TLS соединения.
- spec.elasticsearch.tls.caFileстрока
Закодированный в Base64 сертификат CA в формате PEM.
- spec.elasticsearch.tls.clientCrtобъект
Конфигурация клиентского сертификата.
- spec.elasticsearch.tls.clientCrt.crtFileстрока
Обязательный параметр
Закодированный в Base64 сертификат в формате PEM.
Также необходимо указать ключ в параметре
keyFile
. - spec.elasticsearch.tls.clientCrt.keyFileстрока
Обязательный параметр
Закодированный в Base64 ключ в формате PEM.
Также, необходимо указать сертификат в параметре
crtFile
. - spec.elasticsearch.tls.clientCrt.keyPassстрока
Закодированный в Base64 пароль для ключа.
- spec.elasticsearch.tls.clientCrt.crtFileстрока
- spec.elasticsearch.tls.verifyCertificateбулевый
Проверка TLS-сертификата удаленного хоста. Сертификат не будет проверен на наличие в списках отозванных сертификатов (Certificate Revocation Lists).
По умолчанию:
true
- spec.elasticsearch.tls.verifyHostnameбулевый
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удалённого хоста.
По умолчанию:
true
- spec.elasticsearch.tls.caFileстрока
- spec.elasticsearch.authобъект
- spec.extraLabelsобъект
Дополнительные 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 }}"
- spec.kafkaобъект
- spec.kafka.bootstrapServersмассив строк
Обязательный параметр
Список пар адресов (хост:порт) Kafka брокеров в кластере Kafka, к которым должны подключиться клиенты для получения метаданных (топиков и партиций).
По умолчанию:
[]
- Элемент массивастрока
Шаблон:
^(.+)\:\d{1,5}$
- Элемент массивастрока
- spec.kafka.tlsобъект
Настройки защищённого TLS-соединения.
- spec.kafka.tls.caFileстрока
Закодированный в Base64 сертификат CA в формате PEM.
- spec.kafka.tls.clientCrtобъект
Конфигурация клиентского сертификата.
- spec.kafka.tls.clientCrt.crtFileстрока
Обязательный параметр
Закодированный в Base64 сертификат в формате PEM.
Также необходимо указать ключ в параметре
keyFile
. - spec.kafka.tls.clientCrt.keyFileстрока
Обязательный параметр
Закодированный в Base64 ключ в формате PEM.
Также, необходимо указать сертификат в параметре
crtFile
. - spec.kafka.tls.clientCrt.keyPassстрока
Закодированный в Base64 пароль для ключа.
- spec.kafka.tls.clientCrt.crtFileстрока
- spec.kafka.tls.verifyCertificateбулевый
Проверка действия TLS-сертификата удаленного хоста.
По умолчанию:
true
- spec.kafka.tls.verifyHostnameбулевый
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удалённого хоста.
По умолчанию:
true
- spec.kafka.tls.caFileстрока
- spec.kafka.topicстрока
Обязательный параметр
Имя топика в Kafka для записи событий. Этот параметр поддерживает синтаксис шаблонов, что дает возможность динамического создания топиков.
- spec.kafka.bootstrapServersмассив строк
- spec.logstashобъект
- spec.logstash.endpointстрока
Обязательный параметр
URL для подключения к Logstash.
- spec.logstash.tlsобъект
Настройки защищённого TLS-соединения.
- spec.logstash.tls.caFileстрока
Закодированный в Base64 сертификат CA в формате PEM.
- spec.logstash.tls.clientCrtобъект
Конфигурация клиентского сертификата.
- spec.logstash.tls.clientCrt.crtFileстрока
Обязательный параметр
Закодированный в Base64 сертификат в формате PEM.
Также необходимо указать ключ в параметре
keyFile
. - spec.logstash.tls.clientCrt.keyFileстрока
Обязательный параметр
Закодированный в Base64 ключ в формате PEM.
Также, необходимо указать сертификат в параметре
crtFile
. - spec.logstash.tls.clientCrt.keyPassстрока
Закодированный в Base64 пароль для ключа.
- spec.logstash.tls.clientCrt.crtFileстрока
- spec.logstash.tls.verifyCertificateбулевый
Проверка действия TLS-сертификата удаленного хоста.
По умолчанию:
true
- spec.logstash.tls.verifyHostnameбулевый
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удалённого хоста.
По умолчанию:
true
- spec.logstash.tls.caFileстрока
- spec.logstash.endpointстрока
- spec.lokiобъект
- spec.loki.authобъект
- spec.loki.auth.passwordстрока
Закодированный в Base64 пароль для Basic-аутентификации.
- spec.loki.auth.strategyстрока
Используемый тип аутентификации.
По умолчанию:
"Basic"
Допустимые значения:
Basic
,Bearer
- spec.loki.auth.tokenстрока
Токен для Bearer-аутентификации.
- spec.loki.auth.userстрока
Имя пользователя, используемое при Basic-аутентификации.
- spec.loki.auth.passwordстрока
- spec.loki.endpointстрока
Обязательный параметр
URL для подключения к Loki.
Агент автоматически добавляет
/loki/api/v1/push
к URL при отправке данных. - spec.loki.tenantIDстрока
ID тенанта.
Эта опция используется только для GrafanaCloud. Для локально запущенного Loki опция ни на что не влияет.
- spec.loki.tlsобъект
Настройки защищённого TLS соединения.
- spec.loki.tls.caFileстрока
Закодированный в Base64 сертификат CA в формате PEM.
- spec.loki.tls.clientCrtобъект
Конфигурация клиентского сертификата
- spec.loki.tls.clientCrt.crtFileстрока
Обязательный параметр
Закодированный в Base64 сертификат в формате PEM.
Также необходимо указать ключ в параметре
keyFile
. - spec.loki.tls.clientCrt.keyFileстрока
Обязательный параметр
Закодированный в Base64 ключ в формате PEM.
Также, необходимо указать сертификат в параметре
crtFile
. - spec.loki.tls.clientCrt.keyPassстрока
Закодированный в Base64 пароль для ключа.
- spec.loki.tls.clientCrt.crtFileстрока
- spec.loki.tls.verifyHostnameбулевый
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удалённого хоста.
По умолчанию:
true
- spec.loki.tls.caFileстрока
- spec.loki.authобъект
- spec.rateLimitобъект
Параметр ограничения потока событий, передаваемых в хранилище.
- spec.rateLimit.excludesмассив объектов
Список фильтров для keyField.
Только логи, НЕ подпадающие под правила, будут ограничены по количеству записей.
Пример:
excludes: - field: tier operator: Exists - field: foo operator: NotIn values: - dev - 42 - "true" - "3.14" - field: bar operator: Regex values: - ^abc - ^\d.+$
- spec.rateLimit.excludes.fieldстрока
Обязательный параметр
Имя поля для фильтрации.
- spec.rateLimit.excludes.operatorстрока
Обязательный параметр
Оператор, который можно применить для фильтрации:
In
— ищет сроку или элемент в массиве.NotIn
— является инверсией оператораIn
.Regex
— пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля подпадающие под регулярное выражение пройдут в хранилище).NotRegex
— является инверсией оператораRegex
, — в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение.Exists
— проверяет наличие поля и пропускает логи только если поле есть.DoesNotExist
— проверяет наличие поля, и пропускает логи только если поле отсутствует.
Допустимые значения:
In
,NotIn
,Regex
,NotRegex
,Exists
,DoesNotExist
- spec.rateLimit.excludes.valuesмассив
Массив значений или регулярных выражений для соответствующих операций. Не работает для операций
Exists
иDoesNotExist
.Можно использовать целые числа или строки. Поля с числами с плавающей запятой и поля логического типа будут преобразованы в строки при сравнении.
- spec.rateLimit.excludes.fieldстрока
- spec.rateLimit.keyFieldстрока
Имя поля лога, значение которого будет хешировано, чтобы определить, должно ли событие быть ограничено по скорости.
- spec.rateLimit.linesPerMinuteчисло
Обязательный параметр
Количество записей в минуту.
- spec.rateLimit.excludesмассив объектов
- spec.splunkобъект
- spec.splunk.endpointстрока
Обязательный параметр
Базовый URL для экземпляра Splunk.
Пример:
endpoint: https://http-inputs-hec.splunkcloud.com
- spec.splunk.indexстрока
Имя индекса, куда будут сохранены данные. Это поле можно задать динамически.
- spec.splunk.tlsобъект
Настройки защищённого TLS-соединения.
- spec.splunk.tls.caFileстрока
Закодированный в Base64 сертификат CA в формате PEM.
- spec.splunk.tls.clientCrtобъект
Конфигурация клиентского сертификата.
- spec.splunk.tls.clientCrt.crtFileстрока
Обязательный параметр
Закодированный в Base64 сертификат в формате PEM.
Также необходимо указать ключ в параметре
keyFile
. - spec.splunk.tls.clientCrt.keyFileстрока
Обязательный параметр
Закодированный в Base64 ключ в формате PEM.
Также, необходимо указать сертификат в параметре
crtFile
. - spec.splunk.tls.clientCrt.keyPassстрока
Закодированный в Base64 пароль для ключа.
- spec.splunk.tls.clientCrt.crtFileстрока
- spec.splunk.tls.verifyCertificateбулевый
Проверка действия TLS-сертификата удаленного хоста.
По умолчанию:
true
- spec.splunk.tls.verifyHostnameбулевый
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удалённого хоста.
По умолчанию:
true
- spec.splunk.tls.caFileстрока
- spec.splunk.tokenстрока
Обязательный параметр
Токен по умолчанию для Splunk HEC. Если токен не был передан через metadata, будет использовано значение из этого поля.
- spec.splunk.endpointстрока
- spec.typeстрока
Возможные бэкенды для сохранения логов.
Допустимые значения:
Loki
,Elasticsearch
,Logstash
,Vector
,Kafka
,Splunk
- spec.vectorобъект
- spec.vector.endpointстрока
Обязательный параметр
Адрес для подключения к Vector. Для общение между экземплярами должен использоваться API v2.
Шаблон:
^(.+):([0-9]{1,5})$
- spec.vector.tlsобъект
Настройки защищённого TLS-соединения.
- spec.vector.tls.caFileстрока
Закодированный в Base64 сертификат CA в формате PEM.
- spec.vector.tls.clientCrtобъект
Конфигурация клиентского сертификата.
- spec.vector.tls.clientCrt.crtFileстрока
Обязательный параметр
Закодированный в Base64 сертификат в формате PEM.
Также необходимо указать ключ в параметре
keyFile
. - spec.vector.tls.clientCrt.keyFileстрока
Обязательный параметр
Закодированный в Base64 ключ в формате PEM.
Также, необходимо указать сертификат в параметре
crtFile
. - spec.vector.tls.clientCrt.keyPassстрока
Закодированный в Base64 пароль для ключа.
- spec.vector.tls.clientCrt.crtFileстрока
- spec.vector.tls.verifyCertificateбулевый
Проверка действия TLS-сертификата удаленного хоста.
По умолчанию:
true
- spec.vector.tls.verifyHostnameбулевый
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удалённого хоста.
По умолчанию:
true
- spec.vector.tls.caFileстрока
- spec.vector.endpointстрока
- spec.bufferобъект
ClusterLoggingConfig
Scope: Cluster
Version: v1alpha1
Описывает источник логов в log-pipeline.
Каждый CustomResource ClusterLoggingConfig
описывает правила сбора логов из кластера.
- specобъект
Обязательный параметр
- spec.destinationRefsмассив строк
Обязательный параметр
Массив имен CustomResource
ClusterLogDestination
, с которыми будет работать этот источник логов.Поля с числовыми и булевыми типами будут преобразованы в строки.
- spec.fileобъект
- spec.file.excludeмассив строк
Список путей и паттернов файлов, которые читать не требуется. Поддерживаются wildcards.
Пример:
exclude: - "/var/log/nginx/error.log" - "/var/log/audit.log"
- spec.file.includeмассив строк
Список путей и паттернов для чтения. Поддерживаются wildcards.
Пример:
include: - "/var/log/*.log" - "/var/log/nginx/*.log"
- spec.file.lineDelimiterстрока
Задание символа новой строки.
Пример:
lineDelimiter: "\\r\\n"
- spec.file.excludeмассив строк
- spec.kubernetesPodsобъект
- spec.kubernetesPods.labelSelectorобъект
Настройка
labelSelector
позволяет задать фильтр по Pod Labels.Подробнее про выражения можно узнать в документации.
- spec.kubernetesPods.labelSelector.matchExpressionsмассив объектов
Список выражений для label, которые должен иметь Pod.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- spec.kubernetesPods.labelSelector.matchExpressions.keyстрока
Обязательный параметр
- spec.kubernetesPods.labelSelector.matchExpressions.operatorстрока
Обязательный параметр
Допустимые значения:
In
,NotIn
,Exists
,DoesNotExist
- spec.kubernetesPods.labelSelector.matchExpressions.valuesмассив строк
- spec.kubernetesPods.labelSelector.matchExpressions.keyстрока
- spec.kubernetesPods.labelSelector.matchLabelsобъект
Список label, которые должен иметь Pod.
Пример:
matchLabels: foo: bar baz: who
- spec.kubernetesPods.labelSelector.matchExpressionsмассив объектов
- spec.kubernetesPods.namespaceSelectorобъект
Задать фильтр по Namespace.
- spec.kubernetesPods.namespaceSelector.excludeNamesмассив строк
Собирать логи со всех Namespace кроме указанных в списке.
- spec.kubernetesPods.namespaceSelector.labelSelectorобъект
Настройка
labelSelector
позволяет задать фильтр по namespace labels.Подробнее про выражения можно узнать в документации.
- spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressionsмассив объектов
Список выражений для label, которые должен иметь namespace.
Пример:
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.matchExpressions.keyстрока
- spec.kubernetesPods.namespaceSelector.labelSelector.matchLabelsобъект
Список label, которые должен иметь namespace.
Пример:
matchLabels: foo: bar baz: who
- spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressionsмассив объектов
- spec.kubernetesPods.namespaceSelector.matchNamesмассив строк
Собирать логи только с указанных Namespace.
- spec.kubernetesPods.namespaceSelector.excludeNamesмассив строк
- spec.kubernetesPods.labelSelectorобъект
- 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.labelFilter.fieldстрока
- spec.logFilterмассив объектов
Список фильтров для логов.
Только логи, подпадающие под правила, будут сохранены в хранилище.
Пример:
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.logFilter.fieldстрока
- spec.multilineParserобъект
Список паттернов для определения многострочных логов.
- spec.multilineParser.customобъект
Правила парсинга многострочных логов для
Custom
парсера.- spec.multilineParser.custom.endsWhenобъект
Условие, при котором находится последняя строчка многострокового лога.
- spec.multilineParser.custom.endsWhen.notRegexстрока
Регулярное выражение, которое считает мэтчем строки, НЕ попавшие в него.
- spec.multilineParser.custom.endsWhen.regexстрока
Регулярное выражение, которое считает мэтчем строки, попавшие в него.
- spec.multilineParser.custom.endsWhen.notRegexстрока
- spec.multilineParser.custom.startsWhenобъект
Условие, при котором находится первая строчка многострокового лога.
- spec.multilineParser.custom.startsWhen.notRegexстрока
Регулярное выражение, которое считает мэтчем строки, НЕ попавшие в него.
- spec.multilineParser.custom.startsWhen.regexстрока
Регулярное выражение, которое считает мэтчем строки, попавшие в него.
- spec.multilineParser.custom.startsWhen.notRegexстрока
- spec.multilineParser.custom.endsWhenобъект
- spec.multilineParser.typeстрока
Обязательный параметр
Типы парсеров:
None
— не парсить логи.General
— парсер, который пытается сливать логи у которых в начале сообщения стоит пробел или табуляция.Backslash
— парсер, который парсит многострочные логи в SHELL-формате с обратным слэшом у строк одного сообщения.LogWithTime
— парсер, который ожидает что любое новое сообщение начинается с временной метки.MultilineJSON
— простой парсер JSON-логов, который предполагает что новое сообщение начинается с символа{
.Custom
- парсер, который парсит многострочные логи в указанном пользователем вspec.multilineParser.custom
формате.
По умолчанию:
"None"
Допустимые значения:
None
,General
,Backslash
,LogWithTime
,MultilineJSON
,Custom
- spec.multilineParser.customобъект
- spec.typeстрока
Обязательный параметр
Возможные источники логов.
KubernetesPods
собирает логи с Pod’ов.File
позволяет читать локальные файлы, доступные на узле.Допустимые значения:
KubernetesPods
,File
- spec.destinationRefsмассив строк
PodLoggingConfig
Scope: Namespaced
Version: v1alpha1
CustomResource для описания источника логов в log-pipeline.
Каждый CustomResource PodLoggingConfig
описывает правила сбора логов из указанного Namespace.
- specобъект
Обязательный параметр
- spec.clusterDestinationRefsмассив строк
Обязательный параметр
Список бэкендов хранения (CRD
ClusterLogDestination
), в которые будет отправлено сообщение. - 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.labelFilter.fieldстрока
- spec.labelSelectorобъект
Настройка
labelSelector
позволяет задать фильтр по Pod Labels.Подробнее про выражения можно узнать в документации.
- spec.labelSelector.matchExpressionsмассив объектов
Список выражений для label, которые должен иметь Pod.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- spec.labelSelector.matchExpressions.keyстрока
Обязательный параметр
- spec.labelSelector.matchExpressions.operatorстрока
Обязательный параметр
Допустимые значения:
In
,NotIn
,Exists
,DoesNotExist
- spec.labelSelector.matchExpressions.valuesмассив строк
- spec.labelSelector.matchExpressions.keyстрока
- spec.labelSelector.matchLabelsобъект
Список label, которые должен иметь Pod.
Пример:
matchLabels: foo: bar baz: who
- spec.labelSelector.matchExpressionsмассив объектов
- spec.logFilterмассив объектов
Список фильтров для логов.
Только логи, подпавшие под правила, будут сохранены в хранилище.
Пример:
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.logFilter.fieldстрока
- spec.multilineParserобъект
Список паттернов для определения многострочных логов.
- spec.multilineParser.customобъект
Правила парсинга многострочных логов для
Custom
парсера.- spec.multilineParser.custom.endsWhenобъект
Условие, при котором находится последняя строчка многострокового лога.
- spec.multilineParser.custom.endsWhen.notRegexстрока
Регулярное выражение, которое считает мэтчем строки, НЕ попавшие в него.
- spec.multilineParser.custom.endsWhen.regexстрока
Регулярное выражение, которое считает мэтчем строки, попавшие в него.
- spec.multilineParser.custom.endsWhen.notRegexстрока
- spec.multilineParser.custom.startsWhenобъект
Условие, при котором находится первая строчка многострокового лога.
- spec.multilineParser.custom.startsWhen.notRegexстрока
Регулярное выражение, которое считает мэтчем строки, НЕ попавшие в него.
- spec.multilineParser.custom.startsWhen.regexстрока
Регулярное выражение, которое считает мэтчем строки, попавшие в него.
- spec.multilineParser.custom.startsWhen.notRegexстрока
- spec.multilineParser.custom.endsWhenобъект
- spec.multilineParser.typeстрока
Обязательный параметр
Типы парсеров:
None
— не парсить логи.General
— парсер, который пытается сливать логи у которых в начале сообщения стоит пробел или табуляция.Backslash
— парсер, который парсит многострочные логи в SHELL-формате с обратным слэшом у строк одного сообщения.LogWithTime
— парсер, который ожидает что любое новое сообщение начинается с временной метки.MultilineJSON
— простой парсер JSON-логов, который предполагает что новое сообщение начинается с символа{
.Custom
- парсер, который парсит многострочные логи в указанном пользователем вspec.multilineParser.custom
формате.
По умолчанию:
"None"
Допустимые значения:
None
,General
,Backslash
,LogWithTime
,MultilineJSON
,Custom
- spec.multilineParser.customобъект
- spec.clusterDestinationRefsмассив строк