Send data via Heartbeat to your Logstash instance provided by Logit.io

Heartbeat

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.

Step 1 - Install Heartbeat

deb (Debian/Ubuntu/Mint)

curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-oss-7.6.2-amd64.deb
sudo dpkg -i heartbeat-oss-7.6.2-amd64.deb

rpm (CentOS/RHEL/Fedora)

curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-oss-7.6.2-x86_64.rpm
sudo rpm -vi heartbeat-oss-7.6.2-x86_64.rpm

macOS

curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-oss-7.6.2-darwin-x86_64.tar.gz 
tar xzvf heartbeat-oss-7.6.2-darwin-x86_64.tar.gz

Windows

  • Download the heartbeat Windows zip file from the official downloads page.
  • Extract the contents of the zip file into C:\Program Files.
  • Rename the heartbeat-<version>-windows directory to heartbeat.
  • Open a PowerShell prompt as an Administrator (right-click the PowerShell icon and select Run As Administrator). If you are running Windows XP, you may need to download and install PowerShell.
  • Run the following commands to install heartbeat as a Windows service:
PS > cd 'C:\Program Files\heartbeat'
PS C:\Program Files\heartbeat> .\install-service-heartbeat.ps1`
If script execution is disabled on your system, you need to set the execution policy for the current session to allow the script to run. For example: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-heartbeat.ps1.
My OS isn't here! Don't see your system? Check out the official downloads page for more options (including 32-bit versions).

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.

heartbeat.monitors:
- type: icmp
  schedule: '*/5 * * * * * *'
  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"]

Uncomment and change the logstash output to match below.

output.logstash:
    hosts: ["your-logstash-host:your-port"]
    loadbalance: true
    ssl.enabled: true

Step 5 - Validate configuration

Let's check the configuration file is syntactically correct.

deb/rpm

sudo  -e -c /etc//.yml

macOS

cd <EXTRACTED_ARCHIVE>
./ -e -c .yml

Windows

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

Step 6 - Start heartbeat

Ok, time to start ingesting data!

deb/rpm

sudo systemctl enable heartbeat
sudo systemctl start heartbeat

mac

./heartbeat

Windows

Start-Service heartbeat

Step 7 - 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 keepa 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.

expand view

Expand View

compact view

Compact View

Return to Search
Sign Up