Looking for a way to log messages to an Elasticsearch instance, I searched and found that this would be my preferred one.
Prerequisites are to have jq and curl installed.
Write a function elk_log():
elk_log(){ # Default configuration ELK_HOST="elasticsearch.rktmb.org" ELK_PORT=9200 ELK_IDX="mihamina-database" # Overridden if ENV vars set: if [ -n "$GW_HOST" ]; then ELK_HOST=$GW_HOST; fi if [ -n "$GW_PORT" ]; then ELK_PORT=$GW_PORT; fi TSTAMP=$( date --iso-8601=sec ) curl -H "Content-Type:application/json" \ -X POST --silent \ --data "$( jq -n \ --arg tstamp "$TSTAMP" \ --arg message "$1" \ '{timestamp: $tstamp, message: $message}' )" http://${ELK_HOST}:${ELK_PORT}/${ELK_IDX}/_doc }
Then call this with:
#[...] elk_log "MIHAMINA DATA STRUCTURE BEGIN" #[...] elk_log "MIHAMINA DATA STRUCTURE END" #[...]
Thanks to https://stackoverflow.com/a/48470227