Configure lightweight monitors

edit

To configure lightweight monitors define a set of monitors to check your remote hosts. Each monitor item is an entry in a YAML list and begins with a dash (-). You can define the type of monitor to use, the hosts to check, and other optional settings.

Lightweight monitors can be configured using any of the following:

  • YAML files in Project Monitors. [beta] This functionality is in beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. Set up a project and configure monitors in YAML files in the journeys directory.
  • Uptime app UI. [beta] This functionality is in beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. Go to the Uptime app in Kibana and configure monitors using the Monitor Management UI.
  • YAML files in Heartbeat. Set up Heartbeat and configure monitors in the heartbeat.yml config file, or in external dynamically loaded files located in the directory referenced by heartbeat.config.monitors.path. Read more about these options in Configure Heartbeat monitors.

Monitor types

edit
http
Connects via HTTP and optionally verifies that the host returns the expected response. Will use Elastic-Heartbeat as the user agent product.
icmp
Uses an ICMP (v4 and v6) Echo Request to ping the configured hosts. Requires special permissions or root access.
tcp
Connects via TCP and optionally verifies the endpoint by sending and/or receiving a custom payload.

The following example configures three monitors checking via the http, icmp, and tcp protocols and demonstrates how to use TCP Echo and HTTP response verification:

heartbeat.monitors:
- type: http
  name: Todos Lightweight
  id: todos-lightweight
  urls: "https://elastic.github.io/synthetics-demo/"
  schedule: '@every 1m'
- type: icmp
  id: ping-myhost
  name: My Host Ping
  hosts: ["myhost"]
  schedule: '@every 5m'
- type: tcp
  id: myhost-tcp-echo
  name: My Host TCP Echo
  hosts: ["myhost:777"]  # default TCP Echo Protocol
  check.send: "Check"
  check.receive: "Check"
  schedule: '@every 60s'

Configuration options

edit

You can find a complete reference of available configuration options in the Heartbeat documentation.

If you are using Project Monitors or the Uptime app UI to configure lightweight monitors, it is important to note that while the most commonly used Heartbeat configuration options are supported, some configuration options are not yet supported in these beta products.

There are some common monitor configuration options that are the same for all monitors. For a complete list, refer to Common monitor options.

Each monitor type has additional configuration options that are specific to that monitor type. Refer to:

The tcp and http monitor types both support SSL/TLS and some proxy settings.