Remove duplication in Heartbeat config
Currently much of the template in the template heartbeat config file is duplicated, presumably due to a copy and paste error. This commit removes the duplicate definition of variables in the template file. Change-Id: I5786a5a94b56d0ada33ab9607a06548b2678d7f7
This commit is contained in:
parent
1ba435f78e
commit
9bf0c1d03a
@ -1053,384 +1053,3 @@ setup.ilm.policy_file: "{{ ilm_policy_file_location }}/{{ ilm_policy_filename }}
|
||||
|
||||
# This allows to enable 6.7 migration aliases
|
||||
#migration.6_to_7.enabled: false
|
||||
################### Heartbeat Configuration Example #########################
|
||||
|
||||
# This file is a full configuration example documenting all non-deprecated
|
||||
# options in comments. For a shorter configuration example, that contains
|
||||
# only some common options, please see heartbeat.yml in the same directory.
|
||||
#
|
||||
# You can find the full configuration reference here:
|
||||
# https://www.elastic.co/guide/en/beats/heartbeat/index.html
|
||||
|
||||
############################# Heartbeat ######################################
|
||||
{% set icmp_hosts = [] %}
|
||||
{% for host_item in groups['all'] %}
|
||||
{% if hostvars[host_item]['ansible_host'] is defined %}
|
||||
{% set _ = icmp_hosts.extend([hostvars[host_item]['ansible_host']]) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
# Define a directory to load monitor definitions from. Definitions take the form
|
||||
# of individual yaml files.
|
||||
heartbeat.config.monitors:
|
||||
# Directory + glob pattern to search for configuration files
|
||||
path: ${path.config}/monitors.d/*.yml
|
||||
# If enabled, heartbeat will periodically check the config.monitors path for changes
|
||||
reload.enabled: false
|
||||
# How often to check for changes
|
||||
reload.period: 5s
|
||||
|
||||
# Configure monitors
|
||||
heartbeat.monitors:
|
||||
- type: icmp # monitor type `icmp` (requires root) uses ICMP Echo Request to ping
|
||||
# configured hosts
|
||||
|
||||
# Monitor name used for job name and document type.
|
||||
name: icmp
|
||||
|
||||
# Enable/Disable monitor
|
||||
enabled: true
|
||||
|
||||
# Configure task schedule using cron-like syntax
|
||||
schedule: '*/5 * * * * * *' # exactly every 5 seconds like 10:00:00, 10:00:05, ...
|
||||
|
||||
# List of hosts to ping
|
||||
hosts: {{ (icmp_hosts | default([])) | to_json }}
|
||||
# Configure IP protocol types to ping on if hostnames are configured.
|
||||
# Ping all resolvable IPs if `mode` is `all`, or only one IP if `mode` is `any`.
|
||||
ipv4: true
|
||||
ipv6: true
|
||||
mode: any
|
||||
|
||||
# Total running time per ping test.
|
||||
timeout: {{ icmp_hosts | length }}s
|
||||
|
||||
# Waiting duration until another ICMP Echo Request is emitted.
|
||||
wait: 1s
|
||||
|
||||
# The tags of the monitors are included in their own field with each
|
||||
# transaction published. Tags make it easy to group servers by different
|
||||
# logical properties.
|
||||
#tags: ["service-X", "web-tier"]
|
||||
|
||||
# Optional fields that you can specify to add additional information to the
|
||||
# monitor output. Fields can be scalar values, arrays, dictionaries, or any nested
|
||||
# combination of these.
|
||||
#fields:
|
||||
# env: staging
|
||||
|
||||
# If this option is set to true, the custom fields are stored as top-level
|
||||
# fields in the output document instead of being grouped under a fields
|
||||
# sub-dictionary. Default is false.
|
||||
#fields_under_root: false
|
||||
|
||||
# NOTE: THIS FEATURE IS DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE
|
||||
# Configure file json file to be watched for changes to the monitor:
|
||||
#watch.poll_file:
|
||||
# Path to check for updates.
|
||||
#path:
|
||||
|
||||
# Interval between file file changed checks.
|
||||
#interval: 5s
|
||||
|
||||
# Define a directory to load monitor definitions from. Definitions take the form
|
||||
# of individual yaml files.
|
||||
# heartbeat.config.monitors:
|
||||
# Directory + glob pattern to search for configuration files
|
||||
#path: /path/to/my/monitors.d/*.yml
|
||||
# If enabled, heartbeat will periodically check the config.monitors path for changes
|
||||
#reload.enabled: true
|
||||
# How often to check for changes
|
||||
#reload.period: 1s
|
||||
|
||||
{% for item in heartbeat_services %}
|
||||
{% if item.type == 'tcp' %}
|
||||
{% set hosts = [] %}
|
||||
{% for port in item.ports | default([]) %}
|
||||
{% for backend in item.group | default([]) %}
|
||||
{% set backend_host = hostvars[backend]['ansible_host'] %}
|
||||
{% set _ = hosts.extend([backend_host + ":" + (port | string)]) %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% if hosts | length > 0 %}
|
||||
- type: tcp # monitor type `tcp`. Connect via TCP and optionally verify endpoint
|
||||
# by sending/receiving a custom payload
|
||||
|
||||
# Monitor name used for job name and document type
|
||||
name: "{{ item.name }}"
|
||||
|
||||
# Enable/Disable monitor
|
||||
enabled: true
|
||||
|
||||
# Configure task schedule
|
||||
schedule: '@every 5s' # every 5 seconds from start of beat
|
||||
|
||||
# configure hosts to ping.
|
||||
# Entries can be:
|
||||
# - plain host name or IP like `localhost`:
|
||||
# Requires ports configs to be checked. If ssl is configured,
|
||||
# a SSL/TLS based connection will be established. Otherwise plain tcp connection
|
||||
# will be established
|
||||
# - hostname + port like `localhost:12345`:
|
||||
# Connect to port on given host. If ssl is configured,
|
||||
# a SSL/TLS based connection will be established. Otherwise plain tcp connection
|
||||
# will be established
|
||||
# - full url syntax. `scheme://<host>:[port]`. The `<scheme>` can be one of
|
||||
# `tcp`, `plain`, `ssl` and `tls`. If `tcp`, `plain` is configured, a plain
|
||||
# tcp connection will be established, even if ssl is configured.
|
||||
# Using `tls`/`ssl`, an SSL connection is established. If no ssl is configured,
|
||||
# system defaults will be used (not supported on windows).
|
||||
# If `port` is missing in url, the ports setting is required.
|
||||
hosts: {{ (hosts | default([])) | to_json }}
|
||||
|
||||
# Configure IP protocol types to ping on if hostnames are configured.
|
||||
# Ping all resolvable IPs if `mode` is `all`, or only one IP if `mode` is `any`.
|
||||
ipv4: true
|
||||
ipv6: true
|
||||
mode: any
|
||||
|
||||
# List of ports to ping if host does not contain a port number
|
||||
# ports: [80, 9200, 5044]
|
||||
|
||||
# Total test connection and data exchange timeout
|
||||
#timeout: 16s
|
||||
|
||||
# Optional payload string to send to remote and expected answer. If none is
|
||||
# configured, the endpoint is expected to be up if connection attempt was
|
||||
# successful. If only `send_string` is configured, any response will be
|
||||
# accepted as ok. If only `receive_string` is configured, no payload will be
|
||||
# send, but client expects to receive expected payload on connect.
|
||||
#check:
|
||||
#send: ''
|
||||
#receive: ''
|
||||
|
||||
# SOCKS5 proxy url
|
||||
# proxy_url: ''
|
||||
|
||||
# Resolve hostnames locally instead on SOCKS5 server:
|
||||
#proxy_use_local_resolver: false
|
||||
|
||||
# TLS/SSL connection settings:
|
||||
#ssl:
|
||||
# Certificate Authorities
|
||||
#certificate_authorities: ['']
|
||||
|
||||
# Required TLS protocols
|
||||
#supported_protocols: ["TLSv1.0", "TLSv1.1", "TLSv1.2"]
|
||||
{% endif %}
|
||||
{% elif item.type == 'http' %}
|
||||
{% set hosts = [] %}
|
||||
{% for port in item.ports | default([]) %}
|
||||
{% for backend in item.group | default([]) %}
|
||||
{% set backend_host = hostvars[backend]['ansible_host'] %}
|
||||
{% set _ = hosts.extend(["http://" + backend_host + ":" + (port | string) + item.path]) %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% if hosts | length > 0 %}
|
||||
# NOTE: THIS FEATURE IS DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE
|
||||
# Configure file json file to be watched for changes to the monitor:
|
||||
#watch.poll_file:
|
||||
# Path to check for updates.
|
||||
#path:
|
||||
|
||||
# Interval between file file changed checks.
|
||||
#interval: 5s
|
||||
|
||||
- type: http # monitor type `http`. Connect via HTTP an optionally verify response
|
||||
|
||||
# Monitor name used for job name and document type
|
||||
name: "{{ item.name }}"
|
||||
|
||||
# Enable/Disable monitor
|
||||
enabled: true
|
||||
|
||||
# Configure task schedule
|
||||
schedule: '@every 5s' # every 5 seconds from start of beat
|
||||
|
||||
# Configure URLs to ping
|
||||
urls: {{ (hosts | default([])) | to_json }}
|
||||
|
||||
# Configure IP protocol types to ping on if hostnames are configured.
|
||||
# Ping all resolvable IPs if `mode` is `all`, or only one IP if `mode` is `any`.
|
||||
ipv4: true
|
||||
ipv6: true
|
||||
mode: any
|
||||
|
||||
# Configure file json file to be watched for changes to the monitor:
|
||||
#watch.poll_file:
|
||||
# Path to check for updates.
|
||||
#path:
|
||||
|
||||
# Interval between file file changed checks.
|
||||
#interval: 5s
|
||||
|
||||
# Optional HTTP proxy url.
|
||||
#proxy_url: ''
|
||||
|
||||
# Total test connection and data exchange timeout
|
||||
#timeout: 16s
|
||||
|
||||
# Optional Authentication Credentials
|
||||
#username: ''
|
||||
#password: ''
|
||||
|
||||
# TLS/SSL connection settings for use with HTTPS endpoint. If not configured
|
||||
# system defaults will be used.
|
||||
#ssl:
|
||||
# Certificate Authorities
|
||||
#certificate_authorities: ['']
|
||||
|
||||
# Required TLS protocols
|
||||
#supported_protocols: ["TLSv1.0", "TLSv1.1", "TLSv1.2"]
|
||||
|
||||
# Request settings:
|
||||
check.request:
|
||||
# Configure HTTP method to use. Only 'HEAD', 'GET' and 'POST' methods are allowed.
|
||||
method: "{{ item.method }}"
|
||||
|
||||
# Dictionary of additional HTTP headers to send:
|
||||
headers:
|
||||
User-agent: osa-heartbeat-healthcheck
|
||||
# Optional request body content
|
||||
#body:
|
||||
|
||||
# Expected response settings
|
||||
{% if item.check_response is defined %}
|
||||
check.response: {{ item.check_response }}
|
||||
#check.response:
|
||||
# Expected status code. If not configured or set to 0 any status code not
|
||||
# being 404 is accepted.
|
||||
#status: 0
|
||||
|
||||
# Required response headers.
|
||||
#headers:
|
||||
|
||||
# Required response contents.
|
||||
#body:
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
# Parses the body as JSON, then checks against the given condition expression
|
||||
#json:
|
||||
#- description: Explanation of what the check does
|
||||
# condition:
|
||||
# equals:
|
||||
# myField: expectedValue
|
||||
|
||||
|
||||
# NOTE: THIS FEATURE IS DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE
|
||||
# Configure file json file to be watched for changes to the monitor:
|
||||
#watch.poll_file:
|
||||
# Path to check for updates.
|
||||
#path:
|
||||
|
||||
# Interval between file file changed checks.
|
||||
#interval: 5s
|
||||
|
||||
|
||||
heartbeat.scheduler:
|
||||
# Limit number of concurrent tasks executed by heartbeat. The task limit if
|
||||
# disabled if set to 0. The default is 0.
|
||||
#username: "beats_system"
|
||||
#password: "changeme"
|
||||
|
||||
# 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-My-Header: Contents of the header
|
||||
|
||||
# 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: 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 an request to Elasticsearch.
|
||||
#timeout: 90
|
||||
|
||||
# Use SSL settings for HTTPS.
|
||||
#ssl.enabled: true
|
||||
|
||||
# Configure SSL verification mode. If `none` is configured, all server hosts
|
||||
# and certificates will be accepted. In this mode, SSL based connections are
|
||||
# susceptible to man-in-the-middle attacks. Use only for testing. Default is
|
||||
# `full`.
|
||||
#ssl.verification_mode: full
|
||||
|
||||
# List of supported/valid TLS versions. By default all TLS versions from 1.0 up to
|
||||
# 1.2 are enabled.
|
||||
#ssl.supported_protocols: [TLSv1.0, TLSv1.1, TLSv1.2]
|
||||
|
||||
# SSL configuration. The default is off.
|
||||
# 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
|
||||
|
||||
#metrics.period: 10s
|
||||
#state.period: 1m
|
||||
|
||||
#================================ HTTP Endpoint ======================================
|
||||
# Each beat can expose internal metrics through a HTTP endpoint. For security
|
||||
# reasons the endpoint is disabled by default. This feature is currently experimental.
|
||||
# Stats can be access through http://localhost:5066/stats . For pretty JSON output
|
||||
# append ?pretty to the URL.
|
||||
|
||||
# Defines if the HTTP endpoint is enabled.
|
||||
#http.enabled: false
|
||||
|
||||
# The HTTP endpoint will bind to this hostname or IP address. It is recommended to use only localhost.
|
||||
#http.host: localhost
|
||||
|
||||
# Port on which the HTTP endpoint will bind. Default is 5066.
|
||||
#http.port: 5066
|
||||
|
||||
#============================= Process Security ================================
|
||||
|
||||
# Enable or disable seccomp system call filtering on Linux. Default is enabled.
|
||||
#seccomp.enabled: true
|
||||
|
||||
#================================= Migration ==================================
|
||||
|
||||
# This allows to enable 6.7 migration aliases
|
||||
#migration.6_to_7.enabled: false
|
||||
|
Loading…
Reference in New Issue
Block a user