socket
Connects to a (tcp/udp/unix) server and sends a continuous stream of data, dividing messages according to the specified codec.
# Common config fields, showing default valuesoutput: label: "" socket: network: "" # No default (required) address: /tmp/benthos.sock # No default (required) codec: lines
# Advanced config fields, showing default valuesoutput: label: "" socket: network: "" # No default (required) address: /tmp/benthos.sock # No default (required) codec: lines tls: enabled: false skip_cert_verify: false enable_renegotiation: false root_cas: "" root_cas_file: "" client_certs: []
Fields
network
A network type to connect as.
Type: string
Options:
unix
, tcp
, udp
.
address
The address to connect to.
Type: string
# Examples
address: /tmp/benthos.sock
address: 127.0.0.1:6000
codec
The way in which the bytes of messages should be written out into the output data stream. It’s possible to write lines using a custom delimiter with the delim:x
codec, where x is the character sequence custom delimiter.
Type: string
Default: "lines"
Option | Summary |
---|---|
all-bytes | Only applicable to file based outputs. Writes each message to a file in full, if the file already exists the old content is deleted. |
append | Append each message to the output stream without any delimiter or special encoding. |
lines | Append each message to the output stream followed by a line break. |
delim:x | Append each message to the output stream followed by a custom delimiter. |
# Examples
codec: lines
codec: "delim:\t"
codec: delim:foobar
tls
Custom TLS settings can be used to override system defaults.
Type: object
tls.enabled
Whether custom TLS settings are enabled.
Type: bool
Default: false
tls.skip_cert_verify
Whether to skip server side certificate verification.
Type: bool
Default: false
tls.enable_renegotiation
Whether to allow the remote server to repeatedly request renegotiation. Enable this option if you’re seeing the error message local error: tls: no renegotiation
.
Type: bool
Default: false
Requires version 3.45.0 or newer
tls.root_cas
An optional root certificate authority to use. This is a string, representing a certificate chain from the parent trusted root certificate, to possible intermediate signing certificates, to the host certificate.
Type: string
Default: ""
# Examples
root_cas: |- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
tls.root_cas_file
An optional path of a root certificate authority file to use. This is a file, often with a .pem extension, containing a certificate chain from the parent trusted root certificate, to possible intermediate signing certificates, to the host certificate.
Type: string
Default: ""
# Examples
root_cas_file: ./root_cas.pem
tls.client_certs
A list of client certificates to use. For each certificate either the fields cert
and key
, or cert_file
and key_file
should be specified, but not both.
Type: array
Default: []
# Examples
client_certs: - cert: foo key: bar
client_certs: - cert_file: ./example.pem key_file: ./example.key
tls.client_certs[].cert
A plain text certificate to use.
Type: string
Default: ""
tls.client_certs[].key
A plain text certificate key to use.
Type: string
Default: ""
tls.client_certs[].cert_file
The path of a certificate to use.
Type: string
Default: ""
tls.client_certs[].key_file
The path of a certificate key to use.
Type: string
Default: ""
tls.client_certs[].password
A plain text password for when the private key is password encrypted in PKCS#1 or PKCS#8 format. The obsolete pbeWithMD5AndDES-CBC
algorithm is not supported for the PKCS#8 format.
Because the obsolete pbeWithMD5AndDES-CBC algorithm does not authenticate the ciphertext, it is vulnerable to padding oracle attacks that can let an attacker recover the plaintext.
Type: string
Default: ""
# Examples
password: foo
password: ${KEY_PASSWORD}