Configurazione Icinga2, Influxdb e Grafana

Galleria: 
Influx Icinga2 e grafana loghi

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, databases e tutto il necessario per capire da cosa è stato generato un alert, per prevenire down o degrado dei servizi

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 performances 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

E' 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

Nel nostro esempio manteniamo una finestra di sei mesi, per i dati storici, dopo di che li eliminiamo
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 performances 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, Elastic search, influxdb e altri
Sarà sufficiente settare l'indirizzo e il nome del nostro DB, la porta, username e password definite durante la configurazione

Grafana datasource

Sono disponibili anche varie dashboard già preconfigurate per la visualizzazione dei dati
E' possibile modificarle o crearne delle nuove, utilizzando la sintassi del database per lavorare sulle metriche