2b65764a2e
Change-Id: I59e7c92ebd91ceca161577e73d9f24826abedda1
703 lines
27 KiB
Django/Jinja
703 lines
27 KiB
Django/Jinja
{% macro output_elasticsearch(beat_name, host, data_hosts) -%}
|
|
output.elasticsearch:
|
|
# Boolean flag to enable or disable the output module.
|
|
enabled: true
|
|
|
|
# Array of hosts to connect to.
|
|
# Scheme and port can be left out and will be set to the default (http and 9200)
|
|
# In case you specify and additional path, the scheme is required: http://localhost:9200/path
|
|
# IPv6 addresses should always be defined as: https://[2001:db8::1]:9200
|
|
hosts: {{ (data_hosts | default([])) | to_json }}
|
|
|
|
# Set gzip compression level.
|
|
compression_level: 3
|
|
|
|
# Configure escaping HTML symbols in strings.
|
|
#escape_html: false
|
|
|
|
# Protocol - either `http` (default) or `https`.
|
|
#protocol: "https"
|
|
|
|
# Authentication credentials - either API key or username/password.
|
|
#api_key: "id:api_key"
|
|
#username: "elastic"
|
|
#password: "changeme"
|
|
|
|
# Dictionary of HTTP parameters to pass within the URL with index operations.
|
|
#parameters:
|
|
#param1: value1
|
|
#param2: value2
|
|
|
|
# Number of workers per Elasticsearch host.
|
|
worker: 1
|
|
|
|
# Optional index name. The default is "{{ beat_name }}" plus date
|
|
# and generates [{{ beat_name }}-]YYYY.MM.DD keys.
|
|
# In case you modify this pattern you must update setup.template.name and setup.template.pattern accordingly.
|
|
#index: "{{ beat_name }}-%{[agent.version]}-%{+yyyy.MM.dd}"
|
|
|
|
# Optional ingest node pipeline. By default no pipeline will be used.
|
|
#pipeline: ""
|
|
|
|
# Optional HTTP path
|
|
#path: "/elasticsearch"
|
|
|
|
# Custom HTTP headers to add to each request
|
|
#headers:
|
|
# X-My-Header: Contents of the header
|
|
|
|
# Proxy server URL
|
|
#proxy_url: http://proxy:3128
|
|
|
|
# Whether to disable proxy settings for outgoing connections. If true, this
|
|
# takes precedence over both the proxy_url field and any environment settings
|
|
# (HTTP_PROXY, HTTPS_PROXY). The default is false.
|
|
#proxy_disable: false
|
|
|
|
# The number of times a particular Elasticsearch index operation is attempted. If
|
|
# the indexing operation doesn't succeed after this many retries, the events are
|
|
# dropped. The default is 3.
|
|
#max_retries: 3
|
|
|
|
# The maximum number of events to bulk in a single Elasticsearch bulk API index request.
|
|
# The default is 50.
|
|
#bulk_max_size: 50
|
|
|
|
# The number of seconds to wait before trying to reconnect to Elasticsearch
|
|
# after a network error. After waiting backoff.init seconds, the Beat
|
|
# tries to reconnect. If the attempt fails, the backoff timer is increased
|
|
# exponentially up to backoff.max. After a successful connection, the backoff
|
|
# timer is reset. The default is 1s.
|
|
#backoff.init: 1s
|
|
|
|
# The maximum number of seconds to wait before attempting to connect to
|
|
# Elasticsearch after a network error. The default is 60s.
|
|
#backoff.max: 60s
|
|
|
|
# Configure HTTP request timeout before failing a request to Elasticsearch.
|
|
#timeout: 90
|
|
|
|
# Use SSL settings for HTTPS.
|
|
#ssl.enabled: true
|
|
|
|
# Controls the verification of certificates. Valid values are:
|
|
# * full, which verifies that the provided certificate is signed by a trusted
|
|
# authority (CA) and also verifies that the server's hostname (or IP address)
|
|
# matches the names identified within the certificate.
|
|
# * certificate, which verifies that the provided certificate is signed by a
|
|
# trusted authority (CA), but does not perform any hostname verification.
|
|
# * none, which performs no verification of the server's certificate. This
|
|
# mode disables many of the security benefits of SSL/TLS and should only be used
|
|
# after very careful consideration. It is primarily intended as a temporary
|
|
# diagnostic mechanism when attempting to resolve TLS errors; its use in
|
|
# production environments is strongly discouraged.
|
|
# The default value is full.
|
|
#ssl.verification_mode: full
|
|
|
|
# List of supported/valid TLS versions. By default all TLS versions from 1.1
|
|
# up to 1.3 are enabled.
|
|
#ssl.supported_protocols: [TLSv1.1, TLSv1.2, TLSv1.3]
|
|
|
|
# List of root certificates for HTTPS server verifications
|
|
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
|
|
|
|
# Certificate for SSL client authentication
|
|
#ssl.certificate: "/etc/pki/client/cert.pem"
|
|
|
|
# Client certificate key
|
|
#ssl.key: "/etc/pki/client/cert.key"
|
|
|
|
# Optional passphrase for decrypting the certificate key.
|
|
#ssl.key_passphrase: ''
|
|
|
|
# Configure cipher suites to be used for SSL connections
|
|
#ssl.cipher_suites: []
|
|
|
|
# Configure curve types for ECDHE-based cipher suites
|
|
#ssl.curve_types: []
|
|
|
|
# Configure what types of renegotiation are supported. Valid options are
|
|
# never, once, and freely. Default is never.
|
|
#ssl.renegotiation: never
|
|
|
|
# Configure a pin that can be used to do extra validation of the verified certificate chain,
|
|
# this allow you to ensure that a specific certificate is used to validate the chain of trust.
|
|
#
|
|
# The pin is a base64 encoded string of the SHA-256 fingerprint.
|
|
#ssl.ca_sha256: ""
|
|
|
|
# Enable Kerberos support. Kerberos is automatically enabled if any Kerberos setting is set.
|
|
#kerberos.enabled: true
|
|
|
|
# Authentication type to use with Kerberos. Available options: keytab, password.
|
|
#kerberos.auth_type: password
|
|
|
|
# Path to the keytab file. It is used when auth_type is set to keytab.
|
|
#kerberos.keytab: /etc/elastic.keytab
|
|
|
|
# Path to the Kerberos configuration.
|
|
#kerberos.config_path: /etc/krb5.conf
|
|
|
|
# Name of the Kerberos user.
|
|
#kerberos.username: elastic
|
|
|
|
# Password of the Kerberos user. It is used when auth_type is set to password.
|
|
#kerberos.password: changeme
|
|
|
|
# Kerberos realm.
|
|
#kerberos.realm: ELASTIC
|
|
{%- endmacro %}
|
|
|
|
{% macro output_logstash(host, data_hosts, processors, named_index) -%}
|
|
output.logstash:
|
|
# Boolean flag to enable or disable the output module.
|
|
enabled: true
|
|
|
|
# The Logstash hosts
|
|
hosts: {{ (data_hosts | default([])) | to_json }}
|
|
|
|
# Number of workers per Logstash host.
|
|
worker: 1
|
|
|
|
# Set gzip compression level.
|
|
compression_level: 3
|
|
|
|
# Configure escaping HTML symbols in strings.
|
|
#escape_html: false
|
|
|
|
# Optional maximum time to live for a connection to Logstash, after which the
|
|
# connection will be re-established. A value of `0s` (the default) will
|
|
# disable this feature.
|
|
#
|
|
# Not yet supported for async connections (i.e. with the "pipelining" option set)
|
|
#ttl: 30s
|
|
|
|
# Optionally load-balance events between Logstash hosts. Default is false.
|
|
loadbalance: true
|
|
|
|
# Number of batches to be sent asynchronously to Logstash while processing
|
|
# new batches.
|
|
pipelining: 2
|
|
|
|
# If enabled only a subset of events in a batch of events is transferred per
|
|
# transaction. The number of events to be sent increases up to `bulk_max_size`
|
|
# if no error is encountered.
|
|
slow_start: true
|
|
|
|
# The number of seconds to wait before trying to reconnect to Logstash
|
|
# after a network error. After waiting backoff.init seconds, the Beat
|
|
# tries to reconnect. If the attempt fails, the backoff timer is increased
|
|
# exponentially up to backoff.max. After a successful connection, the backoff
|
|
# timer is reset. The default is 1s.
|
|
#backoff.init: 1s
|
|
|
|
# The maximum number of seconds to wait before attempting to connect to
|
|
# Logstash after a network error. The default is 60s.
|
|
#backoff.max: 60s
|
|
|
|
{% if named_index is defined %}
|
|
# Optional index name. The default index name is set to {{ named_index }}
|
|
# in all lowercase.
|
|
index: '{{ named_index }}'
|
|
{% endif %}
|
|
|
|
# SOCKS5 proxy server URL
|
|
#proxy_url: socks5://user:password@socks5-server:2233
|
|
|
|
# Resolve names locally when using a proxy server. Defaults to false.
|
|
#proxy_use_local_resolver: false
|
|
|
|
# Use SSL settings for HTTPS.
|
|
#ssl.enabled: true
|
|
|
|
# Controls the verification of certificates. Valid values are:
|
|
# * full, which verifies that the provided certificate is signed by a trusted
|
|
# authority (CA) and also verifies that the server's hostname (or IP address)
|
|
# matches the names identified within the certificate.
|
|
# * certificate, which verifies that the provided certificate is signed by a
|
|
# trusted authority (CA), but does not perform any hostname verification.
|
|
# * none, which performs no verification of the server's certificate. This
|
|
# mode disables many of the security benefits of SSL/TLS and should only be used
|
|
# after very careful consideration. It is primarily intended as a temporary
|
|
# diagnostic mechanism when attempting to resolve TLS errors; its use in
|
|
# production environments is strongly discouraged.
|
|
# The default value is full.
|
|
#ssl.verification_mode: full
|
|
|
|
# List of supported/valid TLS versions. By default all TLS versions from 1.1
|
|
# up to 1.3 are enabled.
|
|
#ssl.supported_protocols: [TLSv1.1, TLSv1.2, TLSv1.3]
|
|
|
|
# List of root certificates for HTTPS server verifications
|
|
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
|
|
|
|
# Certificate for SSL client authentication
|
|
#ssl.certificate: "/etc/pki/client/cert.pem"
|
|
|
|
# Client certificate key
|
|
#ssl.key: "/etc/pki/client/cert.key"
|
|
|
|
# Optional passphrase for decrypting the certificate key.
|
|
#ssl.key_passphrase: ''
|
|
|
|
# Configure cipher suites to be used for SSL connections
|
|
#ssl.cipher_suites: []
|
|
|
|
# Configure curve types for ECDHE-based cipher suites
|
|
#ssl.curve_types: []
|
|
|
|
# Configure what types of renegotiation are supported. Valid options are
|
|
# never, once, and freely. Default is never.
|
|
#ssl.renegotiation: never
|
|
|
|
# Configure a pin that can be used to do extra validation of the verified certificate chain,
|
|
# this allow you to ensure that a specific certificate is used to validate the chain of trust.
|
|
#
|
|
# The pin is a base64 encoded string of the SHA-256 fingerprint.
|
|
#ssl.ca_sha256: ""
|
|
|
|
# The number of times to retry publishing an event after a publishing failure.
|
|
# After the specified number of retries, the events are typically dropped.
|
|
# Some Beats, such as Filebeat and Winlogbeat, ignore the max_retries setting
|
|
# and retry until all events are published. Set max_retries to a value less
|
|
# than 0 to retry until all events are published. The default is 3.
|
|
#max_retries: 3
|
|
|
|
# The maximum number of events to bulk in a single Logstash request. The
|
|
# default is 2048.
|
|
bulk_max_size: {{ (processors | int) * 128 }}
|
|
|
|
# The number of seconds to wait for responses from the Logstash server before
|
|
# timing out. The default is 30s.
|
|
timeout: 90s
|
|
{%- endmacro %}
|
|
|
|
{% macro setup_dashboards(beat_name) -%}
|
|
# These settings control loading the sample dashboards to the Kibana index. Loading
|
|
# the dashboards are disabled by default and can be enabled either by setting the
|
|
# options here, or by using the `-setup` CLI flag or the `setup` command.
|
|
setup.dashboards.enabled: false
|
|
|
|
# The directory from where to read the dashboards. The default is the `kibana`
|
|
# folder in the home path.
|
|
#setup.dashboards.directory: ${path.home}/kibana
|
|
|
|
# The URL from where to download the dashboards archive. It is used instead of
|
|
# the directory if it has a value.
|
|
#setup.dashboards.url:
|
|
|
|
# The file archive (zip file) from where to read the dashboards. It is used instead
|
|
# of the directory when it has a value.
|
|
#setup.dashboards.file:
|
|
|
|
# In case the archive contains the dashboards from multiple Beats, this lets you
|
|
# select which one to load. You can load all the dashboards in the archive by
|
|
# setting this to the empty string.
|
|
#setup.dashboards.beat: {{ beat_name }}
|
|
|
|
# The name of the Kibana index to use for setting the configuration. Default is ".kibana"
|
|
#setup.dashboards.kibana_index: .kibana
|
|
|
|
# The Elasticsearch index name. This overwrites the index name defined in the
|
|
# dashboards and index pattern. Example: testbeat-*
|
|
#setup.dashboards.index:
|
|
|
|
# Always use the Kibana API for loading the dashboards instead of autodetecting
|
|
# how to install the dashboards by first querying Elasticsearch.
|
|
#setup.dashboards.always_kibana: false
|
|
|
|
# If true and Kibana is not reachable at the time when dashboards are loaded,
|
|
# it will retry to reconnect to Kibana instead of exiting with an error.
|
|
#setup.dashboards.retry.enabled: false
|
|
|
|
# Duration interval between Kibana connection retries.
|
|
#setup.dashboards.retry.interval: 1s
|
|
|
|
# Maximum number of retries before exiting with an error, 0 for unlimited retrying.
|
|
#setup.dashboards.retry.maximum: 0
|
|
{%- endmacro %}
|
|
|
|
{% macro setup_template(beat_name, host, data_nodes, elasticsearch_beat_settings={}) -%}
|
|
# A template is used to set the mapping in Elasticsearch
|
|
# By default template loading is enabled and the template is loaded.
|
|
# These settings can be adjusted to load your own template or overwrite existing ones.
|
|
|
|
# Set to false to disable template loading.
|
|
setup.template.enabled: {{ (host == data_nodes[0]) | default(false) | lower }}
|
|
|
|
# Select the kind of index template. From Elasticsearch 7.8, it is possible to
|
|
# use component templates. Available options: legacy, component, index.
|
|
# By default {{ beat_name }} uses the legacy index templates.
|
|
#setup.template.type: legacy
|
|
|
|
# Template name. By default the template name is "{{ beat_name }}-%{[agent.version]}"
|
|
# The template name and pattern has to be set in case the Elasticsearch index pattern is modified.
|
|
setup.template.name: "{{ beat_name }}-%{[agent.version]}"
|
|
|
|
# Template pattern. By default the template pattern is "-%{[agent.version]}-*" to apply to the default index settings.
|
|
# The first part is the version of the beat and then -* is used to match all daily indices.
|
|
# The template name and pattern has to be set in case the Elasticsearch index pattern is modified.
|
|
setup.template.pattern: "{{ beat_name }}-%{[agent.version]}-*"
|
|
|
|
# Path to fields.yml file to generate the template
|
|
setup.template.fields: "${path.config}/fields.yml"
|
|
|
|
# A list of fields to be added to the template and Kibana index pattern. Also
|
|
# specify setup.template.overwrite: true to overwrite the existing template.
|
|
#setup.template.append_fields:
|
|
#- name: field_name
|
|
# type: field_type
|
|
|
|
# Enable JSON template loading. If this is enabled, the fields.yml is ignored.
|
|
#setup.template.json.enabled: false
|
|
|
|
# Path to the JSON template file
|
|
#setup.template.json.path: "${path.config}/template.json"
|
|
|
|
# Name under which the template is stored in Elasticsearch
|
|
#setup.template.json.name: ""
|
|
|
|
# Overwrite existing template
|
|
# Do not enable this option for more than one instance of {{ beat_name }} as it might
|
|
# overload your Elasticsearch with too many update requests.
|
|
setup.template.overwrite: {{ (host == data_nodes[0]) | default(false) | lower }}
|
|
|
|
{% set shards = elasticsearch_beat_settings.shard_count | int %}
|
|
# Elasticsearch template settings
|
|
setup.template.settings:
|
|
|
|
# A dictionary of settings to place into the settings.index dictionary
|
|
# of the Elasticsearch template. For more details, please check
|
|
# https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html
|
|
index:
|
|
number_of_shards: {{ shards }}
|
|
codec: best_compression
|
|
# This provides for an index split of up to 2 times the number of available shards
|
|
number_of_routing_shards: {{ (shards | int) * 2 }}
|
|
# The default number of replicas will be based on the number of data nodes
|
|
# within the environment with a limit of 2 replicas.
|
|
number_of_replicas: {{ elasticsearch_beat_settings.number_of_replicas | int }}
|
|
# Maximum doc values allowed for default kibana search
|
|
{% if 'max_docvalue_fields_search' in elasticsearch_beat_settings %}
|
|
max_docvalue_fields_search: {{ elasticsearch_beat_settings.max_docvalue_fields_search | int }}
|
|
{% endif %}
|
|
# A dictionary of settings for the _source field. For more details, please check
|
|
# https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-source-field.html
|
|
_source:
|
|
enabled: true
|
|
{%- endmacro %}
|
|
|
|
{% macro setup_kibana(host) -%}
|
|
# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
|
|
# This requires a Kibana endpoint configuration.
|
|
setup.kibana:
|
|
|
|
# Kibana Host
|
|
# Scheme and port can be left out and will be set to the default (http and 5601)
|
|
# In case you specify and additional path, the scheme is required: http://localhost:5601/path
|
|
# IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
|
|
host: "{{ host }}"
|
|
|
|
# Optional protocol and basic auth credentials.
|
|
#protocol: "https"
|
|
#username: "elastic"
|
|
#password: "changeme"
|
|
|
|
# Optional HTTP path
|
|
#path: ""
|
|
|
|
# Optional Kibana space ID.
|
|
#space.id: ""
|
|
|
|
# Use SSL settings for HTTPS.
|
|
#ssl.enabled: true
|
|
|
|
# Controls the verification of certificates. Valid values are:
|
|
# * full, which verifies that the provided certificate is signed by a trusted
|
|
# authority (CA) and also verifies that the server's hostname (or IP address)
|
|
# matches the names identified within the certificate.
|
|
# * certificate, which verifies that the provided certificate is signed by a
|
|
# trusted authority (CA), but does not perform any hostname verification.
|
|
# * none, which performs no verification of the server's certificate. This
|
|
# mode disables many of the security benefits of SSL/TLS and should only be used
|
|
# after very careful consideration. It is primarily intended as a temporary
|
|
# diagnostic mechanism when attempting to resolve TLS errors; its use in
|
|
# production environments is strongly discouraged.
|
|
# The default value is full.
|
|
#ssl.verification_mode: full
|
|
|
|
# List of supported/valid TLS versions. By default all TLS versions from 1.1
|
|
# up to 1.3 are enabled.
|
|
#ssl.supported_protocols: [TLSv1.1, TLSv1.2, TLSv1.3]
|
|
|
|
# List of root certificates for HTTPS server verifications
|
|
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
|
|
|
|
# Certificate for SSL client authentication
|
|
#ssl.certificate: "/etc/pki/client/cert.pem"
|
|
|
|
# Client certificate key
|
|
#ssl.key: "/etc/pki/client/cert.key"
|
|
|
|
# Optional passphrase for decrypting the certificate key.
|
|
#ssl.key_passphrase: ''
|
|
|
|
# Configure cipher suites to be used for SSL connections
|
|
#ssl.cipher_suites: []
|
|
|
|
# Configure curve types for ECDHE-based cipher suites
|
|
#ssl.curve_types: []
|
|
|
|
# Configure what types of renegotiation are supported. Valid options are
|
|
# never, once, and freely. Default is never.
|
|
#ssl.renegotiation: never
|
|
|
|
# Configure a pin that can be used to do extra validation of the verified certificate chain,
|
|
# this allow you to ensure that a specific certificate is used to validate the chain of trust.
|
|
#
|
|
# The pin is a base64 encoded string of the SHA-256 fingerprint.
|
|
#ssl.ca_sha256: ""
|
|
{%- endmacro %}
|
|
|
|
{% macro beat_logging(beat_name, log_level='info') -%}
|
|
# There are four options for the log output: file, stderr, syslog, eventlog
|
|
# The file output is the default.
|
|
|
|
# Sets log level. The default log level is info.
|
|
# Available log levels are: error, warning, info, debug
|
|
logging.level: {{ log_level }}
|
|
|
|
# Enable debug output for selected components. To enable all selectors use ["*"]
|
|
# Other available selectors are "beat", "publisher", "service"
|
|
# Multiple selectors can be chained.
|
|
#logging.selectors: [ ]
|
|
|
|
# Send all logging output to stderr. The default is false.
|
|
#logging.to_stderr: false
|
|
|
|
# Send all logging output to syslog. The default is false.
|
|
#logging.to_syslog: false
|
|
|
|
# Send all logging output to Windows Event Logs. The default is false.
|
|
#logging.to_eventlog: false
|
|
|
|
# If enabled, {{ (beat_name == 'apm-server') | ternary( beat_name, beat_name | capitalize) }} periodically logs its internal metrics that have changed
|
|
# in the last period. For each metric that changed, the delta from the value at
|
|
# the beginning of the period is logged. Also, the total values for
|
|
# all non-zero internal metrics are logged on shutdown. The default is true.
|
|
#logging.metrics.enabled: true
|
|
|
|
# The period after which to log the internal metrics. The default is 30s.
|
|
#logging.metrics.period: 30s
|
|
|
|
# Logging to rotating files. Set logging.to_files to false to disable logging to
|
|
# files.
|
|
logging.to_files: true
|
|
logging.files:
|
|
# Configure the path where the logs are written. The default is the logs directory
|
|
# under the home path (the binary location).
|
|
path: /var/log/beats
|
|
|
|
# The name of the files where the logs are written to.
|
|
name: {{ beat_name }}.log
|
|
|
|
# Configure log file size limit. If limit is reached, log file will be
|
|
# automatically rotated
|
|
#rotateeverybytes: 10485760 # = 10MB
|
|
|
|
# Number of rotated log files to keep. Oldest files will be deleted first.
|
|
keepfiles: 2
|
|
|
|
# The permissions mask to apply when rotating log files. The default value is 0600.
|
|
# Must be a valid Unix-style file permissions mask expressed in octal notation.
|
|
#permissions: 0600
|
|
|
|
# Enable log file rotation on time intervals in addition to size-based rotation.
|
|
# Intervals must be at least 1s. Values of 1m, 1h, 24h, 7*24h, 30*24h, and 365*24h
|
|
# are boundary-aligned with minutes, hours, days, weeks, months, and years as
|
|
# reported by the local system clock. All other intervals are calculated from the
|
|
# Unix epoch. Defaults to disabled.
|
|
#interval: 0
|
|
|
|
# Rotate existing logs on startup rather than appending to the existing
|
|
# file. Defaults to true.
|
|
# rotateonstartup: true
|
|
|
|
# Set to true to log messages in JSON format.
|
|
#logging.json: false
|
|
|
|
# Set to true, to log messages with minimal required Elastic Common Schema (ECS)
|
|
# information. Recommended to use in combination with `logging.json=true`
|
|
# Defaults to false.
|
|
#logging.ecs: false
|
|
{%- endmacro %}
|
|
|
|
{% macro xpack_monitoring_elasticsearch(beat_name, host, data_hosts, processors, username, uuid) -%}
|
|
# {{ beat_name | capitalize }} can export internal metrics to a central Elasticsearch monitoring
|
|
# cluster. This requires xpack monitoring to be enabled in Elasticsearch. The
|
|
# reporting is disabled by default.
|
|
|
|
# Set to true to enable the monitoring reporter.
|
|
monitoring.enabled: true
|
|
|
|
# Sets the UUID of the Elasticsearch cluster under which monitoring data for this
|
|
# {{ beat_name | capitalize }} instance will appear in the Stack Monitoring UI. If output.elasticsearch
|
|
# is enabled, the UUID is derived from the Elasticsearch cluster referenced by output.elasticsearch.
|
|
{% if uuid is defined %}
|
|
monitoring.cluster_uuid: {{ uuid }}
|
|
{% endif %}
|
|
|
|
# Uncomment to send the metrics to Elasticsearch. Most settings from the
|
|
# Elasticsearch output are accepted here as well.
|
|
# Note that the settings should point to your Elasticsearch *monitoring* cluster.
|
|
# Any setting that is not set is automatically inherited from the Elasticsearch
|
|
# output configuration, so if you have the Elasticsearch output configured such
|
|
# that it is pointing to your Elasticsearch monitoring cluster, you can simply
|
|
# uncomment the following line.
|
|
monitoring.elasticsearch:
|
|
|
|
# Array of hosts to connect to.
|
|
# Scheme and port can be left out and will be set to the default (http and 9200)
|
|
# In case you specify and additional path, the scheme is required: http://localhost:9200/path
|
|
# IPv6 addresses should always be defined as: https://[2001:db8::1]:9200
|
|
hosts: {{ (data_hosts | default([])) | to_json }}
|
|
|
|
# Set gzip compression level.
|
|
compression_level: 9
|
|
|
|
# Protocol - either `http` (default) or `https`.
|
|
#protocol: "https"
|
|
|
|
# Authentication credentials - either API key or username/password.
|
|
#api_key: "id:api_key"
|
|
{% if username is defined %}
|
|
username: "{{ username }}"
|
|
password: "${% raw %}{{% endraw %}{{ username }}{% raw %}}{% endraw %}"
|
|
{% endif %}
|
|
|
|
# Dictionary of HTTP parameters to pass within the URL with index operations.
|
|
#parameters:
|
|
#param1: value1
|
|
#param2: value2
|
|
|
|
# Custom HTTP headers to add to each request
|
|
headers:
|
|
X-Node-Name: {{ host }}
|
|
|
|
# Proxy server url
|
|
#proxy_url: http://proxy:3128
|
|
|
|
# The number of times a particular Elasticsearch index operation is attempted. If
|
|
# the indexing operation doesn't succeed after this many retries, the events are
|
|
# dropped. The default is 3.
|
|
max_retries: 5
|
|
|
|
# The maximum number of events to bulk in a single Elasticsearch bulk API index request.
|
|
# The default is 50.
|
|
bulk_max_size: {{ (processors | int) * 64 }}
|
|
|
|
# The number of seconds to wait before trying to reconnect to Elasticsearch
|
|
# after a network error. After waiting backoff.init seconds, the Beat
|
|
# tries to reconnect. If the attempt fails, the backoff timer is increased
|
|
# exponentially up to backoff.max. After a successful connection, the backoff
|
|
# timer is reset. The default is 1s.
|
|
#backoff.init: 1s
|
|
|
|
# The maximum number of seconds to wait before attempting to connect to
|
|
# Elasticsearch after a network error. The default is 60s.
|
|
#backoff.max: 60s
|
|
|
|
# Configure HTTP request timeout before failing an request to Elasticsearch.
|
|
timeout: 120
|
|
|
|
# Use SSL settings for HTTPS.
|
|
#ssl.enabled: true
|
|
|
|
# Controls the verification of certificates. Valid values are:
|
|
# * full, which verifies that the provided certificate is signed by a trusted
|
|
# authority (CA) and also verifies that the server's hostname (or IP address)
|
|
# matches the names identified within the certificate.
|
|
# * certificate, which verifies that the provided certificate is signed by a
|
|
# trusted authority (CA), but does not perform any hostname verification.
|
|
# * none, which performs no verification of the server's certificate. This
|
|
# mode disables many of the security benefits of SSL/TLS and should only be used
|
|
# after very careful consideration. It is primarily intended as a temporary
|
|
# diagnostic mechanism when attempting to resolve TLS errors; its use in
|
|
# production environments is strongly discouraged.
|
|
# The default value is full.
|
|
#ssl.verification_mode: full
|
|
|
|
# List of supported/valid TLS versions. By default all TLS versions from 1.1
|
|
# up to 1.3 are enabled.
|
|
#ssl.supported_protocols: [TLSv1.1, TLSv1.2, TLSv1.3]
|
|
|
|
# List of root certificates for HTTPS server verifications
|
|
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
|
|
|
|
# Certificate for SSL client authentication
|
|
#ssl.certificate: "/etc/pki/client/cert.pem"
|
|
|
|
# Client certificate key
|
|
#ssl.key: "/etc/pki/client/cert.key"
|
|
|
|
# Optional passphrase for decrypting the certificate key.
|
|
#ssl.key_passphrase: ''
|
|
|
|
# Configure cipher suites to be used for SSL connections
|
|
#ssl.cipher_suites: []
|
|
|
|
# Configure curve types for ECDHE-based cipher suites
|
|
#ssl.curve_types: []
|
|
|
|
# Configure what types of renegotiation are supported. Valid options are
|
|
# never, once, and freely. Default is never.
|
|
#ssl.renegotiation: never
|
|
|
|
# Configure a pin that can be used to do extra validation of the verified certificate chain,
|
|
# this allow you to ensure that a specific certificate is used to validate the chain of trust.
|
|
#
|
|
# The pin is a base64 encoded string of the SHA-256 fingerprint.
|
|
#ssl.ca_sha256: ""
|
|
|
|
# Enable Kerberos support. Kerberos is automatically enabled if any Kerberos setting is set.
|
|
#kerberos.enabled: true
|
|
|
|
# Authentication type to use with Kerberos. Available options: keytab, password.
|
|
#kerberos.auth_type: password
|
|
|
|
# Path to the keytab file. It is used when auth_type is set to keytab.
|
|
#kerberos.keytab: /etc/elastic.keytab
|
|
|
|
# Path to the Kerberos configuration.
|
|
#kerberos.config_path: /etc/krb5.conf
|
|
|
|
# Name of the Kerberos user.
|
|
#kerberos.username: elastic
|
|
|
|
# Password of the Kerberos user. It is used when auth_type is set to password.
|
|
#kerberos.password: changeme
|
|
|
|
# Kerberos realm.
|
|
#kerberos.realm: ELASTIC
|
|
|
|
#metrics.period: 10s
|
|
#state.period: 1m
|
|
|
|
# The `monitoring.cloud.id` setting overwrites the `monitoring.elasticsearch.hosts`
|
|
# setting. You can find the value for this setting in the Elastic Cloud web UI.
|
|
#monitoring.cloud.id:
|
|
|
|
# The `monitoring.cloud.auth` setting overwrites the `monitoring.elasticsearch.username`
|
|
# and `monitoring.elasticsearch.password` settings. The format is `<user>:<pass>`.
|
|
#monitoring.cloud.auth:
|
|
{%- endmacro %}
|
|
|
|
{% macro beat_processors(processors) -%}
|
|
processors:
|
|
{% if processors is defined and processors is iterable and processors | length > 0 %}
|
|
{{ processors | to_yaml }}
|
|
{% else %}
|
|
- add_host_metadata: ~
|
|
{%- endif %}
|
|
{%- endmacro %}
|