Step 1 - Install Heartbeat

deb (Debian/Ubuntu/Mint)

sudo apt-get install apt-transport-https
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo 'deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main' | sudo tee /etc/apt/sources.list.d/beats.list

sudo apt-get update && sudo apt-get install heartbeat

rpm (CentOS/RHEL/Fedora)

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
echo "[elastic-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/oss-6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md" | sudo tee /etc/yum.repos.d/elastic-beats.repo

sudo yum install heartbeat

macOS

curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-oss-6.7.1-darwin-x86_64.tar.gz 
tar xzvf heartbeat-oss-6.7.1-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 heartbeat -e -c /etc/heartbeat/heartbeat.yml

macOS

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

Windows

cd <EXTRACTED_ARCHIVE>
heartbeat.exe -e -c heartbeat.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

Ready to get going?

Try our 14 day free trial

No commitment and no catches

Create Free Trial