Configurazione Icinga2, Influxdb e Grafana
Collezionare le metriche di Icinga2 su InfluxDB e creare dei grafici storici, per un network monitoring è fondamentale.
Mantenere i risultati dei check su Time Series Database (TSDB), permette di confrontare load, IO dei dischi, database e tutto il necessario per capire da cosa è stato generata una notifica alert, per prevenire disservizio o degrado
E' quindi necessario:
- Creare i database necessari
- Creare le credenziali utente e password
- Configurare le Retention Policy (RP)
- Configurare il monitoraggio per inviare le metriche a Influx
- Configurare una Data Source Grafana per leggere le metriche
Creare database Influxdb per Icinga2 e Collectd
E' necessario creare alcuni database, nei quali andremo a scrivere le nostre misurazioni o performance data
CREATE DATABASE icinga2db
CREATE DATABASE collectd
Creazione user Grafana
Se è stata abilitata la autenticazione sarà necessario accedere come amministratore utilizzando la password
docker exec -it <NOMECONTAINER> bash
influx -username 'nomeamministratore' -password passwordsupersicura
# Creazione utente
CREATE USER 'grafanadb' WITH PASSWORD ‘grafanadbpass’;
GRANT READ ON grafana TO icinga2db;
GRANT READ ON grafana TO collectd;
Creazione utente Icinga
CREATE USER 'icinga2user' WITH PASSWORD ‘icinga2pass’;
GRANT ALL ON icinga2db TO icinga2user;
Testiamo il funzionamento degli utenti creati
curl -G http://localhost:8086/query -u grafanadb:grafanadbpass --data-urlencode "q=SHOW DATABASES"
curl -G http://localhost:8086/query -u icinga2user:icinga2pass --data-urlencode "q=SHOW DATABASES"
Configurazione Retention Policy
È consigliato creare una politica di cancellazione dei dati vecchi, per non esaurire lo spazio su disco
La politica di default autogen
mantiene tutti i dati all'infinito
Creare una Retention Policy
Vogliamo inoltre settarla come default sul DB
CREATE RETENTION POLICY "sei_mesi" ON "collectd" DURATION 180d REPLICATION 1 DEFAULT
CREATE RETENTION POLICY "sei_mesi" ON "icinga2db" DURATION 180d REPLICATION 1 DEFAULT
Cancellare una Retention Policy
Se non ci servono possiamo cancellare i dati presenti nella Retention Policy (RP) autogen
USE <nomedatabase>
DROP RETENTION POLICY autogen
Configurazione Icinga2
A questo punto è necessario abilitare e configurare l'invio delle performance a Influx
icinga2 feature enable influxdb
Rimane da configurare il tag delle metriche, e i parametri di connessione al nostro server influx
Per la configurazione completa si può fare riferimento alla guida ufficiale
Configurazione del Data Source Grafana
Grafana permette di leggere le metriche da differenti sorgenti, come Graphite, Elasticsearch, InfluxDB e molti altri
Sarà sufficiente settare l'indirizzo e il nome del nostro DB, la porta, username e password definite durante la configurazione