The module lifecycle stage: General Availability
The module has requirements for installation
The Deckhouse Kubernetes Platform installs CRDs but does not remove them when a module is disabled. If you no longer need the created CRDs, delete them.
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.
-
objectspec
-
objectspec.bufferBuffer parameters.
-
objectspec.buffer.diskDisk buffer parameters.
-
integer or stringspec.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:
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Examples:
maxSize: 512MimaxSize: 268435488
-
-
objectspec.buffer.memory
-
numberspec.buffer.memory.maxEventsThe maximum number of events allowed in the buffer.
-
-
stringspec.buffer.type
Required value
The type of buffer to use.Allowed values:
Disk,Memory -
stringspec.buffer.whenFullEvent handling behavior when a buffer is full.
Default:
BlockAllowed values:
DropNewest,Block
-
-
objectspec.elasticsearch
-
objectspec.elasticsearch.auth
-
stringspec.elasticsearch.auth.awsAccessKeyBase64-encoded AWS
ACCESS_KEY. -
stringspec.elasticsearch.auth.awsAssumeRoleThe ARN of an IAM role to assume at startup.
-
stringspec.elasticsearch.auth.awsRegionAWS region for authentication.
-
stringspec.elasticsearch.auth.awsSecretKeyBase64-encoded AWS
SECRET_KEY. -
stringspec.elasticsearch.auth.passwordBase64-encoded Basic authentication password.
-
stringspec.elasticsearch.auth.strategyThe authentication strategy to use.
Default:
BasicAllowed values:
Basic,AWS -
stringspec.elasticsearch.auth.userThe Basic authentication user name.
-
-
booleanspec.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.
Default:
false -
stringspec.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
-
stringspec.elasticsearch.endpoint
Required value
Base URL of the Elasticsearch instance. -
stringspec.elasticsearch.indexIndex name to write events to.
-
stringspec.elasticsearch.pipelineName of the pipeline to apply.
-
objectspec.elasticsearch.tlsConfigures the TLS options for outgoing connections.
-
stringspec.elasticsearch.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.elasticsearch.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.elasticsearch.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.elasticsearch.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.elasticsearch.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.elasticsearch.tls.secretRefReference 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.-
stringspec.elasticsearch.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.elasticsearch.tls.verifyCertificateValidate the TLS certificate of the remote host. Specifically the issuer is checked but not CRLs (Certificate Revocation Lists).
Default:
true -
booleanspec.elasticsearch.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
-
objectspec.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
Example:
app_info: '{{ app }}' array_member: '{{ array[0] }}' forwarder: vector key: value symbol_escating_value: '{{ pay\.day }}' -
objectspec.kafka
-
array of stringsspec.kafka.bootstrapServers
Required value
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.Default:
[]Example:
bootstrapServers: - 10.14.22.123:9092 - 10.14.23.332:9092-
stringspec.kafka.bootstrapServers.Element of the array
Pattern:
^(.+)\:\d{1,5}$
-
-
objectspec.kafka.encodingHow to encode the message.
-
objectspec.kafka.encoding.cefCEF-specific configuration fields. Only applicable when codec is set to
CEF.-
stringspec.kafka.encoding.cef.deviceProduct
Default:
log-shipper-agentMinimal length:
1 -
stringspec.kafka.encoding.cef.deviceVendor
Default:
DeckhouseMinimal length:
1 -
stringspec.kafka.encoding.cef.deviceVersion
Default:
1Minimal length:
1
-
-
stringspec.kafka.encoding.codecAvailable encoding formats.
Default:
JSONAllowed values:
JSON,CEF
-
-
stringspec.kafka.keyFieldAllows to set the key_field.
Examples:
keyField: hostkeyField: nodekeyField: namespacekeyField: parsed_data.app_info -
objectspec.kafka.saslConfiguration for SASL authentication when interacting with Kafka.
-
stringspec.kafka.sasl.mechanism
Required value
The SASL mechanism to use. Only PLAIN and SCRAM-based mechanisms are supported.Allowed values:
PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 -
stringspec.kafka.sasl.password
Required value
The SASL password.Example:
password: qwerty -
stringspec.kafka.sasl.username
Required value
The SASL username.Example:
username: username
-
-
objectspec.kafka.tlsConfigures the TLS options for outgoing connections.
-
stringspec.kafka.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.kafka.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.kafka.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.kafka.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.kafka.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.kafka.tls.secretRefReference 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.-
stringspec.kafka.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.kafka.tls.verifyCertificateValidate the TLS certificate of the remote host.
Default:
true -
booleanspec.kafka.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
stringspec.kafka.topic
Required value
The Kafka topic name to write events to. This parameter supports template syntax, which enables you to use dynamic per-event values.Examples:
topic: logstopic: logs-{{unit}}-%Y-%m-%d
-
-
objectspec.logstash
-
stringspec.logstash.endpoint
Required value
Base URL of the Logstash instance. -
objectspec.logstash.tlsConfigures the TLS options for outgoing connections.
-
stringspec.logstash.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.logstash.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.logstash.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.logstash.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.logstash.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.logstash.tls.secretRefReference 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.-
stringspec.logstash.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.logstash.tls.verifyCertificateValidate the TLS certificate of the remote host.
Default:
true -
booleanspec.logstash.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
-
objectspec.loki
-
objectspec.loki.auth
-
stringspec.loki.auth.passwordBase64-encoded Basic authentication password.
-
stringspec.loki.auth.strategyThe authentication strategy to use.
Default:
BasicAllowed values:
Basic,Bearer -
stringspec.loki.auth.tokenThe token to use for Bearer authentication.
-
stringspec.loki.auth.userThe Basic authentication user name.
-
-
stringspec.loki.endpoint
Required value
Base URL of the Loki instance.
Agent automatically adds
/loki/api/v1/pushinto URL during data transmission. -
stringspec.loki.tenantID
ID of a tenant.
This option is used only for GrafanaCloud. When running Loki locally, a tenant ID is not required.
-
objectspec.loki.tlsConfigures the TLS options for outgoing connections.
-
stringspec.loki.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.loki.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.loki.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.loki.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.loki.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.loki.tls.secretRefReference 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.-
stringspec.loki.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.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.Default:
true -
booleanspec.loki.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
-
objectspec.rateLimitParameter for limiting the flow of events.
-
array of objectsspec.rateLimit.excludes
List of excludes for keyField.
Only NOT matched log entries would be rate limited.
Examples:
field: tier operator: Existsfield: foo operator: NotIn values: - dev - 42.0 - 'true' - '3.14'field: bar operator: Regex values: - ^abc - '^\d.+$'-
stringspec.rateLimit.excludes.fieldField name for filtering.
-
stringspec.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.
Allowed values:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
arrayspec.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.
-
-
stringspec.rateLimit.keyFieldThe name of the log field whose value will be hashed to determine if the event should be rate limited.
-
numberspec.rateLimit.linesPerMinute
Required value
The number of records per minute.
-
-
objectspec.socket
-
stringspec.socket.address
Required value
Address of the socket.Pattern:
^.*:[1-9][0-9]+$ -
objectspec.socket.encodingHow to encode the message.
-
objectspec.socket.encoding.cefCEF-specific configuration fields. Only applicable when codec is set to
CEF.-
stringspec.socket.encoding.cef.deviceProduct
Default:
log-shipper-agentMinimal length:
1 -
stringspec.socket.encoding.cef.deviceVendor
Default:
DeckhouseMinimal length:
1 -
stringspec.socket.encoding.cef.deviceVersion
Default:
1Minimal length:
1
-
-
stringspec.socket.encoding.codecAvailable encoding formats.
Default:
JSONAllowed values:
Text,JSON,Syslog,CEF,GELF
-
-
stringspec.socket.mode
Required value
Allowed values:
TCP,UDP -
objectspec.socket.tcp
-
objectspec.socket.tcp.tlsConfigures the TLS options for outgoing connections.
-
stringspec.socket.tcp.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.socket.tcp.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.socket.tcp.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.socket.tcp.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.socket.tcp.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.socket.tcp.tls.secretRefReference 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.-
stringspec.socket.tcp.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
-
booleanspec.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.Default:
true -
booleanspec.socket.tcp.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
-
objectspec.splunk
-
stringspec.splunk.endpoint
Required value
Base URL of the Splunk instance.Example:
endpoint: https://http-inputs-hec.splunkcloud.com -
stringspec.splunk.indexIndex name to write events to.
-
objectspec.splunk.tlsConfigures the TLS options for outgoing connections.
-
stringspec.splunk.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.splunk.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.splunk.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.splunk.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.splunk.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.splunk.tls.secretRefReference 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.-
stringspec.splunk.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.splunk.tls.verifyCertificateValidate the TLS certificate of the remote host.
Default:
true -
booleanspec.splunk.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
stringspec.splunk.token
Required value
Default Splunk HEC token. If an event has a token set in its metadata, it will have priority over the one set here.
-
-
array of objectsspec.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 }}.
Examples:
action: ReplaceKeys replaceKeys: labels: - .pod_labels source: . target: _action: ParseMessage parseMessage: sourceFormat: String string: regex: ^(?P<msg>.*)$ setLabels: msg: '{{ msg }}'action: ParseMessage parseMessage: sourceFormat: Klogaction: ParseMessage parseMessage: json: depth: 1 sourceFormat: JSONaction: DropLabels dropLabels: labels: - label: .first - label: .second - keepKeys: - app - team label: .pod_labelsaction: AddLabels addLabels: setLabels: .env: prod .source_app: '{{ .pod_labels.app }}' when: - .namespace == "production"action: ReplaceValue replaceValue: labels: - .message source: '\d+' target: REDACTED-
stringspec.transformations.actionTransformation type; selects which parameter block is used.
Allowed values:
ReplaceKeys,ParseMessage,DropLabels,AddLabels,ReplaceValue -
objectspec.transformations.addLabelsAdds fields to the event from
setLabels(literals and{{ .path }}templates). Runs afterextraLabelswhen both are set; on path conflicts values from this transform win. Optionalwhenfilter.-
objectspec.transformations.addLabels.setLabels
Required value
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..Examples:
.tier: backend.source_app: '{{ .pod_labels.app }}' -
array of stringsspec.transformations.addLabels.whenOptional 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).Examples:
when: .namespace == "production"when: .pod_labels.app =~ "^api-"when: .level != "debug"when: .pod_labels.teamwhen: '!.pod_labels.legacy'-
stringspec.transformations.addLabels.when.Element of the array
Pattern:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$
-
-
-
objectspec.transformations.dropLabelsRemoves field paths, or narrows objects by keeping only selected child keys at each
labelwhenkeepKeysis set.-
array of objectsspec.transformations.dropLabels.labels
Required value
Each item has a required Vector pathlabeland optionalkeepKeys. IfkeepKeysis omitted, the subtree atlabelis removed. IfkeepKeysis set, only those child key names are kept in the object atlabel.-
array of stringsspec.transformations.dropLabels.labels.keepKeysChild key names (no leading dot) to keep inside the object at
label; all other child keys are removed.-
stringspec.transformations.dropLabels.labels.keepKeys.Element of the array
Pattern:
^[a-zA-Z0-9_.\-/]+$
-
-
stringspec.transformations.dropLabels.labels.labelVector path to a field or subtree; when
keepKeysis set, must resolve to an object.Pattern:
^\.[a-zA-Z0-9_\[\]\\\.\-"/:]+$
-
-
-
objectspec.transformations.parseMessageParses 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.-
objectspec.transformations.parseMessage.json
-
integerspec.transformations.parseMessage.json.depthDepth for JSON parsing.
Allowed values:
1 <= X <= 128
-
-
stringspec.transformations.parseMessage.sourceFormat
Required value
Message format for converting into an object.Allowed values:
String,JSON,Klog,SysLog,CLF,Logfmt -
objectspec.transformations.parseMessage.stringSettings for
sourceFormat: String.regexandsetLabelsare required.-
stringspec.transformations.parseMessage.string.regex
Required value
Regular expression with named capture groups; requiressetLabels.Pattern:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'\"|<>~#/@]+$ -
objectspec.transformations.parseMessage.string.setLabels
Required value
Maps output keys to literals or{{ group_name }}templates.
-
-
stringspec.transformations.parseMessage.targetLabelDestination path for the parsed value (default
.message). The lone value.merges into the event root. Must not be.parsed_data.Default:
.messagePattern:
^(\.|\.[a-zA-Z0-9_\[\]\\\.\-"/:']+)$Examples:
targetLabel: .messagetargetLabel: .targetLabel: .tmp
-
-
objectspec.transformations.replaceKeysRecursively replaces matches of the
sourcepattern with thetargetvalue in the listed paths (labels). Paths use Vector notation with a leading.on each list item.-
array of stringsspec.transformations.replaceKeys.labels
Required value
Label paths where the replacement runs. Each item must start with.(Vector field path notation, e.g..pod_labels,.parsed_data).Examples:
labels: .pod_labelslabels: .annotations-
stringspec.transformations.replaceKeys.labels.Element of the array
Pattern:
^\.[a-zA-Z0-9_\[\]\\\.\-"/:']+$
-
-
stringspec.transformations.replaceKeys.source
Required value
Pattern used to find matches. Can be a static string or a regular expression (same character set as other regex fields in transformations).Pattern:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$Examples:
source: .source: '^old\.' -
stringspec.transformations.replaceKeys.targetLiteral replacement string for matched substrings (not a regex).
Default:
‘’Examples:
target: _target: ''
-
-
objectspec.transformations.replaceValueReplace matches of
sourcein each listed scalar string field withtarget.-
array of stringsspec.transformations.replaceValue.labels
Required value
Paths to scalar string fields where replacement runs. Each item must start with.(Vector path, e.g..message,.parsed_data.token).Examples:
labels: .messagelabels: .parsed_data.line-
stringspec.transformations.replaceValue.labels.Element of the array
Pattern:
^\.[a-zA-Z0-9_\[\]\\\.\-"/:']+$
-
-
stringspec.transformations.replaceValue.source
Required value
Regular expression to search in each scalar field value.Pattern:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$Examples:
source: '\d+'source: '(?P<tok>token=[^\s]+)' -
stringspec.transformations.replaceValue.target
Required value
Replacement string; may use{{name}}for named capture groups.Examples:
target: REDACTEDtarget: '{{tok}}'
-
-
stringspec.typeType of a log storage backend.
Allowed values:
Loki,Elasticsearch,Logstash,Vector,Kafka,Splunk,Socket -
objectspec.vector
-
stringspec.vector.endpoint
Required value
An address of the Vector instance. API v2 must be used for communication between instances.Pattern:
^(.+):([0-9]{1,5})$ -
objectspec.vector.tlsConfigures the TLS options for outgoing connections.
-
stringspec.vector.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.vector.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.vector.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.vector.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.vector.tls.clientCrt.keyPassBase64-encoded passphrase used to unlock the encrypted key file.
-
-
objectspec.vector.tls.secretRefReference 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.-
stringspec.vector.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.vector.tls.verifyCertificateValidate the TLS certificate of the remote host.
Default:
true -
booleanspec.vector.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
-
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.
-
objectspec
-
objectspec.bufferBuffer parameters.
-
objectspec.buffer.diskDisk buffer parameters.
-
integer or stringspec.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:
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Examples:
maxSize: 512MimaxSize: 268435488
-
-
objectspec.buffer.memory
-
numberspec.buffer.memory.maxEventsThe maximum number of events allowed in the buffer.
-
-
stringspec.buffer.type
Required value
The type of buffer to use.Allowed values:
Disk,Memory -
stringspec.buffer.whenFullEvent handling behavior when a buffer is full.
Default:
BlockAllowed values:
DropNewest,Block
-
-
objectspec.elasticsearch
-
objectspec.elasticsearch.auth
-
stringspec.elasticsearch.auth.awsAccessKeyBase64-encoded AWS
ACCESS_KEY. -
stringspec.elasticsearch.auth.awsAssumeRoleThe ARN of an IAM role to assume at startup.
-
stringspec.elasticsearch.auth.awsRegionAWS region for authentication.
-
stringspec.elasticsearch.auth.awsSecretKeyBase64-encoded AWS
SECRET_KEY. -
stringspec.elasticsearch.auth.passwordBase64-encoded Basic authentication password.
-
stringspec.elasticsearch.auth.strategyThe authentication strategy to use.
Default:
BasicAllowed values:
Basic,AWS -
stringspec.elasticsearch.auth.userThe Basic authentication user name.
-
-
booleanspec.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.
Default:
false -
stringspec.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
-
stringspec.elasticsearch.endpoint
Required value
Base URL of the Elasticsearch instance. -
stringspec.elasticsearch.indexIndex name to write events to.
-
stringspec.elasticsearch.pipelineName of the pipeline to apply.
-
objectspec.elasticsearch.tlsConfigures the TLS options for outgoing connections.
-
stringspec.elasticsearch.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.elasticsearch.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.elasticsearch.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.elasticsearch.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.elasticsearch.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.elasticsearch.tls.secretRefReference 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.-
stringspec.elasticsearch.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.elasticsearch.tls.verifyCertificateValidate the TLS certificate of the remote host. Specifically the issuer is checked but not CRLs (Certificate Revocation Lists).
Default:
true -
booleanspec.elasticsearch.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
-
objectspec.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
Example:
app_info: '{{ app }}' array_member: '{{ array[0] }}' forwarder: vector key: value symbol_escating_value: '{{ pay\.day }}' -
objectspec.kafka
-
array of stringsspec.kafka.bootstrapServers
Required value
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.Default:
[]Example:
bootstrapServers: - 10.14.22.123:9092 - 10.14.23.332:9092-
stringspec.kafka.bootstrapServers.Element of the array
Pattern:
^(.+)\:\d{1,5}$
-
-
objectspec.kafka.encodingHow to encode the message.
-
objectspec.kafka.encoding.cefCEF-specific configuration fields. Only applicable when codec is set to
CEF.-
stringspec.kafka.encoding.cef.deviceProduct
Default:
log-shipper-agentMinimal length:
1 -
stringspec.kafka.encoding.cef.deviceVendor
Default:
DeckhouseMinimal length:
1 -
stringspec.kafka.encoding.cef.deviceVersion
Default:
1Minimal length:
1
-
-
stringspec.kafka.encoding.codecAvailable encoding formats.
Default:
JSONAllowed values:
JSON,CEF
-
-
stringspec.kafka.keyFieldAllows to set the key_field.
Examples:
keyField: hostkeyField: nodekeyField: namespacekeyField: parsed_data.app_info -
objectspec.kafka.saslConfiguration for SASL authentication when interacting with Kafka.
-
stringspec.kafka.sasl.mechanism
Required value
The SASL mechanism to use. Only PLAIN and SCRAM-based mechanisms are supported.Allowed values:
PLAIN,SCRAM-SHA-256,SCRAM-SHA-512 -
stringspec.kafka.sasl.password
Required value
The SASL password.Example:
password: qwerty -
stringspec.kafka.sasl.username
Required value
The SASL username.Example:
username: username
-
-
objectspec.kafka.tlsConfigures the TLS options for outgoing connections.
-
stringspec.kafka.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.kafka.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.kafka.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.kafka.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.kafka.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.kafka.tls.secretRefReference 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.-
stringspec.kafka.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.kafka.tls.verifyCertificateValidate the TLS certificate of the remote host.
Default:
true -
booleanspec.kafka.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
stringspec.kafka.topic
Required value
The Kafka topic name to write events to. This parameter supports template syntax, which enables you to use dynamic per-event values.Examples:
topic: logstopic: logs-{{unit}}-%Y-%m-%d
-
-
objectspec.logstash
-
stringspec.logstash.endpoint
Required value
Base URL of the Logstash instance. -
objectspec.logstash.tlsConfigures the TLS options for outgoing connections.
-
stringspec.logstash.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.logstash.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.logstash.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.logstash.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.logstash.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.logstash.tls.secretRefReference 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.-
stringspec.logstash.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.logstash.tls.verifyCertificateValidate the TLS certificate of the remote host.
Default:
true -
booleanspec.logstash.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
-
objectspec.loki
-
objectspec.loki.auth
-
stringspec.loki.auth.passwordBase64-encoded Basic authentication password.
-
stringspec.loki.auth.strategyThe authentication strategy to use.
Default:
BasicAllowed values:
Basic,Bearer -
stringspec.loki.auth.tokenThe token to use for Bearer authentication.
-
stringspec.loki.auth.userThe Basic authentication user name.
-
-
stringspec.loki.endpoint
Required value
Base URL of the Loki instance.
Agent automatically adds
/loki/api/v1/pushinto URL during data transmission. -
stringspec.loki.tenantID
ID of a tenant.
This option is used only for GrafanaCloud. When running Loki locally, a tenant ID is not required.
-
objectspec.loki.tlsConfigures the TLS options for outgoing connections.
-
stringspec.loki.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.loki.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.loki.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.loki.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.loki.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.loki.tls.secretRefReference 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.-
stringspec.loki.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.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.Default:
true -
booleanspec.loki.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
-
objectspec.rateLimitParameter for limiting the flow of events.
-
array of objectsspec.rateLimit.excludes
List of excludes for keyField.
Only NOT matched log entries would be rate limited.
Examples:
field: tier operator: Existsfield: foo operator: NotIn values: - dev - 42.0 - 'true' - '3.14'field: bar operator: Regex values: - ^abc - '^\d.+$'-
stringspec.rateLimit.excludes.fieldField name for filtering.
-
stringspec.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.
Allowed values:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
arrayspec.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.
-
-
stringspec.rateLimit.keyFieldThe name of the log field whose value will be hashed to determine if the event should be rate limited.
-
numberspec.rateLimit.linesPerMinute
Required value
The number of records per minute.
-
-
objectspec.socket
-
stringspec.socket.address
Required value
Address of the socket.Pattern:
^.*:[1-9][0-9]+$ -
objectspec.socket.encodingHow to encode the message.
-
objectspec.socket.encoding.cefCEF-specific configuration fields. Only applicable when codec is set to
CEF.-
stringspec.socket.encoding.cef.deviceProduct
Default:
log-shipper-agentMinimal length:
1 -
stringspec.socket.encoding.cef.deviceVendor
Default:
DeckhouseMinimal length:
1 -
stringspec.socket.encoding.cef.deviceVersion
Default:
1Minimal length:
1
-
-
stringspec.socket.encoding.codecAvailable encoding formats.
Default:
JSONAllowed values:
Text,JSON,Syslog,CEF,GELF
-
-
stringspec.socket.mode
Required value
Allowed values:
TCP,UDP -
objectspec.socket.tcp
-
objectspec.socket.tcp.tlsConfigures the TLS options for outgoing connections.
-
stringspec.socket.tcp.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.socket.tcp.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.socket.tcp.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.socket.tcp.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.socket.tcp.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.socket.tcp.tls.secretRefReference 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.-
stringspec.socket.tcp.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
-
booleanspec.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.Default:
true -
booleanspec.socket.tcp.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
-
objectspec.splunk
-
stringspec.splunk.endpoint
Required value
Base URL of the Splunk instance.Example:
endpoint: https://http-inputs-hec.splunkcloud.com -
stringspec.splunk.indexIndex name to write events to.
-
objectspec.splunk.tlsConfigures the TLS options for outgoing connections.
-
stringspec.splunk.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.splunk.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.splunk.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.splunk.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.splunk.tls.clientCrt.keyPassBase64-encoded pass phrase used to unlock the encrypted key file.
-
-
objectspec.splunk.tls.secretRefReference 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.-
stringspec.splunk.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.splunk.tls.verifyCertificateValidate the TLS certificate of the remote host.
Default:
true -
booleanspec.splunk.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
stringspec.splunk.token
Required value
Default Splunk HEC token. If an event has a token set in its metadata, it will have priority over the one set here.
-
-
array of objectsspec.transformations
List of transformations that can be applied to logs before sending them to the destination.
Available options:
-
ReplaceKeys: Replacessourcewithtargetin the specified label keys.Example:
transformations: - action: ReplaceKeys replaceKeys: source: "." target: "_" labels: - .pod_labels -
ParseMessage: Converts themessagefield from the format specified insourceFormatinto an object. If conversion fails, themessagefield remains unchanged.Examples:
transformations: - action: ParseMessage parseMessage: sourceFormat: String string: regex: "^(?P<msg>.*)$" setLabels: msg: "{{ msg }}"transformations: - action: ParseMessage parseMessage: sourceFormat: Klog - action: ParseMessage parseMessage: sourceFormat: JSON json: depth: 1 - action: ParseMessage parseMessage: sourceFormat: String string: regex: "^(?P<msg>.*)$" setLabels: msg: "{{ msg }}" -
DropLabels: Removes the specified labels.Example:
transformations: - action: DropLabels dropLabels: labels: - .first - .second
-
stringspec.transformations.actionType of a transformation.
Allowed values:
ReplaceKeys,ParseMessage,DropLabels,AddLabels,ReplaceValue -
objectspec.transformations.addLabels
-
objectspec.transformations.addLabels.setLabels
Required value
-
array of stringsspec.transformations.addLabels.when
-
stringspec.transformations.addLabels.when.Element of the array
Pattern:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$
-
-
-
objectspec.transformations.dropLabelsRemoves the specified labels.
-
array of stringsspec.transformations.dropLabels.labelsList of labels to remove.
-
stringspec.transformations.dropLabels.labels.Element of the array
Pattern:
^\.[a-zA-Z0-9_\[\]\\\.\-]+$
-
-
array of objectsspec.transformations.dropLabels.pathsList of path entries matching v1alpha2 dropLabels.labels.
-
array of stringsspec.transformations.dropLabels.paths.keepKeys
-
stringspec.transformations.dropLabels.paths.keepKeys.Element of the array
Pattern:
^[a-zA-Z0-9_.\-/]+$
-
-
stringspec.transformations.dropLabels.paths.label
Pattern:
^\.[a-zA-Z0-9_\[\]\\\.\-]+$
-
-
-
objectspec.transformations.parseMessageConverts the
messagefield into an object.-
objectspec.transformations.parseMessage.json
-
integerspec.transformations.parseMessage.json.depthDepth for JSON parsing.
Allowed values:
1 <= X <= 128
-
-
stringspec.transformations.parseMessage.sourceFormat
Required value
Message format for converting into an object.Allowed values:
String,JSON,Klog,SysLog,CLF,Logfmt -
objectspec.transformations.parseMessage.string
-
stringspec.transformations.parseMessage.string.regexRegular expression with named capture groups.
Pattern:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'\"|<>~#/@]+$ -
objectspec.transformations.parseMessage.string.setLabelsMaps output keys to literals or
{{ group_name }}templates. -
stringspec.transformations.parseMessage.string.targetFieldTarget field where the structured message is placed.
Pattern:
^[a-zA-Z0-9_\\\.\-]+$
-
-
stringspec.transformations.parseMessage.targetLabelDestination path for the parsed value.
Default:
.messagePattern:
^(\.|\.[a-zA-Z0-9_\[\]\\\.\-"/:']+)$
-
-
objectspec.transformations.replaceKeysRecursive replacement of all matches of the
sourcepattern with thetargetvalue in the specified labels.-
array of stringsspec.transformations.replaceKeys.labels
Required value
List of labels in which the recursive replacement will be performed.-
stringspec.transformations.replaceKeys.labels.Element of the array
Pattern:
^\.[a-zA-Z0-9_\[\]\\\.\-]+$
-
-
stringspec.transformations.replaceKeys.source
Required value
Pattern used to find matches. Can be a static string or a regular expression. -
stringspec.transformations.replaceKeys.targetValue that replaces all matches of the pattern.
Default:
‘’
-
-
objectspec.transformations.replaceValue
-
array of stringsspec.transformations.replaceValue.labels
Required value
-
stringspec.transformations.replaceValue.labels.Element of the array
Pattern:
^\.[a-zA-Z0-9_\[\]\\\.\-"/:']+$
-
-
stringspec.transformations.replaceValue.source
Required value
Pattern:
^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$ -
stringspec.transformations.replaceValue.target
Required value
-
-
-
stringspec.typeType of a log storage backend.
Allowed values:
Loki,Elasticsearch,Logstash,Vector,Kafka,Splunk,Socket -
objectspec.vector
-
stringspec.vector.endpoint
Required value
An address of the Vector instance. API v2 must be used for communication between instances.Pattern:
^(.+):([0-9]{1,5})$ -
objectspec.vector.tlsConfigures the TLS options for outgoing connections.
-
stringspec.vector.tls.caFileBase64-encoded CA certificate in PEM format.
-
objectspec.vector.tls.clientCrtConfigures the client certificate for outgoing connections.
-
stringspec.vector.tls.clientCrt.crtFile
Required value
Base64-encoded certificate in PEM format.
You must also set the
keyFileparameter. -
stringspec.vector.tls.clientCrt.keyFile
Required value
Base64-encoded private key in PEM format (PKCS#8).
You must also set the
crtFileparameter. -
stringspec.vector.tls.clientCrt.keyPassBase64-encoded passphrase used to unlock the encrypted key file.
-
-
objectspec.vector.tls.secretRefReference 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.-
stringspec.vector.tls.secretRef.nameName of the Secret with TLS certificates.
-
-
booleanspec.vector.tls.verifyCertificateValidate the TLS certificate of the remote host.
Default:
true -
booleanspec.vector.tls.verifyHostnameVerifies that the name of the remote host matches the name specified in the remote host’s TLS certificate.
Default:
true
-
-
-
ClusterLoggingConfig
Scope: Cluster
Describes a log source in log-pipeline.
Each custom resource ClusterLoggingConfig describes rules for log fetching from cluster.
-
objectspec
-
array of stringsspec.destinationRefs
Required value
Array of
ClusterLogDestinationcustom resource names which this source will output with.Fields with float or boolean values will be converted to strings.
-
objectspec.fileDescribes a rule for collecting logs from files on a node.
-
array of stringsspec.file.exclude
Array of file patterns to exclude when collecting logs.
Wildcards are supported.
Examples:
exclude: /var/log/nginx/error.logexclude: /var/log/audit.log -
array of stringsspec.file.include
Array of file patterns to include.
Wildcards are supported
Examples:
include: /var/log/*.loginclude: /var/log/nginx/*.log -
stringspec.file.lineDelimiterString sequence used to separate one file line from another.
Example:
lineDelimiter: '\r\n'
-
-
objectspec.kubernetesPodsDescribes a rule for collecting logs from the cluster’s pods.
-
stringspec.kubernetesPods.keepDeletedFilesOpenedFor
Specifies the time to keep deleted files opened for reading. Vector will keep pods metadata for this time as well to read logs from deleted pods. This option is useful in cases of a log storage unavailability or a network partition. Vector will keep log files opened until finally sending them to the destination.
Enabling this option may affect the resource consumption of the Vector and also flood a disk with deleted logs. Use it with caution.
The format is a string containing the time unit in hours and minutes: 30m, 1h, 2h30m, 24h.
Pattern:
^([0-9]+h([0-9]+m)?|[0-9]+m)$ -
objectspec.kubernetesPods.labelSelector
Specifies the label selector to filter Pods with.
You can get more into here.
-
array of objectsspec.kubernetesPods.labelSelector.matchExpressionsList of label expressions for Pods.
Example:
matchExpressions: - key: tier operator: In values: - production - staging - key: tier operator: NotIn values: - production-
stringspec.kubernetesPods.labelSelector.matchExpressions.keyA label name.
-
stringspec.kubernetesPods.labelSelector.matchExpressions.operatorA comparison operator.
Allowed values:
In,NotIn,Exists,DoesNotExist -
array of stringsspec.kubernetesPods.labelSelector.matchExpressions.valuesA label value.
-
stringspec.kubernetesPods.labelSelector.matchExpressions.values.Element of the array
Length:
1..63Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
-
-
-
objectspec.kubernetesPods.labelSelector.matchLabelsList of labels which Pod should have.
Example:
baz: who foo: bar
-
-
objectspec.kubernetesPods.namespaceSelector
Specifies the namespace selector to filter Pods with.
The filter uses the
labelSelectorparameter to determine the namespaces from which logs should be collected.-
objectspec.kubernetesPods.namespaceSelector.labelSelector
Specifies the label selector to filter namespaces from which logs should be collected.
You can get more into here.
-
array of objectsspec.kubernetesPods.namespaceSelector.labelSelector.matchExpressionsList of label expressions that a namespace should have to qualify for the filter condition.
Example:
matchExpressions: - key: tier operator: In values: - production - staging-
stringspec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.keyA label name.
-
stringspec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.operatorA comparison operator.
Allowed values:
In,NotIn,Exists,DoesNotExist -
array of stringsspec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.valuesA label value.
-
stringspec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.values.Element of the array
Length:
1..63Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
-
-
-
objectspec.kubernetesPods.namespaceSelector.labelSelector.matchLabelsList of labels that a namespace should have to qualify for the filter condition.
Example:
baz: who foo: bar
-
-
-
-
array of objectsspec.labelFilterRules to filter log lines by their metadata labels.
Example:
labelFilter: - field: container operator: In values: - nginx - field: pod_labels.tier operator: Regex values: - prod-.+ - stage-.+-
stringspec.labelFilter.field
Label name for filtering.
Must not be empty.
Pattern:
.+ -
stringspec.labelFilter.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.
Allowed values:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
arrayspec.labelFilter.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.
-
-
array of objectsspec.logFilter
A list of filters for logs that are applied to messages in JSON format.
Only matched lines would be stored to log destination.
Example:
logFilter: - field: tier operator: Exists - field: foo operator: NotIn values: - dev - 42 - 'true' - '3.14' - field: bar operator: Regex values: - ^abc - '^\d.+$'-
stringspec.logFilter.fieldField name for filtering. It should be empty for non-JSON messages.
-
stringspec.logFilter.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.
Allowed values:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
arrayspec.logFilter.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.
-
-
objectspec.multilineParserMultiline parser for different patterns.
-
objectspec.multilineParser.customMultiline parser custom regex rules.
-
objectspec.multilineParser.custom.endsWhenIt’s a condition to distinguish the last log line of multiline log.
-
stringspec.multilineParser.custom.endsWhen.notRegexRegex string, which treats as match only strings that DOESN’T match regex.
-
stringspec.multilineParser.custom.endsWhen.regexRegex string, which treats as match only strings that match regex.
-
-
objectspec.multilineParser.custom.startsWhenIt’s a condition to distinguish the first log line of multiline log.
-
stringspec.multilineParser.custom.startsWhen.notRegexRegex string, which treats as match only strings that DOESN’T match regex.
-
stringspec.multilineParser.custom.startsWhen.regexRegex string, which treats as match only strings that match regex.
-
-
-
stringspec.multilineParser.type
Required value
Parser types:
None— do not parse logs.General— tries to match general multiline logs with space or tabulation on extra lines.Backslash— tries to match bash style logs with backslash on all lines except the last event line.LogWithTime— tries to detect events by timestamp.MultilineJSON— tries to match JSON logs, assuming the event starts with the{symbol.Custom- tries to match logs with the user provided regex inspec.multilineParser.customfield.
Default:
NoneAllowed values:
None,General,Backslash,LogWithTime,MultilineJSON,Custom
-
-
stringspec.type
Required value
Set on of possible input sources.
KubernetesPodssource reads logs from Kubernetes Pods.Filesource reads local file from node filesystem.Allowed values:
KubernetesPods,File
-
Describes a log source in log-pipeline.
Each custom resource ClusterLoggingConfig describes rules for log fetching from cluster.
-
objectspec
-
array of stringsspec.destinationRefs
Required value
Array of
ClusterLogDestinationcustom resource names which this source will output with.Fields with float or boolean values will be converted to strings.
-
objectspec.fileDescribes a rule for collecting logs from files on a node.
-
array of stringsspec.file.exclude
Array of file patterns to exclude when collecting logs.
Wildcards are supported.
Examples:
exclude: /var/log/nginx/error.logexclude: /var/log/audit.log -
array of stringsspec.file.include
Array of file patterns to include.
Wildcards are supported
Examples:
include: /var/log/*.loginclude: /var/log/nginx/*.log -
stringspec.file.lineDelimiterString sequence used to separate one file line from another.
Example:
lineDelimiter: '\r\n'
-
-
objectspec.kubernetesPodsDescribes a rule for collecting logs from the cluster’s pods.
-
stringspec.kubernetesPods.keepDeletedFilesOpenedFor
Specifies the time to keep deleted files opened for reading. Vector will keep pods metadata for this time as well to read logs from deleted pods. This option is useful in cases of a log storage unavailability or a network partition. Vector will keep log files opened until finally sending them to the destination.
Enabling this option may affect the resource consumption of the Vector and also flood a disk with deleted logs. Use it with caution.
The format is a string containing the time unit in hours and minutes: 30m, 1h, 2h30m, 24h.
Pattern:
^([0-9]+h([0-9]+m)?|[0-9]+m)$ -
objectspec.kubernetesPods.labelSelector
Specifies the label selector to filter Pods with.
You can get more into here.
-
array of objectsspec.kubernetesPods.labelSelector.matchExpressionsList of label expressions for Pods.
Example:
matchExpressions: - key: tier operator: In values: - production - staging - key: tier operator: NotIn values: - production-
stringspec.kubernetesPods.labelSelector.matchExpressions.keyA label name.
-
stringspec.kubernetesPods.labelSelector.matchExpressions.operatorA comparison operator.
Allowed values:
In,NotIn,Exists,DoesNotExist -
array of stringsspec.kubernetesPods.labelSelector.matchExpressions.valuesA label value.
-
stringspec.kubernetesPods.labelSelector.matchExpressions.values.Element of the array
Length:
1..63Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
-
-
-
objectspec.kubernetesPods.labelSelector.matchLabelsList of labels which Pod should have.
Example:
baz: who foo: bar
-
-
objectspec.kubernetesPods.namespaceSelector
Specifies the namespace selector to filter Pods with.
The filter can use one of the three available ways to set the condition (parameters
matchNames,excludeNames,labelSelector)-
array of stringsspec.kubernetesPods.namespaceSelector.excludeNamesA list of namespaces, from the pods of which you need to exclude the collection of logs, but collect from the rest.
-
objectspec.kubernetesPods.namespaceSelector.labelSelector
Specifies the label selector to filter namespaces from which logs should be collected.
You can get more into here.
-
array of objectsspec.kubernetesPods.namespaceSelector.labelSelector.matchExpressionsList of label expressions that a namespace should have to qualify for the filter condition.
Example:
matchExpressions: - key: tier operator: In values: - production - staging-
stringspec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.keyA label name.
-
stringspec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.operatorA comparison operator.
Allowed values:
In,NotIn,Exists,DoesNotExist -
array of stringsspec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.valuesA label value.
-
stringspec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.values.Element of the array
Length:
1..63Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
-
-
-
objectspec.kubernetesPods.namespaceSelector.labelSelector.matchLabelsList of labels that a namespace should have to qualify for the filter condition.
Example:
baz: who foo: bar
-
-
array of stringsspec.kubernetesPods.namespaceSelector.matchNamesA list of namespaces from whose pods logs should be collected.
-
-
-
array of objectsspec.labelFilterRules to filter log lines by their metadata labels.
Example:
labelFilter: - field: container operator: In values: - nginx - field: pod_labels.tier operator: Regex values: - prod-.+ - stage-.+-
stringspec.labelFilter.field
Label name for filtering.
Must not be empty.
Pattern:
.+ -
stringspec.labelFilter.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.
Allowed values:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
arrayspec.labelFilter.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.
-
-
array of objectsspec.logFilter
A list of filters for logs that are applied to messages in JSON format.
Only matched lines would be stored to log destination.
Example:
logFilter: - field: tier operator: Exists - field: foo operator: NotIn values: - dev - 42 - 'true' - '3.14' - field: bar operator: Regex values: - ^abc - '^\d.+$'-
stringspec.logFilter.fieldField name for filtering. It should be empty for non-JSON messages.
-
stringspec.logFilter.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.
Allowed values:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
arrayspec.logFilter.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.
-
-
objectspec.multilineParserMultiline parser for different patterns.
-
objectspec.multilineParser.customMultiline parser custom regex rules.
-
objectspec.multilineParser.custom.endsWhenIt’s a condition to distinguish the last log line of multiline log.
-
stringspec.multilineParser.custom.endsWhen.notRegexRegex string, which treats as match only strings that DOESN’T match regex.
-
stringspec.multilineParser.custom.endsWhen.regexRegex string, which treats as match only strings that match regex.
-
-
objectspec.multilineParser.custom.startsWhenIt’s a condition to distinguish the first log line of multiline log.
-
stringspec.multilineParser.custom.startsWhen.notRegexRegex string, which treats as match only strings that DOESN’T match regex.
-
stringspec.multilineParser.custom.startsWhen.regexRegex string, which treats as match only strings that match regex.
-
-
-
stringspec.multilineParser.type
Required value
Parser types:
None— do not parse logs.General— tries to match general multiline logs with space or tabulation on extra lines.Backslash— tries to match bash style logs with backslash on all lines except the last event line.LogWithTime— tries to detect events by timestamp.MultilineJSON— tries to match JSON logs, assuming the event starts with the{symbol.Custom- tries to match logs with the user provided regex inspec.multilineParser.customfield.
Default:
NoneAllowed values:
None,General,Backslash,LogWithTime,MultilineJSON,Custom
-
-
stringspec.type
Required value
Set on of possible input sources.
KubernetesPodssource reads logs from Kubernetes Pods.Filesource reads local file from node filesystem.Allowed values:
KubernetesPods,File
-
PodLoggingConfig
Scope: Namespaced
Version: v1alpha1
Custom resource for namespaced Kubernetes source.
Each custom resource PodLoggingConfig describes rules for log fetching from specified namespace.
-
objectspec
-
array of stringsspec.clusterDestinationRefs
Required value
Array ofClusterLogDestinationcustom resource names which this source will output with. -
stringspec.keepDeletedFilesOpenedFor
Specifies the time to keep deleted files opened for reading. Vector will keep pods metadata for this time as well to read logs from deleted pods. This option is useful in cases of a log storage unavailability or a network partition. Vector will keep log files opened until finally sending them to the destination.
Enabling this option may affect the resource consumption of the Vector and also flood a disk with deleted logs. Use it with caution.
The format is a string containing the time unit in hours and minutes: 30m, 1h, 2h30m, 24h.
Pattern:
^([0-9]+h([0-9]+m)?|[0-9]+m)$ -
array of objectsspec.labelFilterRules to filter log lines by their metadata labels.
Example:
labelFilter: - field: container operator: In values: - nginx - field: pod_labels.tier operator: Regex values: - prod-.+ - stage-.+ - field: message operator: Regex values: - .*search_text.*-
stringspec.labelFilter.field
Label name for filtering.
Must not be empty.
Pattern:
.+ -
stringspec.labelFilter.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.
Allowed values:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
arrayspec.labelFilter.values
Array of values or regexes for corresponding operations. Does not work for
ExistsandDoesNotExistoperations.Fields with a float or boolean values will be converted to strings during comparison.
-
-
-
array of objectsspec.labelSelector.matchExpressionsList of label expressions for Pods.
Example:
matchExpressions: - key: tier operator: In values: - production - staging-
stringspec.labelSelector.matchExpressions.keyA label name.
-
stringspec.labelSelector.matchExpressions.operatorA comparison operator.
Allowed values:
In,NotIn,Exists,DoesNotExist -
array of stringsspec.labelSelector.matchExpressions.valuesA label value.
-
stringspec.labelSelector.matchExpressions.values.Element of the array
Length:
1..63Pattern:
[a-z0-9]([-a-z0-9]*[a-z0-9])?
-
-
-
objectspec.labelSelector.matchLabelsList of labels which Pod should have.
Example:
baz: who foo: bar
-
-
array of objectsspec.logFilter
A list of filters for logs that are applied to messages in JSON format.
Only matched lines would be stored to log destination.
Example:
logFilter: - field: tier operator: Exists - field: foo operator: NotIn values: - dev - 42 - 'true' - '3.14' - field: bar operator: Regex values: - ^abc - '^\d.+$'-
stringspec.logFilter.fieldField name for filtering. It should be empty for non-JSON messages.
-
stringspec.logFilter.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.
Allowed values:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
arrayspec.logFilter.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.
-
-
objectspec.multilineParserMultiline parser for different patterns.
-
objectspec.multilineParser.customMultiline parser custom regex rules.
-
objectspec.multilineParser.custom.endsWhenIt’s a condition to distinguish the last log line of the multiline log.
-
stringspec.multilineParser.custom.endsWhen.notRegexRegex string, which treats as match only strings that DON’T match the regex.
-
stringspec.multilineParser.custom.endsWhen.regexRegex string, which treats as match only strings that match the regex.
-
-
objectspec.multilineParser.custom.startsWhenIt’s a condition to distinguish the first log line of multiline log.
-
stringspec.multilineParser.custom.startsWhen.notRegexRegex string, which treats as match only strings that DON’T match the regex.
-
stringspec.multilineParser.custom.startsWhen.regexRegex string, which treats as match only strings that match the regex.
-
-
-
stringspec.multilineParser.type
Required value
Parser types:
None— do not parse logs.General— tries to match general multiline logs with space or tabulation on extra lines.Backslash— tries to match bash style logs with backslash on all lines except the last event line.LogWithTime— tries to detect events by timestamp.MultilineJSON— tries to match JSON logs, assuming the event starts with the{symbol.Custom- tries to match logs with the user provided regex inspec.multilineParser.customfield.
Default:
NoneAllowed values:
None,General,Backslash,LogWithTime,MultilineJSON,Custom
-
-