Push Graylog metrics into Graphite
@dschutterop
View on Github
Open Issues
Stargazers
Pushing monitoring data into Graphite
The Python scripts in this repository should help you on your way:
- elasticsearch_clusterhealth.py
- elasticsearch_indexes.py
- graylog_notifications.py
- graylog_throughput.py
elasticsearch_clusterhealth.py
This script grabs the health status from Elasticsearch and transforms the string value to an integer (as Graphite can’t handle strings):
- green = 0
- yellow = 1
- red = 2
It also transforms the boolean value of timed_out to 0 or 1
elasticsearch_indices.py
This script grabs and rewrites index data metrics from Elasticsearch. one of the issues between elastic and Graylog is the orientation; where elastic messages are language oriented (cluster status green), Graphite can’t handle anything but integers, therefor we rewrite a bunch of entries so we can make sense of it (in Grafana).
The data we push into Graphite:
- total number of indices
- number of green (ok) indices
- number of yellow (impaired) indices
- number of red (errro) indices
- number of messages
- deleted documents
- total store size in bytes
- total store size in gigabytes
- total store size in megabytes
- primary store size in bytes
- primary store size in gigabytes
- primary store size in megabytes
- replica store size in bytes
- replica store size in gigabytes
- replica store size in megabytes
- primary shards
- replica shards
graylog_notifications.py
A script that grabs the number of current notifications from a graylog node and pushes the integer value into Graylog.
Nothing too special
graylog_throughput.py
Grabs the Graylog throughput (number of messages) and pushes it into Graphite so you can unleash all kinds of funky graphs, through Grafana too!