Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки

Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.

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: 512Mi
          
          maxSize: 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_type for 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_type mapping;
        • 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 like logs.
      • 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 keyFile parameter.

          • spec.elasticsearch.tls.clientCrt.keyFile
            строка

            Обязательный параметр

            Base64-encoded private key in PEM format (PKCS#8).

            You must also set the crtFile parameter.

          • 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: true label.
          • 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

      More about field path notation…

      Пример:


      app_info: '{{ app }}'
      array_member: '{{ array[0] }}'
      forwarder: vector
      key: value
      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
        
        • spec.kafka.bootstrapServers.Элемент массива
          строка

          Шаблон: ^(.+)\:\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

            Минимальная длина: 1

          • spec.kafka.encoding.cef.deviceVendor
            строка

            По умолчанию: Deckhouse

            Минимальная длина: 1

          • spec.kafka.encoding.cef.deviceVersion
            строка

            По умолчанию: 1

            Минимальная длина: 1

        • spec.kafka.encoding.codec
          строка
          Available encoding formats.

          По умолчанию: JSON

          Допустимые значения: JSON, CEF

      • spec.kafka.keyField
        строка
        Allows to set the key_field.

        Примеры:


        keyField: host
        
        keyField: node
        
        keyField: namespace
        
        keyField: 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 keyFile parameter.

          • spec.kafka.tls.clientCrt.keyFile
            строка

            Обязательный параметр

            Base64-encoded private key in PEM format (PKCS#8).

            You must also set the crtFile parameter.

          • 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: true label.
          • 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: logs
        
        topic: 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 keyFile parameter.

          • spec.logstash.tls.clientCrt.keyFile
            строка

            Обязательный параметр

            Base64-encoded private key in PEM format (PKCS#8).

            You must also set the crtFile parameter.

          • 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: true label.
          • 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/push into 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 keyFile parameter.

          • spec.loki.tls.clientCrt.keyFile
            строка

            Обязательный параметр

            Base64-encoded private key in PEM format (PKCS#8).

            You must also set the crtFile parameter.

          • 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: true label.
          • 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.

        Примеры:


        field: tier
        operator: Exists
        
        field: foo
        operator: NotIn
        values:
        - dev
        - 42.0
        - 'true'
        - '3.14'
        
        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 the In operator.
          • Regex — is trying to match regexp over the field; only log events with matching fields will pass.
          • NotRegex — is a negative version of the Regex operator; 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 Exists and DoesNotExist operations.

          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

            Минимальная длина: 1

          • spec.socket.encoding.cef.deviceVendor
            строка

            По умолчанию: Deckhouse

            Минимальная длина: 1

          • spec.socket.encoding.cef.deviceVersion
            строка

            По умолчанию: 1

            Минимальная длина: 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 keyFile parameter.

            • spec.socket.tcp.tls.clientCrt.keyFile
              строка

              Обязательный параметр

              Base64-encoded private key in PEM format (PKCS#8).

              You must also set the crtFile parameter.

            • 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: true label.
            • 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 keyFile parameter.

          • spec.splunk.tls.clientCrt.keyFile
            строка

            Обязательный параметр

            Base64-encoded private key in PEM format (PKCS#8).

            You must also set the crtFile parameter.

          • 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: true label.
          • 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.

      AddLabels runs after extraLabels when both are configured.

      Available actions:

      • ReplaceKeys — recursively replace matches of the source pattern with target in the given paths.
      • ParseMessage — parse the message field using sourceFormat and write the result to targetLabel (default .message; the lone . merges into the event root). On parse failure the original message is left unchanged.
      • DropLabels — remove the value at each label path, or if keepKeys is set on an item, keep only those child key names inside the object at label.
      • AddLabels — add labels (literals, {{ .path }} templates, optional when). Runs after extraLabels; on key name conflicts AddLabels wins.
      • ReplaceValue — replace substrings in scalar string fields using the source regex; target may reference named groups as {{ group_name }}.

      Примеры:


      action: ReplaceKeys
      replaceKeys:
        labels:
        - .pod_labels
        source: .
        target: _
      
      action: ParseMessage
      parseMessage:
        sourceFormat: String
        string:
          regex: ^(?P<msg>.*)$
          setLabels:
            msg: '{{ msg }}'
      
      action: ParseMessage
      parseMessage:
        sourceFormat: Klog
      
      action: ParseMessage
      parseMessage:
        json:
          depth: 1
        sourceFormat: JSON
      
      action: DropLabels
      dropLabels:
        labels:
        - label: .first
        - label: .second
        - keepKeys:
          - app
          - team
          label: .pod_labels
      
      action: AddLabels
      addLabels:
        setLabels:
          .env: prod
          .source_app: '{{ .pod_labels.app }}'
        when:
        - .namespace == "production"
      
      action: ReplaceValue
      replaceValue:
        labels:
        - .message
        source: '\d+'
        target: REDACTED
      
      • 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 after extraLabels when both are set; on path conflicts values from this transform win. Optional when filter.
        • 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 where path in the template is a source field path with a leading ..

          Примеры:


          .tier: backend
          
          .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 comparison path ==|!=|=~|!=~ value (regular expression for =~ / !=~), a path with 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'
          
          • spec.transformations.addLabels.when.Элемент массива
            строка

            Шаблон: ^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$

      • spec.transformations.dropLabels
        объект
        Removes field paths, or narrows objects by keeping only selected child keys at each label when keepKeys is set.
        • spec.transformations.dropLabels.labels
          массив объектов

          Обязательный параметр

          Each item has a required Vector path label and optional keepKeys. If keepKeys is omitted, the subtree at label is removed. If keepKeys is set, only those child key names are kept in the object at label.
          • spec.transformations.dropLabels.labels.keepKeys
            массив строк
            Child key names (no leading dot) to keep inside the object at label; all other child keys are removed.
            • spec.transformations.dropLabels.labels.keepKeys.Элемент массива
              строка

              Шаблон: ^[a-zA-Z0-9_.\-/]+$

          • spec.transformations.dropLabels.labels.label
            строка
            Vector path to a field or subtree; when keepKeys is set, must resolve to an object.

            Шаблон: ^\.[a-zA-Z0-9_\[\]\\\.\-"/:]+$

      • spec.transformations.parseMessage
        объект
        Parses the string in the message field (format from sourceFormat) and writes the result to targetLabel as a Vector path with a leading . (default .message; the lone . merges the parsed object into the event root). On parse failure the original message field 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. regex and setLabels are 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 source pattern with the target value 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
          
          • spec.transformations.replaceKeys.labels.Элемент массива
            строка

            Шаблон: ^\.[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 source in each listed scalar string field with target.
        • 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
          
          • spec.transformations.replaceValue.labels.Элемент массива
            строка

            Шаблон: ^\.[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: REDACTED
          
          target: '{{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 keyFile parameter.

          • spec.vector.tls.clientCrt.keyFile
            строка

            Обязательный параметр

            Base64-encoded private key in PEM format (PKCS#8).

            You must also set the crtFile parameter.

          • 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: true label.
          • 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: 512Mi
          
          maxSize: 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.

      Подробнее о путях к полям…

      Пример:


      app_info: '{{ app }}'
      array_member: '{{ array[0] }}'
      forwarder: vector
      key: value
      symbol_escating_value: '{{ pay\.day }}'
      
    • spec.kafka
      объект
      • spec.kafka.bootstrapServers
        массив строк

        Обязательный параметр

        Список пар адресов (хост:порт) Kafka-брокеров в кластере Kafka, к которым должны подключиться клиенты для получения метаданных (топиков и партиций).

        По умолчанию: []

        Пример:


        bootstrapServers:
        - 10.14.22.123:9092
        - 10.14.23.332:9092
        
        • spec.kafka.bootstrapServers.Элемент массива
          строка

          Шаблон: ^(.+)\:\d{1,5}$

      • spec.kafka.encoding
        объект
        В каком формате закодировать сообщение.
        • spec.kafka.encoding.cef
          объект
          Поля конфигурации, специфичные для CEF. Применяется только в том случае, если для кодирования установлено значение CEF.
          • spec.kafka.encoding.cef.deviceProduct
            строка

            По умолчанию: log-shipper-agent

            Минимальная длина: 1

          • spec.kafka.encoding.cef.deviceVendor
            строка

            По умолчанию: Deckhouse

            Минимальная длина: 1

          • spec.kafka.encoding.cef.deviceVersion
            строка

            По умолчанию: 1

            Минимальная длина: 1

        • spec.kafka.encoding.codec
          строка
          Доступные форматы для кодирования.

          По умолчанию: JSON

          Допустимые значения: JSON, CEF

      • spec.kafka.keyField
        строка
        Позволяет задать поле key_field.

        Примеры:


        keyField: host
        
        keyField: node
        
        keyField: namespace
        
        keyField: 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: logs
        
        topic: 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.

        Только логи, НЕ подпадающие под правила, будут ограничены по количеству записей.

        Примеры:


        field: tier
        operator: Exists
        
        field: foo
        operator: NotIn
        values:
        - dev
        - 42.0
        - 'true'
        - '3.14'
        
        field: bar
        operator: Regex
        values:
        - ^abc
        - '^\d.+$'
        
        • spec.rateLimit.excludes.field
          строка
          Имя поля для фильтрации.
        • spec.rateLimit.excludes.operator
          строка

          Оператор, который можно применить для фильтрации:

          • In — ищет строку или элемент в массиве;
          • NotIn — является инверсией оператора In;
          • Regex — пытается проверить строку в поле с использованием регулярного выражения (только логи, в которых есть поля, подпадающие под регулярное выражение, пройдут в хранилище);
          • NotRegex — является инверсией оператора Regex (в хранилище попадут логи, в которых нет поля или же оно не подпадает под регулярное выражение);
          • Exists — проверяет наличие поля и пропускает логи, только если поле есть;
          • DoesNotExist — проверяет наличие поля и пропускает логи, только если поле отсутствует.

          Допустимые значения: In, NotIn, Regex, NotRegex, Exists, DoesNotExist

        • spec.rateLimit.excludes.values
          массив

          Массив значений или регулярных выражений для соответствующих операций. Не работает для операций Exists и DoesNotExist.

          Можно использовать целые числа или строки. Поля с числами с плавающей запятой и поля логического типа будут преобразованы в строки при сравнении.

      • spec.rateLimit.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

            Минимальная длина: 1

          • spec.socket.encoding.cef.deviceVendor
            строка

            По умолчанию: Deckhouse

            Минимальная длина: 1

          • spec.socket.encoding.cef.deviceVersion
            строка

            По умолчанию: 1

            Минимальная длина: 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
        объект
        Добавляет в лог ярлыки по карте setLabels (литералы и шаблоны {{ .path }}). Выполняется после extraLabels, если заданы оба; при совпадении путей приоритет у значений из этой трансформации. Необязательный фильтр when по полям лога.
        • spec.transformations.addLabels.setLabels
          объект

          Обязательный параметр

          Ключи — пути назначения длф ярлыков в нотации Vector: каждый ключ задаётся с ведущей . относительно корня лога (например, .env, .source_app). Значения — литералы или шаблоны {{ .path }}, где path в шаблоне — путь к полю-источнику с ведущей ..
        • spec.transformations.addLabels.when
          массив строк
          Необязательный список условий, объединяемых логическим И. В сравнениях путь поля — строка с ведущей точкой и сегментами через точку (например .namespace, .pod_labels.app). Элемент списка — либо сравнение path ==|!=|=~|!=~ value (для =~ / !=~ — регулярное выражение), либо проверка наличия поля по пути path (без оператора и правой части), либо !.path (поля нет).
          • 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 сохраняются только перечисленные дочерние имена ключей (без ведущей точки), остальные дочерние ключи удаляются.
          • spec.transformations.dropLabels.labels.Элемент массива
            строка

            Шаблон: ^\.[a-zA-Z0-9_\[\]\\\.\-]+$

        • spec.transformations.dropLabels.paths
          массив объектов
          List of path entries matching v1alpha2 dropLabels.labels.
          • spec.transformations.dropLabels.paths.keepKeys
            массив строк
            • 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
          объект
          Параметры для sourceFormat: String. Обязательны regex (регулярное выражение с именованными группами) и setLabels: итоговый объект собирается по карте setLabels из литералов и шаблонов {{ имя_группы }} (см. пример ParseMessage / string в x-doc-examples у transformations).
          • 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).
          • spec.transformations.replaceKeys.labels.Элемент массива
            строка

            Шаблон: ^\.[a-zA-Z0-9_\[\]\\\.\-]+$

        • spec.transformations.replaceKeys.source
          строка

          Обязательный параметр

          Шаблон для поиска совпадений. Может быть статической строкой или регулярным выражением.
        • spec.transformations.replaceKeys.target
          строка
          Значение, на которое будут заменены все совпадения шаблона.

          По умолчанию: ‘’

      • spec.transformations.replaceValue
        объект
        Заменяет совпадения source в каждом перечисленном скалярном строковом поле на target.
        • spec.transformations.replaceValue.labels
          массив строк

          Обязательный параметр

          Пути к скалярным строковым полям, в которых выполняется замена (поле labels). Каждый элемент должен начинаться с . (путь Vector, например .message, .parsed_data.token).
          • spec.transformations.replaceValue.labels.Элемент массива
            строка

            Шаблон: ^\.[a-zA-Z0-9_\[\]\\\.\-"/:']+$

        • spec.transformations.replaceValue.source
          строка

          Обязательный параметр

          Регулярное выражение для поиска в значении поля.

          Шаблон: ^[a-zA-Z0-9_\s\\\[\](){}?*+.^$\-=!:,'"|<>~#/@]+$

        • spec.transformations.replaceValue.target
          строка

          Обязательный параметр

          На что заменять; допускаются подстановки {{ имя_группы }} из именованных групп regex.
    • 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
            массив строк
            Значение лейбла.
            • spec.kubernetesPods.labelSelector.matchExpressions.values.Элемент массива
              строка

              Длина: 1..63

              Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        • spec.kubernetesPods.labelSelector.matchLabels
          объект
          Список лейблов, которые должен иметь под, чтобы подпадать под условие фильтра.

          Пример:


          baz: who
          foo: bar
          
      • 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
              массив строк
              Значение лейбла.
              • spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.values.Элемент массива
                строка

                Длина: 1..63

                Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

          • spec.kubernetesPods.namespaceSelector.labelSelector.matchLabels
            объект
            Список лейблов, которые должно иметь пространство имен, чтобы подпадать под условие фильтра.

            Пример:


            baz: who
            foo: bar
            
    • 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
            массив строк
            Значение лейбла.
            • spec.kubernetesPods.labelSelector.matchExpressions.values.Элемент массива
              строка

              Длина: 1..63

              Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        • spec.kubernetesPods.labelSelector.matchLabels
          объект
          Список лейблов, которые должен иметь под, чтобы подпадать под условие фильтра.

          Пример:


          baz: who
          foo: bar
          
      • spec.kubernetesPods.namespaceSelector
        объект

        Задаёт фильтр по пространствам имен.

        Фильтр может использовать какой-то один способ задания условия из трех доступных (параметры matchNames, excludeNames, labelSelector).

        • spec.kubernetesPods.namespaceSelector.excludeNames
          массив строк
          Список пространств имен, с подов которого нужно исключить сбор логов.
        • spec.kubernetesPods.namespaceSelector.labelSelector
          объект

          Фильтр по лейблам пространств имен, с которых нужно собирать логи.

          Подробнее про выражения можно узнать в документации.

          • spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions
            массив объектов
            Список выражений для лейблов, которые должно иметь пространство имен, чтобы подпадать под условие фильтра.

            Пример:


            matchExpressions:
            - key: tier
              operator: In
              values:
              - production
              - staging
            
            • spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.key
              строка
              Имя лейбла.
            • spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.operator
              строка
              Оператор сравнения.

              Допустимые значения: In, NotIn, Exists, DoesNotExist

            • spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.values
              массив строк
              Значение лейбла.
              • spec.kubernetesPods.namespaceSelector.labelSelector.matchExpressions.values.Элемент массива
                строка

                Длина: 1..63

                Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

          • spec.kubernetesPods.namespaceSelector.labelSelector.matchLabels
            объект
            Список лейблов, которые должно иметь пространство имен, чтобы подпадать под условие фильтра.

            Пример:


            baz: who
            foo: bar
            
        • 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
          массив строк
          Значение лейбла.
          • spec.labelSelector.matchExpressions.values.Элемент массива
            строка

            Длина: 1..63

            Шаблон: [a-z0-9]([-a-z0-9]*[a-z0-9])?

      • spec.labelSelector.matchLabels
        объект
        Список лейблов, которые должен иметь под, чтобы подпадать под условие фильтра.

        Пример:


        baz: who
        foo: bar
        
    • 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