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.
curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-oss-6.4.0-amd64.deb
sudo dpkg -i heartbeat-oss-6.4.0-amd64.deb
curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-oss-6.4.0-x86_64.rpm
sudo rpm -vi heartbeat-oss-6.4.0-x86_64.rpm
curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-oss-6.4.0-darwin-x86_64.tar.gz
tar xzvf heartbeat-oss-6.4.0-darwin-x86_64.tar.gz
Download the Heartbeat Windows zip file from the official downloads page.
Extract the contents of the zip file into C:\Program Files.
heartbeat-<version>-windows directory to
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`
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
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
Let's check the configuration file is syntactically correct.
heartbeat -e -c /etc/heartbeat/heartbeat.yml
Ran from the extracted archive dir
heartbeat -e -c heartbeat.yml
Ok, time to start ingesting data!
$ sudo service heartbeat start
PS C:\Program Files\heartbeat> Start-Service heartbeat