Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
Стадия жизненного цикла модуля: General Availability
ClusterLogDestination
Scope: Cluster
Describes setting for a log storage, which you can use in many log sources.
metadata.name — is an upstream name, which you should use in custom resource ClusterLoggingConfig.
- объектspec
Обязательный параметр
- объектspec.buffer
Buffer parameters.
- объектspec.buffer.disk
Disk buffer parameters.
- строка или числоspec.buffer.disk.maxSize
The maximum size of the buffer on disk. Must be at least ~256MB (268435488 bytes).
You can express size as a plain integer or as a fixed-point number using one of these quantity suffixes:
E,P,T,G,M,k,Ei,Pi,Ti,Gi,Mi,Ki.More about resource quantity:
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Примеры:
maxSize: 512MimaxSize: 268435488
- объектspec.buffer.memory
- числоspec.buffer.memory.maxEvents
The maximum number of events allowed in the buffer.
- строкаspec.buffer.type
Обязательный параметр
The type of buffer to use.
Допустимые значения:
Disk,Memory - строкаspec.buffer.whenFull
Event handling behavior when a buffer is full.
По умолчанию:
BlockДопустимые значения:
DropNewest,Block
- объектspec.elasticsearch
- объектspec.elasticsearch.auth
- строкаspec.elasticsearch.auth.awsAccessKey
Base64-encoded AWS
ACCESS_KEY. - строкаspec.elasticsearch.auth.awsAssumeRole
The ARN of an IAM role to assume at startup.
- строкаspec.elasticsearch.auth.awsRegion
AWS region for authentication.
- строкаspec.elasticsearch.auth.awsSecretKey
Base64-encoded AWS
SECRET_KEY. - строкаspec.elasticsearch.auth.password
Base64-encoded Basic authentication password.
- строкаspec.elasticsearch.auth.strategy
The authentication strategy to use.
По умолчанию:
BasicДопустимые значения:
Basic,AWS - строкаspec.elasticsearch.auth.user
The Basic authentication user name.
- булевыйspec.elasticsearch.dataStreamEnabled
Use for storage indexes or datastreams (https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html).
Datastream usage is better for logs and metrics storage but they works only for Elasticsearch >= 7.16.X.
По умолчанию:
false - строкаspec.elasticsearch.docType
The
doc_typefor your index data. This is only relevant for Elasticsearch <= 6.X.- For Elasticsearch >= 7.X you do not need this option since this version has removed
doc_typemapping; - For Elasticsearch >= 6.X the recommended value is
_doc, because using it will make it easy to upgrade to 7.X; - For Elasticsearch < 6.X you can’t use a value starting with
_or empty string. Use, for example, values likelogs.
- For Elasticsearch >= 7.X you do not need this option since this version has removed
- строкаspec.elasticsearch.endpoint
Обязательный параметр
Base URL of the Elasticsearch instance.
- строкаspec.elasticsearch.index
Index name to write events to.
- строкаspec.elasticsearch.pipeline
Name of the pipeline to apply.
- объектspec.elasticsearch.tls
Configures the TLS options for outgoing connections.
- строкаspec.elasticsearch.tls.caFile
Base64-encoded CA certificate in PEM format.
- объектspec.elasticsearch.tls.clientCrt
Configures the client certificate for outgoing connections.
- строкаspec.elasticsearch.tls.clientCrt.crtFile
Обязательный параметр
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. - строкаspec.elasticsearch.tls.clientCrt.keyFile
Обязательный параметр
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. - строкаspec.elasticsearch.tls.clientCrt.keyPass
Base64-encoded pass phrase used to unlock the encrypted key file.
- объектspec.elasticsearch.tls.secretRef
Reference to a Kubernetes Secret containing the CA certificate (ca.pem), client certificate (crt.pem), private key (key.pem) and key pass (keyPass) in Base64-encoded PEM format. If specified, TLS settings are overridden with values from the secret. Secret should be located in d8-log-shipper namespace and have
log-shipper.deckhouse.io/watch-secret: truelabel.- строкаspec.elasticsearch.tls.secretRef.name
Name of the Secret with TLS certificates.
- булевыйspec.elasticsearch.tls.verifyCertificate
Validate the TLS certificate of the remote host. Specifically the issuer is checked but not CRLs (Certificate Revocation Lists).
По умолчанию:
true - булевыйspec.elasticsearch.tls.verifyHostname
Verifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
По умолчанию:
true
- объектspec.extraLabels
A set of labels that will be attached to each batch of events.
You can use simple templating here:
{{ app }}.There are some reserved keys:
- 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
Обязательный параметр
A list of host and port pairs that are the addresses of the Kafka brokers in a “bootstrap” Kafka cluster that a Kafka client connects to initially to bootstrap itself.
По умолчанию:
[]Пример:
bootstrapServers: - 10.14.22.123:9092 - 10.14.23.332:9092- строкаЭлемент массива
Шаблон:
^(.+)\:\d{1,5}$
- объектspec.kafka.encoding
How to encode the message.
- объектspec.kafka.encoding.cef
CEF-specific configuration fields. Only applicable when codec is set to
CEF.- строкаspec.kafka.encoding.cef.deviceProduct
По умолчанию:
log-shipper-agent - строкаspec.kafka.encoding.cef.deviceVendor
По умолчанию:
Deckhouse - строкаspec.kafka.encoding.cef.deviceVersion
По умолчанию:
1
- строкаspec.kafka.encoding.codec
Available encoding formats.
По умолчанию:
JSONДопустимые значения:
JSON,CEF
- строкаspec.kafka.keyField
Allows to set the key_field.
Примеры:
keyField: hostkeyField: nodekeyField: namespacekeyField: parsed_data.app_info - объектspec.kafka.sasl
Configuration for SASL authentication when interacting with Kafka.
- строкаspec.kafka.sasl.mechanism
Обязательный параметр
The SASL mechanism to use. Only PLAIN and SCRAM-based mechanisms are supported.
Допустимые значения:
PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 - строкаspec.kafka.sasl.password
Обязательный параметр
The SASL password.
Пример:
password: qwerty - строкаspec.kafka.sasl.username
Обязательный параметр
The SASL username.
Пример:
username: username
- объектspec.kafka.tls
Configures the TLS options for outgoing connections.
- строкаspec.kafka.tls.caFile
Base64-encoded CA certificate in PEM format.
- объектspec.kafka.tls.clientCrt
Configures the client certificate for outgoing connections.
- строкаspec.kafka.tls.clientCrt.crtFile
Обязательный параметр
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. - строкаspec.kafka.tls.clientCrt.keyFile
Обязательный параметр
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. - строкаspec.kafka.tls.clientCrt.keyPass
Base64-encoded pass phrase used to unlock the encrypted key file.
- объектspec.kafka.tls.secretRef
Reference to a Kubernetes Secret containing the CA certificate (ca.pem), client certificate (crt.pem), private key (key.pem) and key pass (keyPass) in Base64-encoded PEM format. If specified, TLS settings are overridden with values from the secret. Secret should be located in d8-log-shipper namespace and have
log-shipper.deckhouse.io/watch-secret: truelabel.- строкаspec.kafka.tls.secretRef.name
Name of the Secret with TLS certificates.
- булевыйspec.kafka.tls.verifyCertificate
Validate the TLS certificate of the remote host.
По умолчанию:
true - булевыйspec.kafka.tls.verifyHostname
Verifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
По умолчанию:
true
- строкаspec.kafka.topic
Обязательный параметр
The Kafka topic name to write events to. This parameter supports template syntax, which enables you to use dynamic per-event values.
Примеры:
topic: logstopic: logs-{{unit}}-%Y-%m-%d
- объектspec.logstash
- строкаspec.logstash.endpoint
Обязательный параметр
Base URL of the Logstash instance.
- объектspec.logstash.tls
Configures the TLS options for outgoing connections.
- строкаspec.logstash.tls.caFile
Base64-encoded CA certificate in PEM format.
- объектspec.logstash.tls.clientCrt
Configures the client certificate for outgoing connections.
- строкаspec.logstash.tls.clientCrt.crtFile
Обязательный параметр
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. - строкаspec.logstash.tls.clientCrt.keyFile
Обязательный параметр
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. - строкаspec.logstash.tls.clientCrt.keyPass
Base64-encoded pass phrase used to unlock the encrypted key file.
- объектspec.logstash.tls.secretRef
Reference to a Kubernetes Secret containing the CA certificate (ca.pem), client certificate (crt.pem), private key (key.pem) and key pass (keyPass) in Base64-encoded PEM format. If specified, TLS settings are overridden with values from the secret. Secret should be located in d8-log-shipper namespace and have
log-shipper.deckhouse.io/watch-secret: truelabel.- строкаspec.logstash.tls.secretRef.name
Name of the Secret with TLS certificates.
- булевыйspec.logstash.tls.verifyCertificate
Validate the TLS certificate of the remote host.
По умолчанию:
true - булевыйspec.logstash.tls.verifyHostname
Verifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
По умолчанию:
true
- объектspec.loki
- объектspec.loki.auth
- строкаspec.loki.auth.password
Base64-encoded Basic authentication password.
- строкаspec.loki.auth.strategy
The authentication strategy to use.
По умолчанию:
BasicДопустимые значения:
Basic,Bearer - строкаspec.loki.auth.token
The token to use for Bearer authentication.
- строкаspec.loki.auth.user
The Basic authentication user name.
- строкаspec.loki.endpoint
Обязательный параметр
Base URL of the Loki instance.
Agent automatically adds
/loki/api/v1/pushinto URL during data transmission. - строкаspec.loki.tenantID
ID of a tenant.
This option is used only for GrafanaCloud. When running Loki locally, a tenant ID is not required.
- объектspec.loki.tls
Configures the TLS options for outgoing connections.
- строкаspec.loki.tls.caFile
Base64-encoded CA certificate in PEM format.
- объектspec.loki.tls.clientCrt
Configures the client certificate for outgoing connections.
- строкаspec.loki.tls.clientCrt.crtFile
Обязательный параметр
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. - строкаspec.loki.tls.clientCrt.keyFile
Обязательный параметр
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. - строкаspec.loki.tls.clientCrt.keyPass
Base64-encoded pass phrase used to unlock the encrypted key file.
- объектspec.loki.tls.secretRef
Reference to a Kubernetes Secret containing the CA certificate (ca.pem), client certificate (crt.pem), private key (key.pem) and key pass (keyPass) in Base64-encoded PEM format. If specified, TLS settings are overridden with values from the secret. Secret should be located in d8-log-shipper namespace and have
log-shipper.deckhouse.io/watch-secret: truelabel.- строкаspec.loki.tls.secretRef.name
Name of the Secret with TLS certificates.
- булевыйspec.loki.tls.verifyCertificate
Validate the TLS certificate of the remote host.
If set to
false, the certificate is not checked in the Certificate Revocation Lists.По умолчанию:
true - булевыйspec.loki.tls.verifyHostname
Verifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
По умолчанию:
true
- объектspec.rateLimit
Parameter for limiting the flow of events.
- массив объектовspec.rateLimit.excludes
List of excludes for keyField.
Only NOT matched log entries would be rate limited.
Примеры:
excludes: field: tier operator: Existsexcludes: field: foo operator: NotIn values: - dev - 42 - 'true' - '3.14'excludes: field: bar operator: Regex values: - "^abc" - "^\\d.+$"- строкаspec.rateLimit.excludes.field
Обязательный параметр
Field name for filtering.
- строкаspec.rateLimit.excludes.operator
Обязательный параметр
Operator for log field comparations:
In— finds a substring in a string.NotIn— is a negative version of theInoperator.Regex— is trying to match regexp over the field; only log events with matching fields will pass.NotRegex— is a negative version of theRegexoperator; log events without fields or with not matched fields will pass.Exists— drops log event if it contains some fields.DoesNotExist— drops log event if it does not contain some fields.
Допустимые значения:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist - массивspec.rateLimit.excludes.values
Array of values or regexes for corresponding operations. Does not work for
ExistsandDoesNotExistoperations.Fields a with float or boolean values will be converted to strings during comparison.
- строкаspec.rateLimit.keyField
The name of the log field whose value will be hashed to determine if the event should be rate limited.
- числоspec.rateLimit.linesPerMinute
Обязательный параметр
The number of records per minute.
- объектspec.socket
- строкаspec.socket.address
Обязательный параметр
Address of the socket.
Шаблон:
^.*:[1-9][0-9]+$ - объектspec.socket.encoding
How to encode the message.
- объектspec.socket.encoding.cef
CEF-specific configuration fields. Only applicable when codec is set to
CEF.- строкаspec.socket.encoding.cef.deviceProduct
По умолчанию:
log-shipper-agent - строкаspec.socket.encoding.cef.deviceVendor
По умолчанию:
Deckhouse - строкаspec.socket.encoding.cef.deviceVersion
По умолчанию:
1
- строкаspec.socket.encoding.codec
Available encoding formats.
По умолчанию:
JSONДопустимые значения:
Text,JSON,Syslog,CEF,GELF
- строкаspec.socket.mode
Обязательный параметр
Допустимые значения:
TCP,UDP - объектspec.socket.tcp
- объектspec.socket.tcp.tls
Configures the TLS options for outgoing connections.
- строкаspec.socket.tcp.tls.caFile
Base64-encoded CA certificate in PEM format.
- объектspec.socket.tcp.tls.clientCrt
Configures the client certificate for outgoing connections.
- строкаspec.socket.tcp.tls.clientCrt.crtFile
Обязательный параметр
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. - строкаspec.socket.tcp.tls.clientCrt.keyFile
Обязательный параметр
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. - строкаspec.socket.tcp.tls.clientCrt.keyPass
Base64-encoded pass phrase used to unlock the encrypted key file.
- объектspec.socket.tcp.tls.secretRef
Reference to a Kubernetes Secret containing the CA certificate (ca.pem), client certificate (crt.pem), private key (key.pem) and key pass (keyPass) in Base64-encoded PEM format. If specified, TLS settings are overridden with values from the secret. Secret should be located in d8-log-shipper namespace and have
log-shipper.deckhouse.io/watch-secret: truelabel.- строкаspec.socket.tcp.tls.secretRef.name
Name of the Secret with TLS certificates.
- булевыйspec.socket.tcp.verifyCertificate
Validate the TLS certificate of the remote host.
If set to
false, the certificate is not checked in the Certificate Revocation Lists.По умолчанию:
true - булевыйspec.socket.tcp.verifyHostname
Verifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
По умолчанию:
true
- объектspec.splunk
- строкаspec.splunk.endpoint
Обязательный параметр
Base URL of the Splunk instance.
Пример:
endpoint: https://http-inputs-hec.splunkcloud.com - строкаspec.splunk.index
Index name to write events to.
- объектspec.splunk.tls
Configures the TLS options for outgoing connections.
- строкаspec.splunk.tls.caFile
Base64-encoded CA certificate in PEM format.
- объектspec.splunk.tls.clientCrt
Configures the client certificate for outgoing connections.
- строкаspec.splunk.tls.clientCrt.crtFile
Обязательный параметр
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. - строкаspec.splunk.tls.clientCrt.keyFile
Обязательный параметр
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. - строкаspec.splunk.tls.clientCrt.keyPass
Base64-encoded pass phrase used to unlock the encrypted key file.
- объектspec.splunk.tls.secretRef
Reference to a Kubernetes Secret containing the CA certificate (ca.pem), client certificate (crt.pem), private key (key.pem) and key pass (keyPass) in Base64-encoded PEM format. If specified, TLS settings are overridden with values from the secret. Secret should be located in d8-log-shipper namespace and have
log-shipper.deckhouse.io/watch-secret: truelabel.- строкаspec.splunk.tls.secretRef.name
Name of the Secret with TLS certificates.
- булевыйspec.splunk.tls.verifyCertificate
Validate the TLS certificate of the remote host.
По умолчанию:
true - булевыйspec.splunk.tls.verifyHostname
Verifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
По умолчанию:
true
- строкаspec.splunk.token
Обязательный параметр
Default Splunk HEC token. If an event has a token set in its metadata, it will have priority over the one set here.
- массив объектовspec.transformations
Ordered list of transformations applied to each log event before it is sent to the destination. Items are executed in array order.
AddLabelsruns afterextraLabelswhen both are configured.Available actions:
ReplaceKeys— recursively replace matches of thesourcepattern withtargetin the given paths.ParseMessage— parse themessagefield usingsourceFormatand write the result totargetLabel(default.message; the lone.merges into the event root). On parse failure the originalmessageis left unchanged.DropLabels— remove the value at eachlabelpath, or ifkeepKeysis set on an item, keep only those child key names inside the object atlabel.AddLabels— add labels (literals,{{ .path }}templates, optionalwhen). Runs afterextraLabels; on key name conflictsAddLabelswins.ReplaceValue— replace substrings in scalar string fields using thesourceregex;targetmay reference named groups as{{ group_name }}.
Примеры:
transformations: action: ReplaceKeys replaceKeys: source: "." target: _ labels: - ".pod_labels"transformations: action: ParseMessage parseMessage: sourceFormat: String string: regex: "^(?P<msg>.*)$" setLabels: msg: "{{ msg }}"transformations: action: ParseMessage parseMessage: sourceFormat: Klogtransformations: action: ParseMessage parseMessage: sourceFormat: JSON json: depth: 1transformations: action: DropLabels dropLabels: labels: - label: ".first" - label: ".second" - label: ".pod_labels" keepKeys: - app - teamtransformations: action: AddLabels addLabels: when: - .namespace == "production" setLabels: ".env": prod ".source_app": "{{ .pod_labels.app }}"transformations: action: ReplaceValue replaceValue: source: "\\d+" target: REDACTED labels: - ".message"- строкаspec.transformations.action
Transformation type; selects which parameter block is used.
Допустимые значения:
ReplaceKeys,ParseMessage,DropLabels,AddLabels,ReplaceValue - объектspec.transformations.addLabels
Adds fields to the event from
setLabels(literals and{{ .path }}templates). Runs afterextraLabelswhen both are set; on path conflicts values from this transform win. Optionalwhenfilter.- объектspec.transformations.addLabels.setLabels
Обязательный параметр
Keys are destination label paths in Vector notation: each key starts with
.relative to the event root (e.g..env,.source_app). Values are literals or{{ .path }}templates wherepathin the template is a source field path with a leading..Примеры:
setLabels: ".tier": backendsetLabels: ".source_app": "{{ .pod_labels.app }}" - массив строкspec.transformations.addLabels.when
Optional list of conditions combined with logical AND. In comparisons, the field path is a leading dot and dot-separated segments (e.g.
.namespace,.pod_labels.app). Each item is either: a comparisonpath ==|!=|=~|!=~ value(regular expression for=~/!=~), apathwith no operator or right-hand side (field exists), or!.path(field does not exist).Примеры:
when: .namespace == "production"when: .pod_labels.app =~ "^api-"when: .level != "debug"when: ".pod_labels.team"when: "!.pod_labels.legacy"- строкаЭлемент массива
Шаблон:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$
- объектspec.transformations.dropLabels
Removes field paths, or narrows objects by keeping only selected child keys at each
labelwhenkeepKeysis set.- массив объектовspec.transformations.dropLabels.labels
Обязательный параметр
Each item has a required Vector path
labeland optionalkeepKeys. IfkeepKeysis omitted, the subtree atlabelis removed. IfkeepKeysis set, only those child key names are kept in the object atlabel.- массив строкspec.transformations.dropLabels.labels.keepKeys
Child key names (no leading dot) to keep inside the object at
label; all other child keys are removed.- строкаЭлемент массива
Шаблон:
^[a-zA-Z0-9_.\-/]+$
- строкаspec.transformations.dropLabels.labels.label
Обязательный параметр
Vector path to a field or subtree; when
keepKeysis set, must resolve to an object.Шаблон:
^\.[a-zA-Z0-9_\[\]\\\.\-"/:]+$
- объектspec.transformations.parseMessage
Parses the string in the
messagefield (format fromsourceFormat) and writes the result totargetLabelas a Vector path with a leading.(default.message; the lone.merges the parsed object into the event root). On parse failure the originalmessagefield is left unchanged.- объектspec.transformations.parseMessage.json
- целочисленныйspec.transformations.parseMessage.json.depth
Depth for JSON parsing.
Допустимые значения:
1 <= X <= 128
- строкаspec.transformations.parseMessage.sourceFormat
Обязательный параметр
Message format for converting into an object.
Допустимые значения:
String,JSON,Klog,SysLog,CLF,Logfmt - объектspec.transformations.parseMessage.string
Settings for
sourceFormat: String.regexandsetLabelsare required.- строкаspec.transformations.parseMessage.string.regex
Обязательный параметр
Regular expression with named capture groups; requires
setLabels.Шаблон:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'\"|<>~#/@]+$ - объектspec.transformations.parseMessage.string.setLabels
Обязательный параметр
Maps output keys to literals or
{{ group_name }}templates.
- строкаspec.transformations.parseMessage.targetLabel
Destination path for the parsed value (default
.message). The lone value.merges into the event root. Must not be.parsed_data.По умолчанию:
.messageШаблон:
^(\.|\.[a-zA-Z0-9_\[\]\\\.\-"/:']+)$Примеры:
targetLabel: ".message"targetLabel: "."targetLabel: ".tmp"
- объектspec.transformations.replaceKeys
Recursively replaces matches of the
sourcepattern with thetargetvalue in the listed paths (labels). Paths use Vector notation with a leading.on each list item.- массив строкspec.transformations.replaceKeys.labels
Обязательный параметр
Label paths where the replacement runs. Each item must start with
.(Vector field path notation, e.g..pod_labels,.parsed_data).Примеры:
labels: ".pod_labels"labels: ".annotations"- строкаЭлемент массива
Шаблон:
^\.[a-zA-Z0-9_\[\]\\\.\-"/:']+$
- строкаspec.transformations.replaceKeys.source
Обязательный параметр
Pattern used to find matches. Can be a static string or a regular expression (same character set as other regex fields in transformations).
Шаблон:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$Примеры:
source: "."source: "^old\\." - строкаspec.transformations.replaceKeys.target
Literal replacement string for matched substrings (not a regex).
По умолчанию:
Примеры:
target: _target: ''
- объектspec.transformations.replaceValue
Replace matches of
sourcein each listed scalar string field withtarget.- массив строкspec.transformations.replaceValue.labels
Обязательный параметр
Paths to scalar string fields where replacement runs. Each item must start with
.(Vector path, e.g..message,.parsed_data.token).Примеры:
labels: ".message"labels: ".parsed_data.line"- строкаЭлемент массива
Шаблон:
^\.[a-zA-Z0-9_\[\]\\\.\-"/:']+$
- строкаspec.transformations.replaceValue.source
Обязательный параметр
Regular expression to search in each scalar field value.
Шаблон:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$Примеры:
source: "\\d+"source: "(?P<tok>token=[^\\s]+)" - строкаspec.transformations.replaceValue.target
Обязательный параметр
Replacement string; may use
{{name}}for named capture groups.Примеры:
target: REDACTEDtarget: "{{tok}}"
- строкаspec.type
Type of a log storage backend.
Допустимые значения:
Loki,Elasticsearch,Logstash,Vector,Kafka,Splunk,Socket - объектspec.vector
- строкаspec.vector.endpoint
Обязательный параметр
An address of the Vector instance. API v2 must be used for communication between instances.
Шаблон:
^(.+):([0-9]{1,5})$ - объектspec.vector.tls
Configures the TLS options for outgoing connections.
- строкаspec.vector.tls.caFile
Base64-encoded CA certificate in PEM format.
- объектspec.vector.tls.clientCrt
Configures the client certificate for outgoing connections.
- строкаspec.vector.tls.clientCrt.crtFile
Обязательный параметр
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. - строкаspec.vector.tls.clientCrt.keyFile
Обязательный параметр
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. - строкаspec.vector.tls.clientCrt.keyPass
Base64-encoded passphrase used to unlock the encrypted key file.
- объектspec.vector.tls.secretRef
Reference to a Kubernetes Secret containing the CA certificate (ca.pem), client certificate (crt.pem), private key (key.pem) and key pass (keyPass) in Base64-encoded PEM format. If specified, TLS settings are overridden with values from the secret. Secret should be located in d8-log-shipper namespace and have
log-shipper.deckhouse.io/watch-secret: truelabel.- строкаspec.vector.tls.secretRef.name
Name of the Secret with TLS certificates.
- булевыйspec.vector.tls.verifyCertificate
Validate the TLS certificate of the remote host.
По умолчанию:
true - булевыйspec.vector.tls.verifyHostname
Verifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
По умолчанию:
true
Устаревший ресурс. Поддержка ресурса может быть исключена в следующих версиях.
Описывает параметры хранилища логов, к которому можно подключить бесконечное количество источников.
metadata.name задаёт имя upstream’а, который будет использоваться в ресурсе 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: 512MimaxSize: 268435488
- объектspec.buffer.memory
- числоspec.buffer.memory.maxEvents
Максимальное количество событий в буфере.
- строкаspec.buffer.type
Обязательный параметр
Тип буфера для использования.
Допустимые значения:
Disk,Memory - строкаspec.buffer.whenFull
Поведение при заполнении буфера.
По умолчанию:
BlockДопустимые значения:
DropNewest,Block
- объект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.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.secretRef
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipperи иметь лейблlog-shipper.deckhouse.io/watch-secret: true.- строкаspec.elasticsearch.tls.secretRef.name
Имя секрета с TLS сертификатами.
- булевыйspec.elasticsearch.tls.verifyCertificate
Проверка TLS-сертификата удаленного хоста. Сертификат не будет проверен на наличие в списках отозванных сертификатов (Certificate Revocation Lists).
По умолчанию:
true - булевыйspec.elasticsearch.tls.verifyHostname
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удаленного хоста.
По умолчанию:
true
- объектspec.extraLabels
Дополнительные ярлыки, которыми будут снабжаться записи логов.
Вы можете использовать простые шаблоны:
{{ 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.cef
Поля конфигурации, специфичные для CEF. Применяется только в том случае, если для кодирования установлено значение
CEF.- строкаspec.kafka.encoding.cef.deviceProduct
По умолчанию:
log-shipper-agent - строкаspec.kafka.encoding.cef.deviceVendor
По умолчанию:
Deckhouse - строкаspec.kafka.encoding.cef.deviceVersion
По умолчанию:
1
- строкаspec.kafka.encoding.codec
Доступные форматы для кодирования.
По умолчанию:
JSONДопустимые значения:
JSON,CEF
- строкаspec.kafka.keyField
Позволяет задать поле key_field.
Примеры:
keyField: hostkeyField: nodekeyField: namespacekeyField: parsed_data.app_info - объект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.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.secretRef
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipperи иметь лейблlog-shipper.deckhouse.io/watch-secret: true.- строкаspec.kafka.tls.secretRef.name
Имя секрета с TLS-сертификатами.
- булевыйspec.kafka.tls.verifyCertificate
Проверка действия TLS-сертификата удаленного хоста.
По умолчанию:
true - булевыйspec.kafka.tls.verifyHostname
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удаленного хоста.
По умолчанию:
true
- строкаspec.kafka.topic
Обязательный параметр
Имя топика в Kafka для записи логов. Этот параметр поддерживает синтаксис шаблонов, что дает возможность динамического создания топиков.
Примеры:
topic: logstopic: logs-{{unit}}-%Y-%m-%d
- объект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.secretRef
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipperи иметь лейблlog-shipper.deckhouse.io/watch-secret: true.- строкаspec.logstash.tls.secretRef.name
Имя секрета с TLS-сертификатами.
- булевыйspec.logstash.tls.verifyCertificate
Проверка действия TLS-сертификата удаленного хоста.
По умолчанию:
true - булевыйspec.logstash.tls.verifyHostname
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удаленного хоста.
По умолчанию:
true
- объект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.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.secretRef
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipperи иметь лейблlog-shipper.deckhouse.io/watch-secret: true.- строкаspec.loki.tls.secretRef.name
Имя секрета с TLS-сертификатами.
- булевыйspec.loki.tls.verifyCertificate
Проверка TLS-сертификата удаленного хоста.
Если параметр установлен в
false, сертификат не проверяется на наличие в списке отозванных сертификатов (Certificate Revocation Lists).По умолчанию:
true - булевыйspec.loki.tls.verifyHostname
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удаленного хоста.
По умолчанию:
true
- объектspec.rateLimit
Параметр ограничения потока логов, передаваемых в хранилище.
- массив объектовspec.rateLimit.excludes
Список фильтров для keyField.
Только логи, НЕ подпадающие под правила, будут ограничены по количеству записей.
Примеры:
excludes: field: tier operator: Existsexcludes: 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.keyField
Имя поля лога, значение которого будет хешировано, чтобы определить, должен ли лог быть ограничен по скорости.
- числоspec.rateLimit.linesPerMinute
Обязательный параметр
Количество записей в минуту.
- объектspec.socket
- строкаspec.socket.address
Обязательный параметр
Адрес сокета.
Шаблон:
^.*:[1-9][0-9]+$ - объектspec.socket.encoding
В каком формате закодировать сообщение.
- объектspec.socket.encoding.cef
Поля конфигурации, специфичные для CEF. Применяется только в том случае, если для кодирования установлено значение
CEF.- строкаspec.socket.encoding.cef.deviceProduct
По умолчанию:
log-shipper-agent - строкаspec.socket.encoding.cef.deviceVendor
По умолчанию:
Deckhouse - строкаspec.socket.encoding.cef.deviceVersion
По умолчанию:
1
- строкаspec.socket.encoding.codec
Доступные форматы для кодирования.
По умолчанию:
JSONДопустимые значения:
Text,JSON,Syslog,CEF,GELF
- строкаspec.socket.mode
Обязательный параметр
Допустимые значения:
TCP,UDP - объектspec.socket.tcp
- объектspec.socket.tcp.tls
Настройки защищенного TLS-соединения.
- строкаspec.socket.tcp.tls.caFile
Закодированный в Base64 сертификат CA в формате PEM.
- объектspec.socket.tcp.tls.clientCrt
Конфигурация клиентского сертификата.
- строкаspec.socket.tcp.tls.clientCrt.crtFile
Обязательный параметр
Закодированный в Base64 сертификат в формате PEM.
Также необходимо указать ключ в параметре
keyFile. - строкаspec.socket.tcp.tls.clientCrt.keyFile
Обязательный параметр
Закодированный в Base64 ключ в формате PEM.
Также необходимо указать сертификат в параметре
crtFile. - строкаspec.socket.tcp.tls.clientCrt.keyPass
Закодированный в Base64 пароль для ключа.
- объектspec.socket.tcp.tls.secretRef
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipperи иметь лейблlog-shipper.deckhouse.io/watch-secret: true.- строкаspec.socket.tcp.tls.secretRef.name
Имя секрета с TLS-сертификатами.
- булевыйspec.socket.tcp.verifyCertificate
Проверка действия TLS-сертификата удаленного хоста.
Если установлено значение
false, сертификат не проверяется в списках отзыва сертификатов.По умолчанию:
true - булевыйspec.socket.tcp.verifyHostname
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удаленного хоста.
По умолчанию:
true
- объект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.secretRef
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipperи иметь лейблlog-shipper.deckhouse.io/watch-secret: true.- строкаspec.splunk.tls.secretRef.name
Имя секрета с TLS-сертификатами.
- булевыйspec.splunk.tls.verifyCertificate
Проверка действия TLS-сертификата удаленного хоста.
По умолчанию:
true - булевыйspec.splunk.tls.verifyHostname
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удаленного хоста.
По умолчанию:
true
- строкаspec.splunk.token
Обязательный параметр
Токен по умолчанию для Splunk HEC. Если токен не был передан через metadata, будет использовано значение из этого поля.
- массив объектовspec.transformations
Упорядоченный список трансформаций, применяемых к каждому логу перед отправкой в хранилище. Элементы выполняются в порядке следования в массиве.
Если заданы и
extraLabels, иAddLabels, сначала применяютсяextraLabels, затемAddLabels.Доступные действия:
ReplaceKeys— рекурсивно заменяет вхождения шаблонаsourceнаtargetв указанных путях к ярлыкам.ParseMessage— разбирает строку из поляmessage(формат вsourceFormat) и записывает результат вtargetLabel(по умолчанию.message; значение.— слияние с корнем лога). Если разбор невозможен, исходное полеmessageне меняется.DropLabels— удаляет значение по каждому путиlabelили, если у записи заданkeepKeys, оставляет в объекте по этому пути только перечисленные дочерние ключи.AddLabels— добавляет ярлыки (литералы, шаблоны{{ .path }}, опциональноwhen). Выполняется послеextraLabels; при совпадении имён ключей приоритет уAddLabels.ReplaceValue— заменяет подстроки в скалярных строковых полях по регулярному выражениюsource; вtargetдопускаются ссылки на именованные группы{{ group_name }}(replaceValue).
- строкаspec.transformations.action
Тип трансформации; определяет, какой из блоков параметров используется.
Допустимые значения:
ReplaceKeys,ParseMessage,DropLabels,AddLabels,ReplaceValue - объектspec.transformations.addLabels
- объектspec.transformations.addLabels.setLabels
Обязательный параметр
- массив строкspec.transformations.addLabels.when
- строкаЭлемент массива
Шаблон:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$
- объектspec.transformations.dropLabels
Удаляет поля по путям или сужает объекты: при заданном
keepKeysу элемента в объекте по путиlabelостаются только выбранные дочерние ключи.- массив строкspec.transformations.dropLabels.labels
У каждой записи обязателен путь
labelв нотации Vector (с ведущей., например.pod_labels) и опциональноkeepKeys. ЕслиkeepKeysне задан — удаляется всё значение (поддерево) по путиlabel. ЕслиkeepKeysзадан — в объекте по путиlabelсохраняются только перечисленные дочерние имена ключей (без ведущей точки), остальные дочерние ключи удаляются.- строкаЭлемент массива
Шаблон:
^\.[a-zA-Z0-9_\[\]\\\.\-]+$
- массив объектовspec.transformations.dropLabels.paths
List of path entries matching v1alpha2 dropLabels.labels.
- массив строкspec.transformations.dropLabels.paths.keepKeys
- строкаЭлемент массива
Шаблон:
^[a-zA-Z0-9_.\-/]+$
- строкаspec.transformations.dropLabels.paths.label
Обязательный параметр
Шаблон:
^\.[a-zA-Z0-9_\[\]\\\.\-]+$
- объектspec.transformations.parseMessage
Разбирает строку из поля
message(формат задаётся вsourceFormat) и записывает результат в путьtargetLabelв нотации Vector с ведущей.(по умолчанию.message; значение.— слияние распарсенного объекта с корнем лога). Если разбор невозможен, исходное полеmessageне меняется.- объектspec.transformations.parseMessage.json
- целочисленныйspec.transformations.parseMessage.json.depth
Ограничение глубины при разборе JSON (
max_depthв Vector).Допустимые значения:
1 <= X <= 128
- строкаspec.transformations.parseMessage.sourceFormat
Обязательный параметр
Формат исходной строки в
messageдля преобразования в объект (String, JSON, Klog, SysLog, CLF, Logfmt).Допустимые значения:
String,JSON,Klog,SysLog,CLF,Logfmt - объектspec.transformations.parseMessage.string
- строкаspec.transformations.parseMessage.string.regex
Регулярное выражение с именованными группами; требуется
setLabels.Шаблон:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'\"|<>~#/@]+$ - объектspec.transformations.parseMessage.string.setLabels
Сопоставление ключей результата литералам или шаблонам
{{ имя_группы }}. - строкаspec.transformations.parseMessage.string.targetField
Target field where the structured message is placed.
Шаблон:
^[a-zA-Z0-9_\\\.\-]+$
- строкаspec.transformations.parseMessage.targetLabel
Путь назначения для распарсенного значения (по умолчанию
.message). Значение.— слияние с корнем лога. Не может быть.parsed_data.По умолчанию:
.messageШаблон:
^(\.|\.[a-zA-Z0-9_\[\]\\\.\-"/:']+)$
- объектspec.transformations.replaceKeys
Рекурсивно заменяет вхождения шаблона
sourceна значениеtargetв перечисленных путях к ярлыкам (labels). Пути задаются в нотации Vector с ведущей.у каждого элемента списка.- массив строкspec.transformations.replaceKeys.labels
Обязательный параметр
Пути к ярлыкам, в которых выполняется замена (поле
labels). Каждый элемент должен начинаться с.(нотация путей Vector, например.pod_labels,.parsed_data).- строкаЭлемент массива
Шаблон:
^\.[a-zA-Z0-9_\[\]\\\.\-]+$
- строкаspec.transformations.replaceKeys.source
Обязательный параметр
Шаблон для поиска совпадений. Может быть статической строкой или регулярным выражением.
- строкаspec.transformations.replaceKeys.target
Значение, на которое будут заменены все совпадения шаблона.
По умолчанию:
- объектspec.transformations.replaceValue
- массив строкspec.transformations.replaceValue.labels
Обязательный параметр
- строкаЭлемент массива
Шаблон:
^\.[a-zA-Z0-9_\[\]\\\.\-"/:']+$
- строкаspec.transformations.replaceValue.source
Обязательный параметр
Шаблон:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$ - строкаspec.transformations.replaceValue.target
Обязательный параметр
- строкаspec.type
Возможные бэкенды для сохранения логов.
Допустимые значения:
Loki,Elasticsearch,Logstash,Vector,Kafka,Splunk,Socket - объект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.secretRef
Ссылка на секрет Kubernetes, содержащий сертификат CA (ca.pem), клиентский сертификат (crt.pem), приватный ключ (key.pem) и пароль ключа для клиентского сертификата (keyPass) в формате PEM, закодированном в Base64. Настройки TLS будут переопределены значениями из секрета. Секрет должен находиться в пространстве имён
d8-log-shipperи иметь лейблlog-shipper.deckhouse.io/watch-secret: true.- строкаspec.vector.tls.secretRef.name
Имя секрета с TLS-сертификатами.
- булевыйspec.vector.tls.verifyCertificate
Проверка действия TLS-сертификата удаленного хоста.
По умолчанию:
true - булевыйspec.vector.tls.verifyHostname
Проверка соответствия имени удаленного хоста и имени, указанного в TLS-сертификате удаленного хоста.
По умолчанию:
true
ClusterLoggingConfig
Scope: Cluster
Описывает источник логов в 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
Задаёт фильтр по пространствам имен.
Фильтр использует параметр
labelSelectorдля определения пространств имен, из которых должны собираться логи.- объект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
Значение лейбла.
- строкаЭлемент массива
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$Длина:
1..63
- объектspec.kubernetesPods.namespaceSelector.labelSelector.matchLabels
Список лейблов, которые должно иметь пространство имен, чтобы подпадать под условие фильтра.
Пример:
matchLabels: foo: bar baz: who
- массив объектов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
Устаревший ресурс. Поддержка ресурса может быть исключена в следующих версиях.
Описывает источник логов в 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
Значение лейбла.
- строкаЭлемент массива
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$Длина:
1..63
- объект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
PodLoggingConfig
Scope: Namespaced
Version: v1alpha1
Ресурс для описания источника логов в log-pipeline.
Каждый ресурс PodLoggingConfig описывает правила сбора логов из указанного namespace.
- объектspec
Обязательный параметр
- массив строкspec.clusterDestinationRefs
Обязательный параметр
Список бэкендов хранения (CRD
ClusterLogDestination), в которые будет отправлено сообщение. - строкаspec.keepDeletedFilesOpenedFor
Указывает время, в течение которого удаленные файлы будут оставаться открытыми для чтения. Vector будет сохранять метаданные подов в течение этого времени, чтобы читать логи из удаленных подов. Эта опция полезна в случаях недоступности хранилища логов или сетевого разделения. Vector будет держать файлы логов открытыми до их окончательной отправки в пункт назначения.
Применение опции может повлиять на потребление ресурсов Vector и также быть причиной нехватки места на диске из-за удаленных файлов с логами. Используйте с осторожностью.
Формат - строка, содержащая единицу времени в часах и минутах: 30m, 1h, 2h30m, 24h.
Шаблон:
^([0-9]+h([0-9]+m)?|[0-9]+m)$ - массив объектовspec.labelFilter
Список правил для фильтрации логов по их лейблам метаданных.
Пример:
labelFilter: - field: container operator: In values: - nginx - field: pod_labels.tier operator: Regex values: - prod-.+ - stage-.+ - field: message operator: Regex values: - ".*search_text.*"- строка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.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.matchLabels
Список лейблов, которые должен иметь под, чтобы подпадать под условие фильтра.
Пример:
matchLabels: foo: bar baz: who
- массив объектов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