Closed
Description
When you deploy a large number of Beats, it becomes challenging to monitor the Beats itself.
A solution would be for the Beats to report health status to a collection point, such as Elasticsearch, and visualize it with Kibana.
The following health metrics should be sent to Elasticsearch:
- libbeat.beat.cpu_usage
- libbeat.beat.memory_usage
- libbeat.publisher.published_events
- libbeat.publisher.messages_in_worker_queues
- libbeat.outputs.acked_events Export health metrics via expvar #3423
- libbeat.outputs.messages_dropped
- libbeat.outputs.send_bytes Export health metrics via expvar #3423
- libbeat.outputs.failures Export health metrics via expvar #3423
Each Beat exports more metrics via expvar, but it should send only a subset of these metrics to Elasticsearch.
By default, the health metrics are sent directly to the Elasticsearch cluster configured in the outputs.elasticsearch
, but you can also configure an extra Elasticsearch cluster to send the monitoring data to.
TODO:
- Differentiate between the metrics exported via expvar to send only a subset
- Send the health metrics to Elasticsearch
Configuration:
monitoring:
enabled: true
period: 10s
elasticsearch: ["localhost:9201"]
UPDATE: The CPU usage is exported under different fields. See #3422
cc-ed @bohyun-e @brandonmensing