ClusterLogDestination
Scope: Cluster
Version: v1alpha1
Описывает параметры хранилища логов, к которому можно подключить бесконечное количество источников.
metadata.name
задает имя upstream’а, который будет использоваться в custom resource 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]+))))?$
Примеры:
maxSize: 512Mi
maxSize: 268435488
- 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, к которым должны подключиться клиенты для получения метаданных (топиков и партиций).
По умолчанию:
[]
Пример:
bootstrapServers: - 10.14.22.123:9092 - 10.14.23.332:9092
- Элемент массивастрока
Шаблон:
^(.+)\:\d{1,5}$
- Элемент массивастрока
- spec.kafka.encodingобъект
В каком формате закодировать сообщение.
- spec.kafka.encoding.codecстрока
По умолчанию:
"JSON"
Допустимые значения:
JSON
,CEF
- spec.kafka.encoding.codecстрока
- spec.kafka.saslобъект
Конфигурация аутентификации SASL для взаимодействия с Kafka.
- spec.kafka.sasl.mechanismстрока
Обязательный параметр
Механизм аутентификации SASL. Поддерживаются только PLAIN и SCRAM-подобные механизмы.
Допустимые значения:
PLAIN
,SCRAM-SHA-256
,SCRAM-SHA-512
- spec.kafka.sasl.passwordстрока
Обязательный параметр
Пароль пользователя.
Пример:
password: qwerty
- spec.kafka.sasl.usernameстрока
Обязательный параметр
Имя пользователя.
Пример:
username: username
- spec.kafka.sasl.mechanismстрока
- 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 для записи событий. Этот параметр поддерживает синтаксис шаблонов, что дает возможность динамического создания топиков.
Примеры:
topic: logs
topic: logs-{{unit}}-%Y-%m-%d
- 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 тенанта.
Эта опция используется только для Grafana Cloud. Для локально запущенного 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
excludes: field: foo operator: NotIn values: - dev - 42 - 'true' - '3.14'
excludes: 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.
Каждый custom resource ClusterLoggingConfig
описывает правила сбора логов из кластера.
- specобъект
Обязательный параметр
- spec.destinationRefsмассив строк
Обязательный параметр
Массив имен custom resource
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.file.excludeмассив строк
- spec.kubernetesPodsобъект
Описывает правило сбора логов из подов кластера.
- 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.matchExpressions.keyстрока
- spec.kubernetesPods.labelSelector.matchLabelsобъект
Список меток, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
matchLabels: foo: bar baz: who
- spec.kubernetesPods.labelSelector.matchExpressionsмассив объектов
- 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.matchExpressions.keyстрока
- spec.kubernetesPods.namespaceSelector.labelSelector.matchLabelsобъект
Список меток, которые должно иметь пространство имен, чтобы подпадать под условие фильтра.
Пример:
matchLabels: foo: bar baz: who
- spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressionsмассив объектов
- spec.kubernetesPods.namespaceSelector.matchNamesмассив строк
Список пространств имен, с подов которого нужно собирать логи.
- 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массив объектов
Список фильтров для логов, которые применяются к полям сообщения в формате 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.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
собирает логи с подов.File
позволяет читать локальные файлы, доступные на узле.Допустимые значения:
KubernetesPods
,File
- spec.destinationRefsмассив строк
PodLoggingConfig
Scope: Namespaced
Version: v1alpha1
Custom resource для описания источника логов в log-pipeline.
Каждый custom resource 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объект
Задает фильтр по меткам пода.
Подробнее про выражения можно узнать в документации.
- spec.labelSelector.matchExpressionsмассив объектов
Список выражений для меток, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- spec.labelSelector.matchExpressions.keyстрока
Имя метки.
- spec.labelSelector.matchExpressions.operatorстрока
Оператор сравнения.
Допустимые значения:
In
,NotIn
,Exists
,DoesNotExist
- spec.labelSelector.matchExpressions.valuesмассив строк
Значение метки.
- Элемент массивастрока
Шаблон:
[a-z0-9]([-a-z0-9]*[a-z0-9])?
Длина:
1..63
- Элемент массивастрока
- spec.labelSelector.matchExpressions.keyстрока
- spec.labelSelector.matchLabelsобъект
Список меток, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
matchLabels: foo: bar baz: who
- spec.labelSelector.matchExpressionsмассив объектов
- 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.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массив строк