- Heartbeat Reference: other versions:
- Heartbeat overview
- Quick start: installation and configuration
- Set up and run
- Configure
- Monitors
- Task scheduler
- General settings
- Project paths
- Output
- Kerberos
- SSL
- Index lifecycle management (ILM)
- Elasticsearch index template
- Processors
- Define processors
- add_cloud_metadata
- add_cloudfoundry_metadata
- add_docker_metadata
- add_fields
- add_host_metadata
- add_id
- add_kubernetes_metadata
- add_labels
- add_locale
- add_network_direction
- add_nomad_metadata
- add_observer_metadata
- add_process_metadata
- add_tags
- append
- community_id
- convert
- copy_fields
- decode_base64_field
- decode_duration
- decode_json_fields
- decode_xml
- decode_xml_wineventlog
- decompress_gzip_field
- detect_mime_type
- dissect
- dns
- drop_event
- drop_fields
- extract_array
- fingerprint
- include_fields
- move_fields
- rate_limit
- registered_domain
- rename
- replace
- script
- syslog
- translate_ldap_attribute
- translate_sid
- truncate_fields
- urldecode
- Autodiscover
- Internal queue
- Logging
- HTTP endpoint
- Regular expression support
- Instrumentation
- Feature flags
- heartbeat.reference.yml
- How to guides
- Exported fields
- Beat fields
- Synthetics browser metrics fields
- Cloud provider metadata fields
- Common heartbeat monitor fields
- Docker fields
- ECS fields
- Host fields
- HTTP monitor fields
- ICMP fields
- Jolokia Discovery autodiscover provider fields
- Kubernetes fields
- Process fields
- Host lookup fields
- APM Service fields
- SOCKS5 proxy fields
- Monitor state fields
- Monitor summary fields
- Synthetics types fields
- TCP layer fields
- TLS encryption layer fields
- Monitor
- Secure
- Troubleshoot
- Get help
- Debug
- Understand logged metrics
- Common problems
- Heartbeat uses too much bandwidth
- Error loading config file
- Found unexpected or unknown characters
- Logstash connection doesn’t work
- Publishing to Logstash fails with "connection reset by peer" message
- @metadata is missing in Logstash
- Not sure whether to use Logstash or Beats
- SSL client fails to connect to Logstash
- Monitoring UI shows fewer Beats than expected
- High RSS memory usage due to MADV settings
- Contribute to Beats
Running Heartbeat on Kubernetes
editRunning Heartbeat on Kubernetes
editHeartbeat Docker images can be used on Kubernetes to check resources uptime.
Running Elastic Cloud on Kubernetes? See Run Beats on ECK
However, version 9.0.0-beta1 of Heartbeat has not yet been released, so no Docker image is currently available for this version.
Kubernetes deploy manifests
editA single Heartbeat can check for uptime of the whole cluster.
Everything is deployed under kube-system
namespace, you can change that by
updating the YAML file.
To get the manifests just run:
curl -L -O https://raw.githubusercontent.com/elastic/beats/master/deploy/kubernetes/heartbeat-kubernetes.yaml
If you are using Kubernetes 1.7 or earlier: Heartbeat uses a hostPath volume to persist internal data, it’s located
under /var/lib/heartbeat-data. The manifest uses folder autocreation (DirectoryOrCreate
), which was introduced in
Kubernetes 1.8. You will need to remove type: DirectoryOrCreate
from the manifest and create the host folder yourself.
Settings
editSome parameters are exposed in the manifest to configure logs destination, by default they will use an existing Elasticsearch deploy if it’s present, but you may want to change that behavior, so just edit the YAML file and modify them:
- name: ELASTICSEARCH_HOST value: elasticsearch - name: ELASTICSEARCH_PORT value: "9200" - name: ELASTICSEARCH_USERNAME value: elastic - name: ELASTICSEARCH_PASSWORD value: changeme
Deploy
editTo deploy Heartbeat to Kubernetes just run:
kubectl create -f heartbeat-kubernetes.yaml
Then you should be able to check the status by running:
$ kubectl --namespace=kube-system get deployment/heartbeat NAME READY UP-TO-DATE AVAILABLE AGE heartbeat 1/1 1 1 1m
Running Heartbeat as unprivileged user
editUnder Kubernetes, Heartbeat can run as a non-root user, but requires some privileged
network capabilities to operate correctly. Ensure that the NET_RAW
capability is available to the container.
containers: - name: heartbeat image: docker.elastic.co/beats/heartbeat:9.0.0-beta1 securityContext: runAsUser: 1000 runAsGroup: 1000 capabilities: add: [ NET_RAW ]