################### 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 ###################################### # 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: ["localhost"] # 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: 16s # 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 - 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: tcp # 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://:[port]`. The `` 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: ["localhost:9200"] # 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"] # 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: http # Enable/Disable monitor #enabled: true # Configure task schedule schedule: '@every 5s' # every 5 seconds from start of beat # Configure URLs to ping urls: ["http://localhost:9200"] # 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: "GET" # Dictionary of additional HTTP headers to send: #headers: # Optional request body content #body: # Expected response settings #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: # 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. #limit: 0 # Set the scheduler it's timezone #location: ''