RFc Networking e Informatica
Pubblicata su RFc Networking e Informatica (https://www.rfc.it)

Home > Icinga

Icinga

Icinga logoIcinga [1]è un progetto open source [2] per il monitoraggio di risorse informatiche. Sorto nel 2009 da un fork  [3]di Nagios [4]con l'intenzione di fornire un più ampio e veloce supporto in particolare nella realizzazioni di patch.

Icinga è una parola Zulu che tradurrei (ma non è il mio mestiere) in esamina, controlla. Il sito ufficiale Icinga riporta questo: 'Icinga is a Zulu word meaning ‘it looks for’, ‘it browses’, ‘it examines’. [5]

L'evoluzione di Icinga ha mantenuto la compatibilità con Nagios pur ampliandone funzionalità ed interfaccia. Con Nagios condivide diversi aspetti, i plugins e altro ancora.

Icinga, attualmente, è disponibile la versione 2.3.0 (Icinga2).

Icinga monitorizza i processi, lo stato di dischi, CPU, rete, e ogni parametro che il dispositivo monitorato può rendere disponibile. Può inviare notifiche a allarmi.

La interfaccia classica (Icinga classic UI), integrata nel nucleo (core) di Icinga, è molto simile a quella di Nagios alla quale sono state aggiunte alcune funzionalità.

Icinga Web è una interfaccia ispirata da web 2.0 e che consente un utilizzo più immediato, come ad esempio funzioni drag & drop. Icinga web è un pacchetto software a se stante che comunica con il core di Icinga. Dal 2014 è disponibile la versione Icinga Web 2.

Lo stato, la configurazione e altre informazioni di Icinga sono resi disponibili al mondo esterno, attraverso il modulo DB IDO (Database Icinga Data Output), su un qualunque database supportato da Icinga (MySQL e MariaDB, PostgreSQL, Oracle).

Icinga reporting è un modulo, basato  su Jasper Report, per realizzare report.

Icinga Mobile

E' disponibile anche il modulo Icinga Mobile l'interfaccia per smart phone e tablet.

 

  • Aggiungi un commento [6]
Categoria: 
monitor [7]
Icinga [8]
nagios [9]
Tipologia: 
applicativi [10]

Installazione Icinga2

La documentazione di Icinga [11] è buona, anche se alcune modifiche vanno fatte in funzione dell'ambiente di installazione.
L'esempio riportato è per openSuse 13.2

Nella distribuzione di openSuse è disponibile il pacchetto Icinga, la versione 1, ma in questo articolo verrà preso in considerazione Icinga2 partendo dai repository del codice eseguibile.

Il  repository, che deve essere abilitato, è il seguente:

http://packages.icinga.org/openSUSE/ICINGA-release.repo [12]

zypper ar http://packages.icinga.org/openSUSE/ICINGA-release.repo
zypper ref

E installiamo Icinga 2

zypper install icinga2

L'installazione da alcuni errori sulla verifica delle firme del codice messaggi, ignorati in questa installazione di test:

icinga2-common-2.3.5-1.x86_64(ICINGA (stable release for openSUSE1)): 
Signature verification failed [4-Signatures public key is not available]
Abort, retry, ignore? [a/r/i] (a):i

Completata l'operazione si pososno verificare le funzionalità installate ed abilitate

icinga2 feature list
Disabled features: api compatlog debuglog gelf graphite 
icingastatus livestatus opentsdb perfdata statusdata syslog
Enabled features: checker command ido-mysql mainlog notification

Non resta che abilitare anche il servizio e attivarlo:

systemctl enable icinga2
systemctl start icinga2 o rcicinga2 start

 

 

 

  • Aggiungi un commento [13]
Categoria: 
monitor [7]
Icinga [8]
Tipologia: 
applicativi [10]

Icinga: alcune cose utili

Per l'editing e il controllo dela sintassi dei file di configurazione sono disponibili le definizioni per vim e nano, cosa che semplifica la modifica dei file di configurazione. Le definizioni sono in: /usr/share/doc/packages/icinga2-common/syntax

L'attivazione per vim è la seguente (sono i comandi da eseguire):

PREFIX=~/.vim
mkdir -p $PREFIX/{syntax,ftdetect}
cp /usr/share/doc/packages/icinga2-common/syntax/vim/syntax/icinga2.vim \
$PREFIX/syntax/
cp /usr/share/doc/packages/icinga2-common/syntax/vim/ftdetect/icinga2.vim \
$PREFIX/ftdetect/

 

Fra i vari frontend [14]disponibili si installa Icinga Web 2 e  serve il motore http (apache) e un database. Per quest'ultimo ho deciso di utilizzare MariaDB che è un fork di MySQL e con questo compatibile.

Installazione di Apache2, PHP5, MariaDB e phpMyAdmin (giusto per curiosare nelle tabelle).

zypper in apache2
zypper in php5 php5-mysql apache2-mod_php5
zypper in phpMyAdmin
chkconfig apache2 on
rcapache2 start


Ora il database: installazione, abilitazione, avvio e password di amministrazione del db (che in questa installazione di prova è banalmente root).

zypper in mariadb mariadb-tools mariadb-client
systemctl start mysql.service
systemctl enable mysql.service
mysqladmin -u root password root

 

  • Aggiungi un commento [15]
Categoria: 
monitor [7]
Icinga [8]
Tipologia: 
applicativi [10]

Icinga: DB IDO (Database Icinga Data Output)

Il core di Icinga, per comunicare con il mondo esterno, per esportarne configurazione e stato, fa uso di un DB (MySQL o PostgreSQL).

DB IDO (Database Icinga Data Output) si occupa dell'integrazione con il database ed è un prerequisito per l'interfaccia web (e non solo).

Occorre installare il programma, creare il database, fornire i permessi all'utente utilizzato da icinga (banalmente icinga) e fornire la struttura del db:

zypper install icinga2-ido-mysql

dalla shell del DB si crea il DB icinga, l'utente icinga (TO 'icinga'@'localhost') con password icinga (IDENTIFYED BY 'icinga' ) ovviamente la password, in un ambiente di produzione, deve essere cambiata con una più sicura.

mysql -u root -p
CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, 
   INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' 
   IDENTIFIED BY 'icinga';
exit

Si crea la struttura delle tabelle

mysql -u root -p icinga \ 
    < /usr/share/icinga2-ido-mysql/schema/mysql.sql


Occorre poi modificare il file /etc/icinga2/features-available/ido-mysql.conf per inserire le corrette credenziali di accesso al db. In questo caso, si sono utilizzati di valori di default, basta togliere i commenti alle righe che seguono

library "db_ido_mysql"

object IdoMysqlConnection "ido-mysql" {
  user = "icinga"
  password = "icinga"
  host = "localhost"
  database = "icinga"
}

Non resta che abilitare le funzionalità richieste dal modulo e riavviare Icinga.

icinga2 feature enable ido-mysql
icinga2 feature enable command

systemctl restart icinga2

 

 

  • Aggiungi un commento [16]
Categoria: 
monitor [7]
Icinga [8]
Tipologia: 
applicativi [10]

Icinga Web 2

 L'interfaccia Web 2 di Icinga richiede l'utente wwwrun faccia parte del gruppo icingacmd

usermod -a -G icingacmd wwwrun

Per la verifica:

id wwwrun

La relativa documentazione è disponibilequi: https://github.com/Icinga/icingaweb2/blob/master/doc/installation.md [17]

Il repository di Icinga Web 2 rimane lo stessi di Icinga 2:

http://packages.icinga.org/openSUSE/ICINGA-release.repo [12]

Quindi non resta che installare e riavvire apache

zypper install icingaweb2 icingacli
rcapache2 restart

 

La documentazione indica anche il comando

groupadd -r icingaweb2

gruppo che risulta già presente.

ed  accedere all'interfaccia web:
http://icinga_ip/icingaweb2

Ecco il risultato:

Icinga Web 2 [18]

 

Sono necessari alcuni moduli apache come rewrite o env. Nel caso di errori usare il comando a2enmod per aggiungere i moduli dichiesti e riavviare apache. Es:

a2enmod rewrite
rcapache2 restart

 

  • Aggiungi un commento [19]
Categoria: 
monitor [7]
Icinga [8]
Tipologia: 
applicativi [10]

Icinga: configurazione Web 2

Setup Token [20]Al primo avvio Icinga Web2 propone una procedura di setup che verifica la presenza dei moduli apache necessari, guida nella configurazione di alcune tabelle del database e consente l'mpostazione di alcuni dati come l'utenza di amministrazione.

Per accedere alla configurazione è richiesto un token generato con

icingacli setup token create


Moduli php necessari sono  php-ldap, php-imagick e php5-zendFramework-db-adapter-pdo-mysql.

Quest'ultimi disponibili nel repository di Suse di estensione php.

zypper in php-ldap
zypper addrepo http://download.opensuse.org/repositories/
        server:php:extensions/server_php_openSUSE_Factory/
        server:php:extensions.repo
zypper ref

zypper install php5-imagick
zypper in php5-zendFramework-db-adapter-pdo-mysql
rcapach2 restart	

Installati i moduli php occorre riavviare apache e fare il refresh della pagina web.

Scelta db di autenticazione [21]Le pagine successive consentono la scelta della modalità di autenticazione (database, ldap o autenticazione esterna). Per questa installazione è database.

 

Preferenze utenti [22]Dove salvare le preferenze degli utenti. Le opzioni sono in un file di testo (.ini), nel database o nessun salvataggio. In questa installazione si sceglie database.
 

 

Db preferenze utenti [23]Se si sceglie database vengono chiesti i dati per la creazione del database: nome del datbase e dati per accedervi.
Scegliere un nome per il db e l'utenza MySQL
 

 

Nome backend [24]

Segue il nome del backend, il default va bene

 

 

Amministratore Web 2 [25]

Il nome e la password di autenticazione a Web 2.

 

 

Web 2 logging [26]

Il meccanimso di logging: syslog, file di testo o nessuno e il livello dei messaggi di log: errori, avvisi debug


 

Database administrator [27]

 

L'utenza con i permessi di amministrazione del DB MySQL, servirà per creare il database e le tabelle necessarie a Web 2.


A completamento di questa fase viene presentata una pagina riassuntiva. Siamo quasi alla fine dell'opera.

Backend [28]Ora vengono richiesti i dati necessari per il backend di monitoraggio. La risorsa è quella creata nella installazione di DB IDO.

 

DB IDO [29]Vanno quindi inseriti i dati impostati nella nella installazione di DB IDO [30]


 

Istanza monitoraggio [31]L'istanza di monitoraggio fornisce indicazioni ai processi Web 2 su come scambiare dati con Icinga 2. Il file dei comandi altro non è che una named pipe usata per questa comunicazione.

 

Siamo alla fine, viene presentata una pagina riassuntiva, seguita da una pagina che fornisce indicazione sul successo del setup.

  • Aggiungi un commento [32]
Categoria: 
monitor [7]
Icinga [8]
Tipologia: 
applicativi [10]

Icinga plugin

I plugin forniscono l'interfaccia fra la risorsa da monitorare e il software di monitoraggio. Alla prima installazione di Icinga e Web 2 viene monitorato di default il server Icinga stesso (localhost). Se i plugins non sono installati, l'interfaccia Web 2 presenterà una serie di errori e nessun risultato di monitoraggio.

Concettualmente, i plugins, hanno la stessa funzione dei plugin di Nagios anche se il loro interfacciamento verso il core di di Icinga ha subito modifiche e miglioramenti.

Nonostante questo Icinga è pienamente compatibile con i pligin di Nagios che possono essere installati senza problemi su Icinga.

Per questa installazione, però, ho preferito utilizzare i plugins fornito da https://www.monitoring-plugins.org/download/monitoring-plugins-2.1.1.tar.gz [33]

Alcuni dettagli per la installazione sono disponibili qui: http://docs.icinga.org/latest/en/plugins.html [34] e qui: https://wiki.icinga.org/display/howtos/Nagios+Plugins [35]

Il file scaricato va espanso. La procedura di installazione è descritta nel file INSTALL presente nella cartella espansa. Anche il file README fornisce utili informazioni.

I plugins, scritti in C, vanno compilati (occorre quindi avere installato gcc). I passaggi sono relativamente semplici: si lancia la procedura di configure con gli opportuni parametri, il make, per la compialzione dei plugin e make install per la loro installazione.

Da una cartella temporanea:

wget https://www.monitoring-plugins.org/download/
           monitoring-plugins-2.1.1.tar.gz
tar -xvzf monitoring-plugins-2.1.1.tar.gz
cd monitoring-plugins-2.1.1
./configure --prefix=/usr/local/icinga \
           --with-nagios-user=icinga --with-nagios-group=icinga

make
make install


I plugins sono installati in /usr/local/icinga/lib.

Di default Icinga cerca i plugin in /usr/lib/nagios/plugins/

L'azione più semplice, per superare il problema, è un link simbolico:

ln -s /usr/local/icinga/lib/ /usr/lib/nagios/plugins


Installati correttamente i plugins, l'interfaccia Icinga comincerà a fornire risultati.

 

Categoria: 
monitor [7]
Icinga [8]
Tipologia: 
applicativi [10]

Icinga: problemi

Durante le varie procedure si possono incontrare problemi, di seguito ne elenco alcuni.

Dopo il setup di configurazione di Web 2, se si desidera riavviare il setup (per erroi o per altro), questo va riattivato. Lo si può fare dalla interfaccia Web 2, usando  il menu di configurazione dei moduli, riattivando il setup Si riavvia la procedura con l'URL http://icinga_ip/icingaweb2/setup.

Verrà richiesto un nuovo token generabile con il comando

icingacli setup token create

 

All'avvio Icinga monitorizza il server sul quale è installato. Nella installazione di openSuse si presenta un allarme del tipo /run/usr/483/gvfs is not accessible e un avviso di non raggiungibilità della risorsa http

gvfs [36]è un file system virtuale per la gestione di Gnome desktop, di cui poco ci importa ed occorre escluderlo dal controllo di Icinga.
La directory /etc/icinga2/conf.d contiene i file di configurazione delle varie risorse controllate e del localhost.

Il file di configurazione è hosts.conf.

Alla sezione  vars.disks["disk"]
occorre aggiungere un parametro per l'esclusione del contollo del file system di tipo gvfs. Il nome esatto si può ricavare dal comando mount

/* Define disks and attributes for service apply 
   rules in `services.conf`. */
vars.disks["disk"] = {
/* Escludi il gvfs */
   disk_exclude_type = "fuse.gvfsd-fuse"
  }
vars.disks["disk /"] = {
  disk_partitions = "/"
  }	 

Oppure, in modo più generico per tutti dischi di tutti gli host, modificando il file:
/usr/share/icinga2/include/command-plugins.conf
aggiungendo gvfs alla riga:

vars.disk_exclude_type = ["none", "tmpfs", "sysfs", "proc", 
                          "devtmpfs", "devfs", "mtmfs", "gvfs"]

Vedi anche:
icinga2 object list --name disk
e
icinga2 daemon -C

Una descrizione più dettagliata dei meccanismi è disponibile qui [37].

La risorsa http, su localhost, esiste, ma non è stata configurata nessuna pagina web un http://localhost [38], mentre esiste, ovviamente http://localhost/icingaweb2 [39]

Per sistemare le cose ed eliminare l'avviso si agisce sempre su hosts.conf modificando le righe come segue (e come indicato nel commento).

/* Define http vhost attributes for service apply rules in 
/* `services.conf`. */
//vars.http_vhosts["http"] = {
//  http_uri = "/"
//}
/* Uncomment if you've sucessfully installed Icinga Web 2. */
vars.http_vhosts["Icinga Web 2"] = {
  http_uri = "/icingaweb2"
 }

 

 

 

  • Aggiungi un commento [40]
Categoria: 
monitor [7]
Icinga [8]
Tipologia: 
applicativi [10]

RFc -Restori Fabrizio Consulenze-  S.da Buffolara, 67 -43126 Parma- Tel. +39 335 240228 Fax +39 0521 940035   P.IVA 01788460341

webmaster: Fabrizio
Note

var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-37939674-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
var _paq = _paq || []; _paq.push(["trackPageView"]); _paq.push(["enableLinkTracking"]); (function() { var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.rfc.it/piwik/"; _paq.push(["setTrackerUrl", u+"piwik.php"]); _paq.push(["setSiteId", "1"]); var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript"; g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s); })();

URL di origine:https://www.rfc.it/applicativi/icinga

Links
[1] https://www.icinga.org/ [2] https://www.rfc.it/oss [3] https://it.wikipedia.org/wiki/Fork_%28sviluppo_software%29 [4] https://www.rfc.it/nagios/installare-nagios [5] https://www.icinga.org/resources/faq/ [6] https://www.rfc.it/comment/reply/477#comment-form [7] https://www.rfc.it/category/categoria/monitor [8] https://www.rfc.it/category/categoria/icinga [9] https://www.rfc.it/category/categoria/nagios [10] https://www.rfc.it/category/tipologia/applicativi [11] http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/getting-started#installing-icinga2 [12] http://packages.icinga.org/openSUSE/ICINGA-release.repo [13] https://www.rfc.it/comment/reply/478#comment-form [14] http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/alternative-frontends#alternative-frontends [15] https://www.rfc.it/comment/reply/479#comment-form [16] https://www.rfc.it/comment/reply/481#comment-form [17] https://github.com/Icinga/icingaweb2/blob/master/doc/installation.md [18] https://www.rfc.it/sites/default/files/u1/icingaweb2.jpg [19] https://www.rfc.it/comment/reply/482#comment-form [20] https://www.rfc.it/sites/default/files/u1/icinga%20setup%20token.jpg [21] https://www.rfc.it/sites/default/files/u1/icinga%20scelta%20db.jpg [22] https://www.rfc.it/sites/default/files/u1/icinga%20preferenze%20utenti.jpg [23] https://www.rfc.it/sites/default/files/u1/icinga_db_preferenze.jpg [24] https://www.rfc.it/sites/default/files/u1/Icinga_nome_backend.png [25] https://www.rfc.it/sites/default/files/u1/icinga_amministratore.jpg [26] https://www.rfc.it/sites/default/files/u1/Icinga_log.jpg [27] https://www.rfc.it/sites/default/files/u1/Icinga_db_admin.jpg [28] https://www.rfc.it/sites/default/files/u1/Icinga%20backend.jpg [29] https://www.rfc.it/sites/default/files/u1/Icinga_IDO.jpg [30] https://www.rfc.it/applicativi/icinga-db-ido-database-icinga-data-output [31] https://www.rfc.it/sites/default/files/u1/Icinga_istanza_monitoraggio.jpg [32] https://www.rfc.it/comment/reply/483#comment-form [33] https://www.monitoring-plugins.org/download/monitoring-plugins-2.1.1.tar.gz [34] http://docs.icinga.org/latest/en/plugins.html [35] https://wiki.icinga.org/display/howtos/Nagios+Plugins [36] https://en.wikipedia.org/wiki/GVFS [37] http://monitoring-portal.org/wbb/index.php?page=Thread&amp;postID=218503#post218503 [38] http://localhost [39] http://localhost/icingaweb2 [40] https://www.rfc.it/comment/reply/484#comment-form