Nagios - Guida rapida
Il ciclo di vita DevOps è un ciclo continuo di diverse fasi, il monitoraggio continuo è l'ultima fase di questo ciclo. Il monitoraggio continuo è una delle fasi di questo ciclo di vita. In questo capitolo, impariamo in dettaglio cosa sia il monitoraggio continuo e come Nagios sia utile per questo scopo.
Cos'è il monitoraggio continuo
Il monitoraggio continuo inizia quando la distribuzione viene eseguita sui server di produzione. Da quel momento in poi, questa fase è responsabile del monitoraggio di tutto ciò che accade. Questa fase è molto cruciale per la produttività aziendale.
Ci sono diversi vantaggi nell'utilizzo del monitoraggio continuo:
- Rileva tutti i problemi del server e della rete.
- Trova la causa principale dell'errore.
- Aiuta a ridurre i costi di manutenzione.
- Aiuta nella risoluzione dei problemi di prestazioni.
- Aiuta ad aggiornare l'infrastruttura prima che diventi obsoleta.
- Può risolvere i problemi automaticamente quando viene rilevato.
- Si assicura che i server, i servizi, le applicazioni e la rete siano sempre attivi e funzionanti.
- Monitora l'intera infrastruttura ogni secondo.
Cos'è Nagios
Nagios è uno strumento di monitoraggio continuo open source che monitora rete, applicazioni e server. Può trovare e riparare i problemi rilevati nell'infrastruttura e bloccare i problemi futuri prima che influenzino gli utenti finali. Fornisce lo stato completo della tua infrastruttura IT e delle sue prestazioni.
Perché Nagios
Nagios offre le seguenti funzionalità che lo rendono utilizzabile da un ampio gruppo di comunità di utenti:
- Può monitorare server database come SQL Server, Oracle, Mysql, Postgres
- Fornisce informazioni a livello di applicazione (Apache, Postfix, LDAP, Citrix ecc.).
- Fornisce uno sviluppo attivo.
- Ha un eccellente supporto da un'enorme comunità attiva.
- Nagios funziona su qualsiasi sistema operativo.
- Può eseguire il ping per vedere se l'host è raggiungibile.
Benefici di Nagios
Nagios offre i seguenti vantaggi per gli utenti:
- Aiuta a sbarazzarsi dei test periodici.
- Rileva guasti in una frazione di secondo quando il cinturino da polso è ancora nella fase "intermittente".
- Riduce i costi di manutenzione senza sacrificare le prestazioni.
- Fornisce tempestiva notifica alla direzione del controllo e del guasto.
Questo capitolo parla in dettaglio dell'architettura di Nagios.
Architettura di Nagios
I seguenti punti sono degni di nota sull'architettura Nagios:
Nagios ha un'architettura server-agent.
Il server Nagios è installato sull'host e i plugin sono installati sugli host / server remoti che devono essere monitorati.
Nagios invia un segnale attraverso uno scheduler di processo per eseguire i plugin sugli host / server locali / remoti.
I plugin raccolgono i dati (utilizzo della CPU, utilizzo della memoria ecc.) E li rimandano allo scheduler.
Quindi le pianificazioni del processo inviano le notifiche agli amministratori e aggiorna la GUI di Nagios.
La figura seguente mostra l'architettura dell'agente server Nagios in dettaglio:
Nagios contiene vari prodotti come discusso in dettaglio di seguito:
Nagios XI
Fornisce il monitoraggio di componenti dell'infrastruttura IT completa come applicazioni, servizi, rete, sistemi operativi, ecc. Offre una visione completa dell'infrastruttura e dei processi aziendali. La GUI è facilmente personalizzabile dando la flessibilità utilizzata. L'edizione standard di questo strumento costa $ 1995 e l'edizione Enterprise costa $ 3495.
Nagios Core
È il fulcro del monitoraggio dell'infrastruttura IT. Anche il prodotto Nagios XI è fondamentalmente basato sul core Nagios. Ogni volta che si verifica un problema di guasto nell'infrastruttura, invia un avviso / notifica all'amministratore che può intraprendere l'azione rapidamente per risolvere il problema. Questo strumento è assolutamente gratuito.
Nagios Log Server
Rende la ricerca dei dati di registro molto semplice e facile. Mantiene tutti i dati di registro in un'unica posizione con configurazione ad alta disponibilità. Può inviare facilmente avvisi se viene rilevato un problema nei dati di registro. Può scalare fino a migliaia di server offrendo più potenza, velocità, archiviazione e affidabilità alla piattaforma di analisi dei log. Il prezzo di questo strumento dipende dal numero di istanze: 1 istanza $ 3995, 2 istanze $ 4995, 3 istanze $ 5995, 4 istanze $ 6995, 10 istanze $ 14995.
Nagios Fusion
Questo prodotto fornisce una vista centralizzata del sistema di monitoraggio completo. Con Nagios Fusion, puoi eseguire la scansione di server di monitoraggio separati per aree geografiche separate. Può essere facilmente integrato con Nagios XI e Nagios core per dare la completa visibilità dell'infrastruttura. Questo strumento costa $ 2495.
Nagios Network Analyzer
Fornisce le informazioni complete dell'infrastruttura di rete all'amministratore con le potenziali minacce sulla rete in modo che l'amministratore possa intraprendere azioni rapide. Condivide dati molto dettagliati sulla rete dopo un'analisi approfondita della rete. Questo strumento costa $ 1995.
In questo capitolo, i passaggi per configurare Nagios su Ubuntu sono discussi in dettaglio.
Prima di installare Nagios, è necessario che sul tuo sistema Ubuntu siano presenti alcuni pacchetti come Apache, PHP, pacchetti di compilazione ecc. Quindi, installiamoli prima.
Step 1 - Esegui il seguente comando per installare i pacchetti pre-richiesti -
sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd
libgd-dev sendmail unzip
Step 2 - Successivamente, crea utente e gruppo per Nagios e aggiungili a Apache www-data user.
sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagios,nagcmd www-data
Step 3 - Scarica l'ultimo pacchetto Nagios.
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-
4.4.3.tar.gz
Step 4 - Estrai il file tarball.
tar -xzf nagios-4.4.3.tar.gz
cd nagios-4.4.3/
Step 5 - Esegui il seguente comando per compilare Nagios dall'origine.
./configure --with-nagios-group=nagios --with-command-group=nagcmd
Step 6 - Esegui il seguente comando per creare file Nagios.
make all
Step 7 - Esegui il comando mostrato di seguito per installare tutti i file Nagios.
sudo make install
Step 8 - Eseguire i seguenti comandi per installare init e file di configurazione dei comandi esterni.
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sitesavailable/
nagios.conf
Step 9 - Ora copia la directory del gestore eventi nella directory Nagios.
sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
Step 10 - Scarica ed estrai i plugin Nagios.
cd
wget https://nagios-plugins.org/download/nagiosplugins-
2.2.1.tar.gz
tar -xzf nagios-plugins*.tar.gz
cd nagios-plugins-2.2.1/
Step 11 - Installa i plugin Nagios usando il comando seguente.
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
make
sudo make install
Step 12 - Ora modifica il file di configurazione di Nagios e rimuovi il commento dalla riga 51 → cfg_dir = / usr / local / nagios / etc / servers
sudo gedit /usr/local/nagios/etc/nagios.cfg
Step 13 - Ora, crea una directory del server.
sudo mkdir -p /usr/local/nagios/etc/servers
Step 14 - Modifica il file di configurazione dei contatti.
sudo gedit /usr/local/nagios/etc/objects/contacts.cfg
Step 15 - Ora abilita i moduli Apache e configura un utente nagiosadmin.
sudo a2enmod rewrite
sudo a2enmod cgi
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/
Step 16 - Ora riavvia Apache e Nagios.
service apache2 restart
service nagios start
cd /etc/init.d/
sudo cp /etc/init.d/skeleton /etc/init.d/Nagios
Step 17 - Modifica il file Nagios.
sudo gedit /etc/init.d/Nagios
DESC = "Nagios"
NAME = nagios
DAEMON = /usr/local/nagios/bin/$NAME
DAEMON_ARGS = "-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE = /usr/local/nagios/var/$NAME.lock
Step 18 - Rendi eseguibile il file Nagios e avvia Nagios.
sudo chmod +x /etc/init.d/nagios
service apache2 restart
service nagios start
Step 19 - Ora vai nel tuo browser e apri l'URL → http://localhost/nagios. Ora accedi a Nagios con il nome utente nagiosadmin e usa la password che avevi impostato in precedenza. La schermata di accesso di Nagios è come mostrato nella schermata riportata di seguito:
Se hai seguito correttamente tutti i passaggi, verrà visualizzata l'interfaccia web di Nagios. Puoi trovare la dashboard di Nagios come mostrato di seguito -
Nel capitolo precedente abbiamo visto l'installazione di Nagios. In questo capitolo, vediamo in dettaglio la sua configurazione.
I file di configurazione di Nagios si trovano in / usr / local / nagios / ecc. Questi file sono mostrati nella schermata riportata di seguito -
Cerchiamo di capire l'importanza di ogni file ora -
nagios.cfg
Questo è il file di configurazione principale del core Nagios. Questo file contiene la posizione del file di registro di Nagios, l'intervallo di aggiornamento dello stato degli host e dei servizi, il file di blocco e il file status.dat. Gli utenti ei gruppi Nagios su cui sono in esecuzione le istanze sono definiti in questo file. Ha il percorso di tutti i singoli file di configurazione degli oggetti come comandi, contatti, modelli ecc.
cgi.cfg
Per impostazione predefinita, il file di configurazione CGI di Nagios è denominato cgi.cfg. Indica ai CGI dove trovare il file di configurazione principale. I CGI leggeranno i file di configurazione principale e host per qualsiasi altro dato di cui potrebbero aver bisogno. Contiene tutte le informazioni su utenti e gruppi e relativi diritti e autorizzazioni. Ha anche il percorso per tutti i file frontend di Nagios.
resource.cfg
È possibile definire le macro $ USERx $ in questo file, che a loro volta possono essere utilizzate nelle definizioni dei comandi nei file di configurazione dell'host. Le macro $ USERx $ sono utili per memorizzare informazioni sensibili come nomi utente, password, ecc.
Sono anche utili per specificare il percorso dei plug-in e dei gestori di eventi: se in futuro decidi di spostare i plug-in o i gestori di eventi in una directory diversa, puoi semplicemente aggiornare una o due macro $ USERx $, invece di modificare molte definizioni dei comandi. I file di risorse possono essere utilizzati anche per memorizzare le direttive di configurazione per origini dati esterne come MySQL.
I file di configurazione all'interno della directory degli oggetti sono usati per definire comandi, contatti, host, servizi ecc.
command.cfg
Questo file di configurazione fornisce alcune definizioni di comandi di esempio a cui è possibile fare riferimento nelle definizioni di host, servizio e contatto. Questi comandi vengono utilizzati per controllare e monitorare host e servizi. Puoi eseguire questi comandi localmente su una console Linux dove otterrai anche l'output del comando che esegui.
Esempio
define command {
command_name check_local_disk
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}
define command {
command_name check_local_load
command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}
define command {
command_name check_local_procs
command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}
contact.cfg
Questo file contiene informazioni sui contatti e sui gruppi di Nagios. Per impostazione predefinita, è già presente un contatto amministratore Nagios.
Esempio
define contact {
contact_name nagiosadmin
use generic-contact
alias Nagios Admin
email [email protected]
}
define contactgroup {
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin
}
templates.cfg
Questo file di configurazione fornisce alcuni modelli di definizione di oggetti di esempio a cui fanno riferimento altre definizioni di host, servizio, contatto, ecc. In altri file di configurazione.
timeperiods.cfg
Questo file di configurazione fornisce alcune definizioni di periodo di tempo di esempio a cui è possibile fare riferimento nelle definizioni di host, servizio, contatto e dipendenza.
Nagios è lo strumento di monitoraggio con una moltitudine di funzionalità come indicato di seguito:
Nagios Core è open source, quindi gratuito.
Potente motore di monitoraggio in grado di scalare e gestire migliaia di host e server.
Dashboard Web completo che offre visibilità di componenti di rete completi e dati di monitoraggio.
Ha funzionalità multi-tenant in cui più utenti hanno accesso al dashboard di Nagios.
Ha un'architettura estendibile che può essere facilmente integrata con applicazioni di terze parti con più API.
Nagios ha una community molto attiva e numerosa con oltre 1 milione di utenti in tutto il mondo.
Sistema di avviso rapido, invia avvisi agli amministratori immediatamente dopo l'identificazione di qualsiasi problema.
Plugin multipli disponibili per supportare Nagios, plugin con codice personalizzato possono essere utilizzati anche con Nagios.
Ha un buon registro e un sistema di database che memorizza facilmente tutto ciò che accade sulla rete.
La funzionalità di pianificazione proattiva aiuta a sapere quando è il momento di aggiornare l'infrastruttura.
Nagios può essere applicabile a un'ampia gamma di applicazioni. Sono dati qui -
Monitorare le risorse host come lo spazio su disco, i registri di sistema, ecc.
Monitora le risorse di rete: http, ftp, smtp, ssh ecc.
Monitorare continuamente i file di registro per identificare problemi di infra.
Monitorare windows / linux / unix / applicazioni web e il suo stato.
Nagios Remote Plugin Executer (NRPE) può monitorare i servizi da remoto.
Eseguire i controlli del servizio in parallelo.
I tunnel SSH o SSL possono essere utilizzati anche per il monitoraggio remoto.
Invia avvisi / notifiche
via email, sms, cercapersone di qualsiasi problema sull'infrastruttura
Suggerire quando aggiornare l'infrastruttura IT.
Nagios è lo strumento più popolare utilizzato per monitorare host e servizi in esecuzione nella tua infrastruttura IT. Gli host e le configurazioni dei servizi sono gli elementi costitutivi di Nagios Core.
Host è proprio come un computer; può essere un dispositivo fisico o virtuale.
I servizi sono quelli utilizzati da Nagios per controllare qualcosa su un host.
Puoi creare un file host all'interno della directory del server di Nagios e menzionare le definizioni di host e servizio. Ad esempio:
sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# File di configurazione dell'host Ubuntu
define host {
use linux-server
host_name ubuntu_host
alias Ubuntu Host
address 192.168.1.10
register 1
}
define service {
host_name ubuntu_host
service_description PING
check_command check_ping!100.0,20%!500.0,60%
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
Le definizioni sopra aggiungono un host chiamato ubuntu_host e definiscono i servizi che verranno eseguiti su questo host. Quando riavvii Nagios, questo host inizierà a essere monitorato da Nagios e verranno eseguiti i servizi specificati.
Ci sono molti altri servizi in Nagios che possono essere usati per monitorare praticamente qualsiasi cosa sull'host in esecuzione.
Una definizione di comando definisce un comando. I comandi includono controlli di servizio, notifiche di servizio, gestori di eventi di servizio, controlli di host, notifiche di host e gestori di eventi di host. Le definizioni dei comandi per Nagios sono definite nel file commands.cfg.
Quello che segue è il formato per la definizione di un comando:
define command {
command_name command_name
command_line command_line
}
Command name- Questa direttiva viene utilizzata per identificare il comando. Le definizioni di contatto, host e servizio sono referenziate dal nome del comando.
Command line - Questa direttiva viene utilizzata per definire cosa viene eseguito da Nagios quando il comando viene utilizzato per i controlli del servizio o dell'host, le notifiche o i gestori di eventi.
Esempio
define command{
command_name check_ssh
command_line /usr/lib/nagios/plugins/check_ssh ‘$HOSTADDRESS$’
}
Questo comando eseguirà il plugin - / usr / libl / nagios / plugins / check_ssh con 1 parametro: '$ HOSTADDRESS $'
Una definizione host molto breve che utilizzerebbe questo comando di controllo potrebbe essere simile a quella mostrata qui -
define host{
host_name host_tutorial
address 10.0.0.1
check_command check_ssh
}
Le definizioni dei comandi indicano come eseguire i controlli host / servizio. Definiscono inoltre come generare notifiche se viene identificato un problema e come gestire qualsiasi evento. Esistono diversi comandi per eseguire i controlli, come comandi per verificare se SSH funziona correttamente o meno, comando per verificare che il database sia attivo e in esecuzione, comando per verificare se un host è vivo o meno e molti altri.
Ci sono comandi che dicono agli utenti quali problemi sono presenti nell'infrastruttura. Puoi creare i tuoi comandi personalizzati o utilizzare qualsiasi comando di terze parti in Nagios, e sono trattati in modo simile al progetto dei plugin Nagios, non c'è distinzione tra loro.
Puoi anche passare argomenti nel comando, questo offre maggiore flessibilità nell'esecuzione dei controlli. Ecco come è necessario definire un comando con parametro -
define command {
command_name check-host-alive-limits
command_line $USER5$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}
La definizione dell'host per il comando precedente -
define host {
host_name system2
address 10.0.15.1
check_command check-host-alive-limits!1000.0,70%!5000.0,100%
}
Puoi eseguire comandi esterni in Nagios aggiungendoli al file dei comandi che viene elaborato periodicamente dal demone Nagios.
Con i comandi esterni puoi ottenere molti controlli mentre Nagios è in esecuzione. Puoi disabilitare temporaneamente alcuni controlli o forzarne l'esecuzione immediata, disabilitare temporaneamente le notifiche ecc. Di seguito è riportata la sintassi dei comandi esterni in Nagios che devono essere scritti nel file di comando:
[time] command_id;command_arguments
Puoi anche controllare l'elenco di tutti i comandi esterni che possono essere usati in Nagios qui -https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/
Una volta che l'host ei servizi sono configurati su Nagios, vengono utilizzati dei controlli per vedere se gli host ei servizi funzionano come dovrebbero o meno. Vediamo un esempio per eseguire controlli sull'host -
Considera di aver inserito le tue definizioni host nel file host1.cfg nella directory / usr / local / nagios / etc / objects.
cd /usr/local/nagios/etc/objects
gedit host1.cfg
Ecco come appaiono attualmente le definizioni degli host:
define host {
host_name host1
address 10.0.0.1
}
Ora aggiungiamo la direttiva check_interval. Questa direttiva viene utilizzata per eseguire controlli pianificati degli host per il numero impostato; per impostazione predefinita è in minuti. Utilizzando la definizione seguente, i controlli sull'host verranno eseguiti ogni 3 minuti.
define host {
host_name host1
address 10.0.0.1
check_interval 3
}
In Nagios, vengono eseguiti 2 tipi di controlli su host e servizi:
- Controlli attivi
- Controlli passivi
Controlli attivi
I controlli attivi vengono avviati dal processo Nagios e quindi eseguiti su base regolare pianificata. La logica di controllo all'interno del processo Nagios avvia il controllo attivo. Per monitorare host e servizi in esecuzione su macchine remote, Nagios esegue plugin e dice quali informazioni raccogliere. Il plug-in viene quindi eseguito sulla macchina remota dove raccoglie le informazioni richieste e le rinvia al demone Nagios. A seconda dello stato ricevuto su host e servizi, viene intrapresa l'azione appropriata.
La figura sotto mostra un controllo attivo -
Questi vengono eseguiti a intervalli regolari, come definito da check_interval e retry_interval.
I controlli passivi vengono eseguiti da processi esterni ei risultati vengono restituiti a Nagios per l'elaborazione.
I controlli passivi funzionano come spiegato qui:
Un'applicazione esterna controlla lo stato su host / servizi e scrive il risultato nel file di comando esterno. Quando il daemon Nagios legge il file di comando esterno, legge e invia tutti i controlli passivi nella coda per elaborarli in seguito. Periodicamente, quando questi controlli vengono elaborati, vengono inviate notifiche o avvisi a seconda delle informazioni nel risultato del controllo.
La figura sotto mostra un controllo passivo -
Pertanto, la differenza tra il controllo attivo e quello passivo è che i controlli attivi vengono eseguiti da Nagios e i controlli passivi vengono eseguiti da applicazioni esterne.
Questi controlli sono utili quando non è possibile monitorare host / servizi su base regolare.
Nagios memorizza lo stato degli host e dei servizi che sta monitorando per determinare se funzionano correttamente o meno. Ci sarebbero molti casi in cui i guasti si verificheranno casualmente e sono temporanei; quindi Nagios usa gli stati per controllare lo stato corrente di un host o di un servizio.
Esistono due tipi di stati:
- Stato morbido
- Stato duro
Stato morbido
Quando un host o un servizio è inattivo per un periodo di tempo molto breve e il suo stato non è noto o è diverso da quello precedente, vengono utilizzati gli stati soft. L'host oi servizi verranno testati più volte fino a quando lo stato non sarà permanente.
Stato duro
Quando max_check_attempts viene eseguito e lo stato dell'host o del servizio non è ancora OK, viene utilizzato lo stato hard. Nagios esegue gestori di eventi per gestire gli stati hard.
La figura seguente mostra gli stati soft e hard.
Questo capitolo dà un'idea delle porte e dei protocolli che Nagios comprende.
Protocolli
I protocolli predefiniti utilizzati da Nagios sono quelli indicati in -
http (s), porte 80 e 443 - Le interfacce del prodotto sono basate sul web in Nagios. Gli agenti Nagios possono utilizzare http per spostare i dati.
snmp, porte 161 e 162 - snmp è una parte importante del monitoraggio della rete. La porta 161 viene utilizzata per inviare richieste ai nodi e la posta 162 viene utilizzata per ricevere i risultati.
ssh, porta 22: Nagios è progettato per funzionare in modo nativo su CentOS o RHEL Linux. L'amministratore può accedere a Nagios tramite SSH ogni volta che lo desidera ed eseguire i controlli.
Porti
Le porte predefinite utilizzate dai plug-in Nagios comuni sono indicate in -
- Butcheck_nt (nsclient ++) 12489
- NRPE 5666
- NSCA 5667
- NCPA 5693
- MSSQL 1433
- MySQL 3306
- PostgreSQL 5432
- MongoDB 27017, 27018
- OracleDB 1521
- E-mail (SMTP) 25, 465, 587
- WMI 135, 445 / porte assegnate dinamicamente aggiuntive nell'intervallo 1024-1034
I plugin aiutano a monitorare database, sistemi operativi, applicazioni, apparecchiature di rete, protocolli con Nagios. I plugin sono eseguibili compilati o script (Perl o non Perl) che estendono le funzionalità di Nagios per monitorare server e host. Nagios eseguirà un plugin per controllare lo stato di un servizio o di un host. Nagios può essere compilato con il supporto per un interprete Perl incorporato per eseguire plugin Perl. Senza di esso, Nagios esegue plugin Perl e non Perl biforcando ed eseguendo i plugin come un comando esterno.
Tipi di plugin Nagios
Nagios ha i seguenti plugin disponibili al suo interno:
Official Nagios Plugins- Ci sono 50 plugin ufficiali di Nagios. I plugin ufficiali Nagios sono sviluppati e mantenuti dal team ufficiale dei plugin Nagios.
Community Plugins - Esistono oltre 3.000 plugin Nagios di terze parti che sono stati sviluppati da centinaia di membri della comunità Nagios.
Custom Plugins- Puoi anche scrivere i tuoi plugin personalizzati. Ci sono alcune linee guida che devono essere seguite per scrivere plugin personalizzati.
Linee guida per la scrittura di plugin Nagios personalizzati
Durante la scrittura di plugin personalizzati in Nagios, è necessario seguire le linee guida fornite di seguito:
- I plugin dovrebbero fornire un'opzione della riga di comando "-V" (verificare le modifiche alla configurazione)
- Stampa solo una riga di testo
- Stampa la diagnostica e solo una parte del messaggio di aiuto
- I plug-in di rete utilizzano DEFAULT_SOCKET_TIMEOUT per il timeout
- "-v" o "--verbose" è correlato al livello di verbosità
- "-t" o "--timeout" (timeout del plugin);
- "-w" o "--warning" (soglia di avviso);
- "-c" o "--critical" (soglia critica);
- "-H" o "--hostname" (nome dell'host da controllare)
Più plug-in Nagios vengono eseguiti ed eseguono controlli contemporaneamente, affinché tutti funzionino senza problemi insieme, il plug-in Nagios segue un codice di stato. La tabella riportata di seguito indica lo stato del codice di uscita e la sua descrizione:
Codice di uscita | Stato | Descrizione |
---|---|---|
0 | ok | Funziona bene |
1 | AVVERTIMENTO | Funziona bene, ma necessita di attenzione |
2 | CRITICO | Non funziona correttamente |
3 | SCONOSCIUTO | Quando il plug-in non è in grado di determinare lo stato dell'host / servizio |
I plugin Nagios utilizzano opzioni per la loro configurazione. I seguenti sono alcuni parametri importanti accettati dal plugin Nagios:
Suor n | Opzione e descrizione |
---|---|
1 | -h, --help Questo fornisce aiuto |
2 | -V, --version Questo stampa la versione esatta del plugin |
3 | -v, --verbose Questo fa sì che il plugin fornisca informazioni più dettagliate su ciò che sta facendo |
4 | -t, --timeout Questo fornisce il timeout (in secondi); trascorso questo tempo, il plugin riporterà lo stato CRITICO |
5 | -w, --warning Ciò fornisce i limiti specifici del plug-in per lo stato di AVVISO |
6 | -c, --critical Ciò fornisce i limiti specifici del plug-in per lo stato CRITICO |
7 | -H, --hostname Fornisce il nome host, l'indirizzo IP o il socket Unix con cui comunicare |
8 | -4, --use-ipv4 Ciò consente di utilizzare IPv4 per la connettività di rete |
9 | -6, --use-ipv6 Ciò consente di utilizzare IPv6 per la connettività di rete |
10 | -p, --port Viene utilizzato per connettersi alla porta TCP o UDP |
11 | -s, -- send Ciò fornisce la stringa che verrà inviata al server |
12 | -e, --expect Fornisce la stringa che deve essere restituita dal server |
13 | -q, --quit Questo fornisce la stringa da inviare al server per chiudere la connessione |
Il pacchetto del plugin Nagios ha molti controlli disponibili per host e servizi per monitorare l'infrastruttura. Proviamo i plugin Nagios per eseguire alcuni controlli.
SMTP è un protocollo utilizzato per l'invio di e-mail. I plugin standard Nagios hanno comandi per eseguire controlli per SMTP. La definizione del comando per SMTP -
define command {
command_name check_smtp
command_line $USER2$/check_smtp -H $HOSTADDRESS$
}
Usiamo il plugin Nagios per monitorare MySQL. Nagios offre 2 plugin per monitorare MySQL. Il primo plug-in controlla se la connessione mysql funziona o meno e il secondo plug-in viene utilizzato per calcolare il tempo impiegato per eseguire una query SQL.
Le definizioni dei comandi per entrambi sono le seguenti:
define command {
command_name check_mysql
command_line $USER1$/check_mysql –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
$ARG3$ -S –w 10 –c 30
}
define command {
command_name check_mysql_query
command_line $USER1$/check_mysql_query –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
$ARG3$ -q $ARG4$ –w $ARG5$ -c $ARG6$
}
Note - Nome utente, password e nome database sono richiesti come argomenti in entrambi i comandi.
Nagios offre plugin per controllare lo spazio su disco montato su tutte le partizioni. La definizione del comando è la seguente
define command {
command_name check_partition
command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}
La maggior parte dei controlli può essere eseguita tramite plugin Nagios standard. Ma ci sono applicazioni che richiedono controlli speciali per monitorarle, nel qual caso puoi usare plugin Nagios di terze parti che forniranno controlli più sofisticati sull'applicazione. È importante conoscere i problemi di sicurezza e licenza quando si utilizza un plug-in di terze parti da Nagios exchange o si scarica il plug-in da un altro sito Web.
Il demone Nagios che esegue controlli su macchine remote in NRPE (Nagios Remote Plugin Executor). Ti permette di eseguire i plugin Nagios su altre macchine da remoto. È possibile monitorare le metriche della macchina remota come l'utilizzo del disco, il carico della CPU, ecc. Può anche controllare le metriche delle macchine Windows remote tramite alcuni componenti aggiuntivi dell'agente Windows.
Vediamo come installare e configurare NRPE passo dopo passo sulla macchina client che deve essere monitorata.
Step 1 - Esegui il comando seguente per installare NRPE sulla macchina Linux remota da monitorare.
sudo apt-get install nagios-nrpe-server nagios-plugins
Step 2 - Ora, crea un file host all'interno della directory del server e inserisci tutte le definizioni necessarie per l'host.
sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu Host configuration file
define host {
use linux-server
host_name ubuntu_host
alias Ubuntu Host
address 192.168.1.10
register 1
}
define service {
host_name ubuntu_host
service_description PING
check_command check_ping!100.0,20%!500.0,60%
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
define service {
host_name ubuntu_host
service_description Check Users
check_command check_local_users!20!50
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
define service {
host_name ubuntu_host
service_description Local Disk
check_command check_local_disk!20%!10%!/
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
define service {
host_name ubuntu_host
service_description Check SSH
check_command check_ssh
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
define service {
host_name ubuntu_host
service_description Total Process
check_command check_local_procs!250!400!RSZDT
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
Step 3 - Eseguire il comando mostrato di seguito per la verifica del file di configurazione.
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Step 4 - Riavvia NRPE, Apache e Nagios se non ci sono errori.
service nagios-nrpe-server restart
service apache2 restart
service nagios restart
Step 5- Apri il tuo browser e vai all'interfaccia web di Nagios. Puoi vedere che l'host che deve essere monitorato è stato aggiunto al servizio principale di Nagios. Allo stesso modo, puoi aggiungere più host che devono essere monitorati da Nagios.
V-Shell è un'interfaccia web leggera per Nagios Core scritta in PHP. È facile da installare e utilizzare ed è un'alternativa all'output di Nagios. Il frontend di VShell è su AngularJs, quindi il design è reattivo e moderno. Fornisce funzionalità di ricerca rapida e API RESTful con tecnologia CodeIgniter.
Nagios VShell è compatibile con Nagios XI e Nagios Core 3.x. Richiede php 5.3 o superiore, php-cli e apache installati nel sistema. Vediamo come installare Nagios VShell.
Step 1 - Vai alla directory tmp e scarica il file tar vshell.
cd /tmp
wget http://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz
Step 2 - Estrai il file tar.
tar zxf vshell.tar.gz
Step 3- Vai alla directory vshell e dai il permesso all'eseguibile per il file install.php. Infine, esegui lo script di installazione.
cd vshell
chmod +x install.php
./install.php
Step 4 - Adesso vai ahttps://192.168.56.101/vshell nel tuo browser, accedi con nagiosadmin e apparirà il tuo Vshell.
In questo capitolo, esaminiamo i casi di studio di due organizzazioni che hanno implementato con successo Nagios.
Bitnetix con Nagios
Bitnetix in un'organizzazione di consulenza IT che si occupa di networking, data center, monitoraggio e Voice over IP. Attraverso le loro offerte, fanno sembrare grandi le piccole imprese. Le loro soluzioni ti aiutano a gestire le relazioni con i clienti in modo migliore aumentando il coinvolgimento e migliorando la loro soddisfazione. Dicono di essere nel business della comunicazione, quindi comunicare il messaggio giusto ai propri clienti al momento giusto è molto importante per loro.
Bitnetix stava lavorando con un cliente interessato all'email marketing. Erano soliti monitorare i server AWS che erano allocati dinamicamente ed erano responsabili della consegna di migliaia di e-mail ai clienti. Stavano usando Nagios core in precedenza, ma volevano passare al nuovo Nagios XI e integrarsi con lo chef senza tempi di inattività. Ci sono state difficoltà nello spostare la configurazione dello stato live sul core Nagios ai controlli appropriati in Nagios XI. Ma con Nagios, sono stati in grado di impostare il file di configurazione di Nagios XI con chef integrato. Sono stati in grado di spostare tutti i clienti dal nucleo di Nagios a Nagios XI con tempi di inattività pari a zero. Nagios XI è stato anche in grado di integrarsi con PagerDuty per l'invio di notifiche istantanee.
EverWatch.gobal con Nagios
EverWatch.global è un'organizzazione di gestione e consulenza IT che aiuta le organizzazioni non profit e di piccole / medie dimensioni. La sua sede è a Rochester, New York. Hanno vinto numerosi premi per il loro lavoro con Nagios.
EverWatch.global stava lavorando con un cliente al dettaglio di e-commerce con un fatturato annuo di miliardi di dollari. Erano responsabili di mantenere il sito Web sempre attivo e funzionante, monitorare il carrello e le funzionalità di pagamento, inviare notifiche al personale necessario in caso di diffamazione. La sfida era che i server dei loro clienti si trovavano a 500 miglia dalla sede centrale di New York. Per monitorare la produzione, la messa in scena, la garanzia della qualità e lo sviluppo sulla stessa piattaforma, le configurazioni dovevano essere uniche e simili per entrambe le aree.
Con l'aiuto di Nagios, sono stati in grado di creare regole firewall ssh per apparecchiature e Network Operations Center. Sono stati anche in grado di eseguire controlli per casi di diffamazione e ridurre i falsi positivi. Configurando i gestori di eventi in Nagios, il numero di notifiche è diminuito drasticamente. Nagios li ha aiutati mantenendo il tempo di attività del sito Web dei loro clienti al 98% all'anno dall'85% all'anno, questo è stato un enorme successo.
"In termini di dollari reali, l'azienda è stata in grado di ottenere quasi $ 125.000.000 di vendite aggiuntive come risultato." Eric Loyd, CEO EverWatch Global.