Get a DemoStart Free TrialSign In

Elastic Heartbeat Configuration

Monitor the status of hosts at set intervals using ICMP, TCP, and HTTP.

Heartbeat is a lightweight shipping agent used to monitor the health of services running on the host. The results can then be shipped to one or more destinations, including Logstash.

Send Your DataLogsShippersElastic Heartbeat Configuration Guide

Follow this step by step guide to start sending data from your system to Logit.io:

Step 1 - Install Heartbeat

To get started first follow the steps below:

Older versions can be found here heartbeat 7, heartbeat 6, heartbeat 5

Step 2 - Locate the configuration file

deb/rpm /etc/heartbeat/heartbeat.yml
mac/win <EXTRACTED_ARCHIVE>/heartbeat.yml

Step 3 - Configure the monitors

The following example shows a basic configuration for each of the three different types of monitors, ICMP, TCP, and HTTP.

Copy the contents below and paste this into the heartbeat.yml file at line 39

# Configure monitors inline
heartbeat.monitors:
- type: http
  # Set enabled to true (or delete the following line) to enable this monitor
  enabled: true
  # ID used to uniquely identify this monitor in Elasticsearch even if the config changes
  id: my-monitor
  # Human readable display name for this service in Uptime UI and elsewhere
  name: My Monitor
  # List of URLs to query
  urls: ["https://logit.io"]
  # Configure task schedule
  schedule: '@every 10s'

# Other examples for icmp, tcp and http
# heartbeat.monitors:
# - type: icmp
#   schedule: '@every 5s'
#   hosts: ["myhost"]
# - type: tcp
#   schedule: '@every 5s'
#   hosts: ["myhost:7"]  # default TCP Echo Protocol
#   check.send: "Check"
#   check.receive: "Check"
# - type: http
#   schedule: '@every 5s'
#   urls: ["http://localhost:80/service/status"]
#   check.response.status: 200
# heartbeat.scheduler:
#   limit: 10
There's also a full example configuration file called heartbeat.reference.yml that shows all the possible options.

Step 4 - Configure output

We'll be shipping to Logstash so that we have the option to run filters before the data is indexed.
Comment out the elasticsearch output block.

## Comment out elasticsearch output
#output.elasticsearch:
#  hosts: ["localhost:9200"]
No input available! Your stack is missing the required input for this data source Talk to support to add the input

Step 5 - Validate configuration

DEB/RPM

sudo heartbeat -e -c /etc/heartbeat/heartbeat.yml

macOS

sudo ./heartbeat -e -c heartbeat.yml --strict.perms=false

You’ll be running heartbeat as root, so you need to change ownership of the configuration file and any configurations enabled in the modules.d directory, or run heartbeat with --strict.perms=false as shown above. Read more about how to change ownership.

Windows

cd <EXTRACTED_ARCHIVE>
.\heartbeat.exe -e -c heartbeat.yml

Linux

sudo ./heartbeat -e -c heartbeat.yml --strict.perms=false

You’ll be running heartbeat as root, so you need to change ownership of the configuration file and any configurations enabled in the modules.d directory, or run heartbeat with --strict.perms=false as shown above. Read more about how to change ownership.

If the yml file is invalid, heartbeat will print an `error loading config file` error message with details on how to correct the problem. If you have issues starting heartbeat see "How To Diagnose No Data In Stack" below to troubleshoot.

Step 6 - Start heartbeat

Ok, time to start ingesting data!

deb/rpm

sudo systemctl enable heartbeat
sudo systemctl start heartbeat

mac

sudo chown root heartbeat.yml 
sudo chown root modules.d/{modulename}.yml 
sudo ./heartbeat -e

Windows

Start-Service heartbeat

Step 7 - Check Logit.io for your logs

Data should now have been sent to your Stack.

View my data

If you don't see logs take a look at How to diagnose no data in Stack below for how to diagnose common issues.

Step 8 - how to diagnose no data in Stack

If you don't see data appearing in your Stack after following the steps, visit the Help Centre guide for steps to diagnose no data appearing in your Stack or Chat to support now.

Step 9 - Heartbeat Logging Overview

Heartbeat is a lightweight shipping agent created by Elastic as part of their Beats group of log shippers. Compared to other tools in the Beats family, such as Metricbeat & Winlogbeat, Heartbeat is a relatively new addition to the Elastic Stack.

Heartbeat is the only member of the Beats family that Elastic recommends you to install on a separate network/machine to the one you are currently wishing to monitor.

Heartbeat was created to allow observability of the health of services running on the host (this includes uptime monitoring functionality as standard). These results can then be shipped to one or more destinations, including Logstash.

Heartbeat supports HTTP, ICMP and TCP protocols for monitoring service availability.

If you need to keep a close eye on uptime for the purposes of complying with your company’s service level agreement (SLA) then you’ll find that Heartbeat is integral for monitoring these instances based on the URLs & metrics you supply to the application, prior to indexing. This feedback can be triggered based on the custom schedule you select during configuration.

If you need any further assistance with migrating your Heartbeat data to Logstash we're here to help you get started. Feel free to reach out by contacting our support team by visiting our dedicated Help Centre or via live chat & we'll be happy to assist.

Return to Search
Sign Up

© 2024 Logit.io Ltd, All rights reserved.