LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vorresti leggere La campana
Niente spam

Per iniziare server01 devi installare il pacchetto nagios. Per fare ciò, inserisci nel terminale:

sudo apt-get install nagios3 nagios-nrpe-plugin

Verrà richiesto di inserire una password per l'utente nagiosadmin. Gli account utente si trovano in /etc/nagios3/htpasswd.users. Per modificare la password dell'utente nagiosadmin o l'aggiunta di altri utenti per eseguire gli script CGI di Nagios utilizza l'utilità htpasswd, che fa parte del pacchetto apache2-utils.

Ad esempio, per modificare la password dell'utente nagiosadmin digita nel terminale:

sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin

Per aggiungere un utente:

sudo htpasswd /etc/nagios3/htpasswd.users steve

sudo apt-get install nagios-nrpe-server

NRPE consente di eseguire controlli locali su un computer remoto. Ma ci sono altri modi per raggiungere questo obiettivo usando altri plugin Nagios, così come altri modi per controllare.

Panoramica del file di configurazione

Esistono diverse directory contenenti file di configurazione di Nagios e file di controllo.

1. /etc/nagios3: contiene file di configurazione per l'esecuzione del demone nagios, file CGI, descrizioni di computer, ecc.

2. /etc/nagios-plugins: file di configurazione per i controlli di servizio.

3. /etc/nagios: contiene i file di configurazione sul computer remoto nagios-nrpe-server.

4. /usr/lib/nagios/plugins/: ecco i controlli binari. Per visualizzare le opzioni di scansione, utilizzare il tasto "-h".

Per esempio:/usr/lib/nagios/plugins/check_dhcp -h

Ci sono molti controlli Nagios che possono essere configurati per essere eseguiti su qualsiasi macchina. In questo esempio, Nagios sarà configurato per controllare lo spazio su disco, il servizio DNS e i gruppi di utenti MySQL. Il controllo DNS verrà eseguito server02 e il gruppo di macchine MySQL includerà entrambi server01 Così server02.

Vedi sezione HTTPD - Server Web Apache2 per impostazioni Apache più dettagliate, Domain Name Service (DNS) per la configurazione del DNS e MySQL per la configurazione MySQL.

In aggiunta a questo, verranno forniti alcuni termini per aiutarti a configurare facilmente Nagios:

Computer (host): server, workstation, dispositivo di rete, ecc. che viene monitorato.

Gruppo di computer: gruppo di computer simili. Ad esempio, puoi raggruppare tutti i server Web, i file server, ecc.

Servizio: un servizio che viene monitorato su un computer. Ad esempio HTTP, DNS, NFS, ecc.

Gruppo di servizi: consente di combinare più servizi insieme. Ad esempio, questo sarebbe utile per unire più server web.

Contatto: la persona che verrà avvisata quando si verifica un evento. Nagios può essere configurato per inviare e-mail, SMS, ecc.

Per impostazione predefinita, Nagios è configurato per controllare HTTP , spazio su disco, SSH , utenti correnti, processi e monitorare i livelli di carico sulla macchina locale. Nagios esegue anche un controllo del gateway con il comando ping.

L'insieme dei sistemi Nagios installati può essere configurato in modo completo. È meglio iniziare con più computer, uno o due, e quindi configurare in modo ottimale invece di utilizzare componenti aggiuntivi.

Ambientazione

1.1. Per prima cosa devi creare un file di configurazione per server02. Salvo diversa indicazione, eseguire tutti questi comandi server01. Digita nel terminale:

sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg \ /etc/nagios3/conf.d/server02.cfg

Nell'esempio precedente e successivo, sostituisci "server01", "server02" 172.18.100.100 e 172.18.100.101 con il nome e l'indirizzo IP dei tuoi server.

Definisci host( usa generic-host ; Nome del modello host da utilizzare host_name server02 alias Server 02 address 172.18.100.101 ) # controlla il servizio DNS. define service (usa il servizio generico host_name server02 service_description DNS check_command check_dns!172.18.100.101 )

1.3. Ricarica il demone nagios per attivare le nuove impostazioni:

2.1 Ora aggiungiamo una descrizione del servizio per controllare MySQL aggiungendo le seguenti righe a /etc/nagios3/conf.d/services_nagios2.cfg:

# controlla i server MySQL. define service ( hostgroup_name mysql-servers service_description MySQL check_command check_mysql_cmdlinecred!nagios!secret!$HOSTADDRESS use generic-service notification_interval 0; imposta > 0 se vuoi essere nuovamente notificato)

2.2. I server del gruppo mysql dovrebbero ora essere definiti. Modifica /etc/nagios3/conf.d/hostgroups_nagios2.cfg per aggiungere quanto segue:

# Gruppo host MySQL. define hostgroup ( hostgroup_name mysql-servers alias server MySQL membri localhost, server02 )

Mysql -u root -p -e "crea nagios utente identificati da "segreto";"

L'utente nagios deve essere presente su tutti i computer nel gruppo di lavoro del server mysql.

2.4. Riavvia nagios per testare il server MySQL.

sudo /etc/init.d/nagios3 riavvia

3.1. Infine, è necessario configurare NRPE per controllare lo spazio su disco server02.

Sul server01 aggiungi un controllo del servizio a /etc/nagios3/conf.d/server02.cfg:

# Controllo del disco NRPE. define service (usa il servizio generico host_name server02 service_description nrpe-disk check_command check_nrpe_1arg!check_all_disks!172.18.100.101 )

3.2. Ora avanti server02 modifica /etc/nagios/nrpe.cfg:

Permessi_hosts=172.18.100.100

E nella riga di dichiarazione del comando aggiungi:

Command=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e

3.3. Infine, riavvia nagios-nrpe-server:

sudo /etc/init.d/nagios-nrpe-server restart

3.4. Sul server01 devi anche ricaricare nagios:

sudo /etc/init.d/nagios3 riavvia

Ora dovresti essere in grado di vedere i tuoi server e i controlli del servizio nei file CGI di Nagios. Per accedervi, digita http://server01/nagios3 nel tuo browser. Ti verrà richiesto un nome utente e una password per nagiosadmin.

Collegamenti

In questa sezione sono state descritte solo le caratteristiche minori di Nagios. nagios-plugins-extra e nagios-snmp-plugins contengono molti più file di controllo del servizio.

1. Per informazioni più dettagliate, fare riferimento alla documentazione sul sito ufficiale di Nagios.

2. Documentazione strettamente focalizzata su Nagios.

3. Esistono diversi libri su Nagios e sul monitoraggio della rete.

4. Anche la pagina Wiki di Nagios Ubuntu contiene molta documentazione.

Nagios è un programma di monitoraggio dei sistemi informativi open source. Il prodotto è praticamente lo standard per i sistemi di monitoraggio. Consente (compreso):

  • monitorare gli host (carico del processore, utilizzo del disco, registri, ecc.) con una varietà di sistemi operativi: Windows, Linux, AIX, Solaris, ecc.;
  • controllare i servizi di rete (SMTP, POP3, HTTP, SSH, ecc.);
  • collegare moduli di estensione aggiuntivi (plugin) in qualsiasi linguaggio di programmazione (Shell, C++, Perl, Python, PHP, C#, ecc. - l'architettura del modulo deve essere aperta), utilizzare i propri metodi per il controllo dei servizi;
  • eseguire controlli paralleli dei sistemi (per migliorare le prestazioni);
  • inviare avvisi in caso di problemi tramite e-mail, messaggi SMS, ecc.;
  • rispondere automaticamente al servizio o ospitare eventi.

Installazione di Nagios

Nagios è un progetto open source disponibile per l'installazione sia nei codici sorgente che in pacchetti preparati per vari cloni Linux. È chiaro che l'installazione dal sorgente è più recente dei pacchetti preparati.

L'installazione dai pacchetti preparati viene eseguita secondo le regole della versione corrispondente del sistema operativo. Ad esempio, per Ubuntu il comando sarebbe simile a questo:

apt-get install nagios2

Ciò garantisce che tutte le librerie necessarie per il suo funzionamento siano installate ed è il metodo più semplice consigliato per gli utenti normali.

La procedura per l'installazione rapida del programma su Ubuntu è descritta sul sito nella sezione documentazione (http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html). Si noti che l'installazione dal sorgente deve essere seguita dall'installazione dei plug-in e dei componenti aggiuntivi necessari.

Al termine dell'installazione, puoi verificare il funzionamento del programma aprendo la pagina http://localhost/nagios/ (invece di localhost, dovresti usare il nome del server Nagios se apri la pagina da un computer remoto) . Quando ti vengono richiesti i parametri di autorizzazione, devi inserire il nome nagiosadmin e la password che hai assegnato a questo account nei passaggi precedenti.

Sulla fig. 7.14 mostra una delle pagine del programma: la struttura di un piccolo sistema controllato da Nagios (lo schema è costruito automaticamente in Nagios).

Riso. 7.14.
Diagramma di rete a Nagios

Un po' sulla logica di Nagios

Nagios può essere rappresentato condizionatamente da due parti: un server (in realtà, la sua installazione è stata discussa nella sottosezione precedente) e un client, ovvero un sistema che è controllato con o senza un agente installato.

Esistono varie versioni di agenti installati sui sistemi operativi. Molto spesso, per i sistemi basati su Linux, viene utilizzato il programma NRPE (il collegamento a questo plug-in è disponibile sul sito Web ufficiale di Nagios - http://www.nagios.org/) e per i computer Windows - NSClient++ (http:/ /trac.nudinuns.org /nscp/).

    Nota

    Storicamente, il primo client Windows era una variante del programma NPRE. Per motivi di compatibilità, NSClient++ conserva il protocollo utilizzato da NPRE. Nelle impostazioni del client, puoi specificare l'utilizzo di una delle opzioni di lavoro o di entrambe (alcuni plugin, ad esempio, sono sviluppati per una versione specifica del client). Si noti che in alcuni casi NPRe fornisce un maggiore controllo, ad esempio semplificando la configurazione degli script da eseguire sul sistema controllato stesso.

Si noti che ogni client deve essere configurato come descritto nelle sezioni seguenti.

Con l'aiuto dei client, avviene il monitoraggio attivo del lavoro: il server avvia un comando specificato dalle impostazioni sul client e analizza i dati ricevuti. Inoltre, è possibile una modalità operativa passiva nei casi in cui i dati vengono inviati al server su iniziativa del cliente. Ad esempio, questo è il modo in cui vengono gestiti i trap SNMP.

Come già accennato, sul server Nagios vengono eseguiti comandi (o programmi) speciali per ricevere informazioni dal client. In termini di Nagios, questi comandi sono chiamati plugin.

    Nota

    I plugin sono facili da trovare sul Web: Nagios ha un link a progetti su SourceForge.net, puoi usare il sito di scambio di plugin http://www. monitoringexchange.org/ e altre fonti.

Affinché il sistema di monitoraggio possa utilizzarli, tali comandi devono essere descritti in uno speciale file di configurazione - comandi.cfg. Sono queste descrizioni in termini di Nagios che vengono chiamate comandi di controllo.

Oltre a descrivere il comando stesso, il sistema di monitoraggio deve sapere quali sistemi controllare, con quale frequenza eseguire il comando check, se è necessario fare delle pause nel suo utilizzo (ad esempio, non eseguirlo in determinati giorni della settimana o in determinati periodi della giornata, ecc.). L'insieme di tali impostazioni in Nagios è generalmente chiamato servizio e sono definiti da un blocco separato nel file che descrive i parametri del sistema controllato. Poiché ci sono molti parametri nel servizio (circa una dozzina e mezza) e molti di essi vengono solitamente ripetuti, è consuetudine descrivere le parti ripetute nei modelli e semplicemente puntare a tale modello direttamente nella descrizione del servizio (descrizioni dei modelli sono memorizzati nel file templates.cfg). Tieni presente che l'annidamento è consentito nei modelli: alcuni parametri possono essere separati in un modello separato e utilizzati in altre descrizioni.

Ogni sistema controllato deve essere descritto nella configurazione di Nagios. Per comodità, ciò avviene in file separati (per tipo di dispositivo), che sono inclusi nella configurazione generale all'avvio del server. Inizialmente, i collegamenti a questi file "per indicazioni" sono commentati, quindi se è necessario iniziare a monitorare qualsiasi classe di dispositivi, prima di tutto, è necessario rimuovere il simbolo "#" nella riga corrispondente del file nagios.cfg e quindi aggiungere il blocco di descrizione del sistema al file appropriato.

Di conseguenza, Nagios esegue periodicamente comandi specifici sui sistemi monitorati, raccoglie i risultati e avvisa gli operatori in caso di un evento critico. I risultati del controllo possono essere salvati (per impostazione predefinita, i dati sulle prestazioni non vengono memorizzati) e presentati in forma grafica per l'analisi (vedere la sezione "Grafica in Nagios"). Nagios consente inoltre di assegnare comandi che verranno eseguiti al verificarsi di eventi. In in questo modo è possibile risolvere automaticamente i problemi che si verificano.

Se il sistema controllerà molti computer e dispositivi, è conveniente raggrupparli. In Nagios puoi creare gruppi di computer (dispositivi) e servizi. Ad esempio, se si desidera monitorare lo stato di tutti i servizi sui server, è necessario creare un gruppo che includa i nomi di questi sistemi. E se si vuole monitorare lo stato, ad esempio, di un servizio di risoluzione dei nomi DNS che gira su più sistemi fisici, allora è conveniente creare un gruppo per il servizio: basterà vedere lo stato dell'intero gruppo come normale per essere sicuri che i servizi DNS funzionino su tutti i computer. Ciò può semplificare le impostazioni di amministrazione e monitoraggio.

Tra le impostazioni di configurazione generali, notiamo anche i parametri degli operatori, quelle persone a cui il programma invierà messaggi in caso di determinati eventi. A Nagios, i singoli operatori possono anche essere combinati in gruppi e configurati per inviare messaggi di un certo tipo a un gruppo specifico di specialisti. Puoi anche impostare periodi di tempo. Possono essere utilizzati per applicare, ad esempio, diversi tipi di controllo nei giorni feriali e nei fine settimana, per diverse modalità di notifica agli amministratori (ad esempio via e-mail durante il giorno e tramite cercapersone di notte), ecc.

Gli avvisi possono essere intensificati: in caso di eventi ripetuti, un avviso può essere inviato in alto nella gerarchia allo specialista successivo.

Struttura dei file di configurazione di Nagios

L'elenco dei file di configurazione Nagios standard è riportato nella tabella. 7.1.

Tabella 7.1.
Elenco dei file di configurazione di Nagios

Nome del file

Scopo

File di configurazione di base. Contiene il nome e l'indirizzo dell'amministratore Nagios, collegamenti ai file di configurazione importati all'avvio del sistema

File di descrizione della risorsa. Contiene sinonimi per nascondere i percorsi di posizione effettivi dei comandi Nagios all'utente finale per migliorare la sicurezza

Opzioni delle impostazioni del server Web. Questo file descrive altri utenti Nagios e le autorizzazioni loro concesse.

Cartelle di oggetti, ecc.

Cartelle con singoli file che vengono importati nella configurazione all'avvio di Nagios. Queste cartelle sono descritte nel file nagios.cfg

Descrizione dei comandi di Nagios

I comandi di Nagios sono descritti nel file commands.cfg (il percorso predefinito è /usr/local/nagios/etc/object/commands.cfg).

In pratica, nel file command.cfg, di solito è necessario specificare la posizione dell'eseguibile, il suo nome, che verrà utilizzato in Nagios, ei parametri della riga di lancio. Di default, il file di configurazione del sistema installato contiene già alcune descrizioni dei tipici comandi di verifica (controlli ping - check_ping, controlli server http - check_http e molti altri). Sulla base di questi esempi, puoi creare facilmente i tuoi team di verifica, sebbene di solito utilizzino progetti già pronti che, per quasi tutte le opzioni di controllo, possono essere facilmente trovati sul Web. Quello che segue è un esempio di descrizione del comando più semplice - verifica della raggiungibilità di un host usando il comando ping:

Questa descrizione crea un comando denominato check-host-alive, utilizzando il comando check_ping delle utility Nagios installate come eseguibile. I simboli racchiusi tra i segni del dollaro indicano le variabili utilizzate. In termini di Nagios, si tratta di macro (macro) che vengono sostituite da valori al momento dell'esecuzione. Poiché di solito siamo abituati a una diversa definizione di macro, in questo libro faremo riferimento a questi nomi come variabili. $hostaddress$ viene tradizionalmente sostituito quando viene chiamato con il nome del sistema sottoposto a test e $arg1$, $arg2$, ecc. - in sequenza con gli argomenti specificati nella descrizione del servizio. I tasti w e c definiscono i valori che verranno utilizzati per generare lo stato di avviso (w) o errore (c). Di norma è possibile specificare valori assoluti o relativi (o entrambi: in una configurazione tipica, ad esempio, il parametro w è specificato come 3000.0.80%). L'ultima opzione (-p) specifica che il comando ping deve inviare cinque pacchetti probe.

Servizi di Nagios

I servizi sono generalmente descritti nei file di configurazione separatamente per ogni tipo di sistema controllato (nella configurazione generale di Nagios, tali file vengono importati dalle direttive cgf_file=... nel file nagios.cfg). La creazione dei file di configurazione inizia con le descrizioni dei modelli, seguite dalle descrizioni degli host e quindi dalle descrizioni dei servizi.

In una descrizione del servizio, non puoi più ripetere i valori comuni dai modelli, quindi una definizione tipica del servizio potrebbe assomigliare a questa:

In questo esempio, il servizio denominato Memory Usage utilizza le impostazioni del modello di servizio generico per l'host descritto sotto il nome winserver per funzionare. Come comando, il servizio esegue check_nt con le opzioni della riga di comando memuse e -w 80 -c 90 (la seconda opzione specifica quale valore di ritorno della memoria utilizzata dovrebbe essere considerato critico - 90% e quale dovrebbe essere impostato su warning - da 80 al 90%; i parametri stessi sono elencati tramite il simbolo "!").

Solitamente, lo stesso comando può essere utilizzato per controllare dispositivi dello stesso tipo. In questo caso, nella descrizione del servizio, è sufficiente elencare tutti questi dispositivi separati da virgole:

È possibile definire le dipendenze per i servizi. Questo viene fatto per nascondere gli avvisi "extra". Ad esempio, se alcuni dei sistemi si trovano nella rete locale dopo il router, è possibile determinare la loro dipendenza da questo dispositivo. È chiaro che se questo router si guasta, tutti i dispositivi dietro di esso saranno inaccessibili. La configurazione di una dipendenza consentirà, in caso di guasto di una dipendenza, di nascondere gli avvisi sull'indisponibilità dei dispositivi dipendenti fino al ripristino dello switch e di non controllare lo stato dei servizi corrispondenti su di essi.

Descrizione dei sistemi controllati a Nagios

Per comodità, diversi tipi di sistemi controllati sono generalmente descritti in diversi file di configurazione. L'elenco dei file di configurazione tipici utilizzati è fornito in usr/local/nagios/etc/nagios.cfg e alcuni file sono commentati. Quindi, se devi controllare gli switch nella rete, decommenta la riga #cfg_file=/usr/local/nagios/etc/objects/switch.cfg, ecc.

La descrizione dell'host stesso (sarà contenuto nel file windows.cfg, o switch.cfg, o printer.cfg, ecc.) può assomigliare minimamente a questa in questo caso:

Ci sono due parametri che possono essere inclusi nella descrizione dell'host che determineranno le azioni da intraprendere in caso di guasto del sistema:

Nagios eseguirà il comando check-host-alive e non appena viene rilevata una modifica nello stato dell'host, verrà eseguito il programma di riavvio del server. In questo modo è possibile, ad esempio, avviare servizi interrotti su server monitorati, riavviare sistemi, ecc.

Per comodità di analisi, gli host possono essere combinati in gruppi. Per fare ciò, è necessario descrivere il gruppo nel file di configurazione come segue:

Proprio come per i servizi, per gli host è possibile descrivere le dipendenze di alcuni sistemi su altri.

Descrizione dei parametri temporali

I parametri temporali sono utilizzati in varie configurazioni: nelle descrizioni degli host (il periodo in cui è necessario monitorare e il periodo in cui è necessario inviare messaggi), servizi e contatti (periodi in cui è possibile inviare messaggi per host e per servizi). La sintassi per definire un nuovo periodo è facilmente comprensibile dagli esempi inclusi nel file /usr/local/nagios/etc/objects/timeperiods.cfg.

È necessario dare un nome al template nella descrizione ed elencare riga per riga le fasce orarie che in esso sono contenute. Inoltre è possibile utilizzare i nomi dei giorni della settimana, dei mesi e dei numeri di serie (ultimo/primo lunedì del mese). I periodi di tempo possono essere elencati separati da virgole. Se necessario, i periodi descritti in un altro modello possono essere esclusi da un modello utilizzando la direttiva exclude seguita dall'enumerazione dei periodi di tempo (separati da virgole).

Utilizzo dei comandi di controllo integrati di Nagios

Con un'installazione standard di Nagios e plugin, contiene una serie di comandi (plugin) che possono essere utilizzati per controllare i sistemi. Un elenco di essi è riportato nella tabella. 7.2.

Tabella 7.2.
Elenco dei plugin di Nagios

Utilità

Scopo

Controllo degli aggiornamenti ai sistemi Linux utilizzando i comandi apt-get. Consente di avviare il processo di aggiornamento se configurato di conseguenza

Controllo della potenza del segnale Wi-Fi Breezecom

Questo plugin consente di eseguire comandi su un sistema remoto utilizzando il protocollo SSH

Verifica della connessione di CLAMD (programma antivirus) con un host remoto

Verifica dello stato degli host in un cluster Linux

Verifica della disponibilità dei server DHCP sulla rete

Verifica del servizio DNS sull'host (usando il comando dig)

Controllo dell'utilizzo dello spazio su disco (dischi nativi e montati)

Verifica del volume di utilizzo delle unità collegate tramite il protocollo SMB (di solito si tratta di unità da sistemi Windows)

Verifica del funzionamento del server DNS utilizzando nslookup

Plugin di ottimizzazione: restituisce semplicemente il parametro numerico e la stringa descritti al momento dell'esecuzione

Controllo quando sono stati creati i file

Controllo del servizio di gestione delle licenze Flexlm

Controllo della connessione FTP all'host remoto

Verifica dello stato delle stampanti Hewlett Packard con una scheda JetDirect installata (la verifica viene eseguita utilizzando il protocollo SNMP)

Controllo delle connessioni http a un sistema remoto. Il controllo può essere effettuato sia su protocollo HTTP che su protocollo HTTPS. Puoi controllare il tempo di creazione della connessione, il periodo di validità dei certificati del server, nonché la risposta del server (cercando una stringa specificata nella risposta, incluso l'uso di espressioni regolari)

Controllo degli host remoti tramite protocollo ICMP

Verifica dello stato di un disco locale (su un sistema Linux) utilizzando la tecnologia S.M.A.R.T

check_ifoperstatus

Verifica dello stato dell'interfaccia di rete su un determinato sistema Linux

Verifica dello stato di un'interfaccia di rete su un determinato sistema Linux

Verifica del funzionamento di un host remoto tramite il protocollo IMAP. È possibile analizzare la risposta del server alla stringa di richiesta imap inviatagli

Controllo del plug-in IRCD di Nagios

Test di una connessione JABBER a un host remoto

Verifica del server LDAP (puoi inviare una richiesta per cercare l'attributo corrispondente)

Lo stesso controllo del server LDAP, utilizzando solo connessioni sicure (utilizzando il protocollo SSL)

Controllo dell'avvio di Linux

Controllo dei log di sistema di Linux per alcune sequenze di caratteri

Controllo del numero di messaggi nella coda del server di posta (funziona con diverse versioni di sendmail, qmail)

Controlla la variabile data nel log MRTG (Multi Router Traffic Grapher) per i valori minimo/massimo (check_mrtgtraf dovrebbe essere usato per controllare i parametri delle prestazioni)

Controlla i valori di traffico in uscita e in entrata degli switch registrati nel registro MRTG. Richiede l'installazione iniziale del pacchetto MRTG (http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html)

Controlla lo stato del processo Nagios sulla macchina locale

Verifica della connessione NNTP all'host specificato

Lo stesso, ma utilizzando il protocollo NNTPS

Plugin NRPE Nagios

Questo plugin raccoglie i dati dal servizio NSClient sui sistemi Windows

Controllo del server NTP. Si consiglia di utilizzare check_ntp_peer invece di questo plugin

Controllo del server NTP. Consente di valutare, incluso il jitter (jitter) del segnale orario

Questo plugin controlla la differenza di orario tra un server locale e un server orario remoto specificato

Utilizzato per raccogliere dati dai server Novell. Richiede l'installazione di pacchetti aggiuntivi

Verifica la connessione al server Oracle, permette di valutare la dimensione dei database e la disponibilità di spazio libero, lo stato dei buffer di cache, ecc.

Controlla lo stato del demone di raccolta Over-CR su un sistema remoto (http://www.molitor.org/overcr)

Verifica una connessione a un sistema remoto utilizzando pacchetti ping

Controllo degli host remoti utilizzando il protocollo POP. Consente di inviare una stringa di query al server di posta e analizzare la risposta del server

Controlla lo stato dei processi di sistema Linux

Verifica lo stato del servizio REAL (connessioni RTCP)

Controlla lo stato di un servizio RPC sull'host specificato

Controlla lo stato dei sensori hardware su un sistema Linux. Le informazioni dai sensori si ottengono utilizzando il pacchetto lm_sensors

Verifica una connessione del canale protetto IMAP al server. Tempo e contenuto di risposta controllati (attraverso l'analisi della risposta a una determinata richiesta), validità dei certificati

Verifica la connessione SMTP al server. La risposta del server di posta può essere analizzata per le stringhe date. Anche il tempo di risposta è controllato

Scansione di sistemi remoti (e acquisizione di dati da essi) tramite SNMP

Verifica una connessione POP su un canale protetto al server. Tempo e contenuto di risposta controllati (attraverso l'analisi della risposta a una determinata richiesta), validità dei certificati

Verifica della connessione al server SSH

Verifica la connessione SMTP su un canale protetto al server. La risposta del server di posta può essere analizzata per le stringhe date. Anche il tempo di risposta è controllato

Verifica la disponibilità di spazio nel file di scambio del sistema locale

Verifica della connessione TCP al sistema specificato. Vengono verificati la presenza di una risposta, il suo tempo, la presenza di stringhe specificate nella risposta, ecc.

Controllo dell'ora sull'host specificato

Verifica della connessione UDP al sistema specificato. Vengono verificati la presenza di una risposta, il suo tempo, la presenza di stringhe specificate nella risposta, ecc.

Verifica dello stato dei gruppi di continuità su un sistema Linux locale o remoto. Il plugin richiede che il demone UPSD (http://www.networkupstools.org) sia installato sul sistema.

Verifica del numero di utenti connessi localmente

Controllo del livello del segnale WI-FI

Ciascuno di questi plugin contiene informazioni di guida che descrivono le caratteristiche del suo utilizzo (visualizzando la guida sul comando<плагин>-h).

Per poter utilizzare il plugin per il monitoraggio del sistema, Nagios deve descrivere il comando che lo utilizza. Il file command.cfg contiene alcuni degli esempi più comunemente usati di controllo del sistema. Nell'uso pratico di Nagios, questo file dovrebbe essere esteso con i tuoi comandi di controllo.

Monitoraggio dei server Windows in Nagios

Sono stati sviluppati diversi agenti per il monitoraggio di sistemi basati su Windows. I più comunemente usati sono NSClient++, NC_NET (http://sourceforge.net/projects/nc-net) e OpMonAgent (http://www.opmon.org/project/opmonagent.zip). La funzionalità di questi agenti è quasi identica, quindi prenderemo in considerazione l'uso dell'agente NSClient++, che, secondo l'autore, è l'agente più popolare dell'elenco menzionato.

L'agente NSClient++ è disponibile da http://trac.nakednuns.org/nscp/. Questo programma può essere scaricato sia come archivio (zip) che come file di installazione (msi) e per piattaforme a 32 e 64 bit, è necessario utilizzare versioni diverse dell'agente. Se hai scaricato l'archivio, devi decomprimerlo nella cartella desiderata e installare il servizio Windows con il comando

NSClient++ -installa

È più conveniente utilizzare un file msi, poiché in questo caso la procedura guidata di installazione aggiungerà immediatamente alcune impostazioni alla configurazione dell'agente in base ai risultati delle tue risposte (Fig. 7.15).

Riso. 7.15.
Configurazione delle impostazioni del programma NSClient++.
Le impostazioni utente inserite in fase di installazione verranno salvate dal programma nel file di configurazione

Dopo l'installazione, è necessario consentire al servizio di interagire con il desktop, per il quale è necessario aprire le proprietà del servizio ( Pannello di controllo | Amministrazione | Servizi| trova il servizio NSClientpp... (il nome completo dipende dalla versione) e apri le sue proprietà) e abilita l'opzione Consenti interazione desktop.

Prima di iniziare il servizio, necessariamente controlla le sue impostazioni. Per fare ciò, apri il file nsc.ini (nella cartella di installazione dell'agente) e decommenta quelle righe che corrispondono ai moduli del programma che dovrebbero essere utilizzati per il monitoraggio del sistema. Descrizioni sufficientemente dettagliate dei parametri di configurazione sono fornite nella documentazione del plugin all'indirizzo http://trac. nakednuns.org/nscp/wiki/doc/Configuration.

Quando si imposta una configurazione, si dovrebbe partire dal principio di non includere più opzioni di quelle attualmente necessarie. Ad esempio, se non si prevede di ricevere informazioni tramite query WMI, non caricare il modulo CheckWMI.dll.

Prestare attenzione alla possibilità di eseguire l'agente in modalità diagnostica. In questo caso, puoi sia vedere potenziali errori nel file di configurazione che eseguire il debug delle tue query (Fig. 7.16).

Riso. 7.16.
Finestra del programma NSClient++ in modalità diagnostica

Per eseguire NSClient++ in modalità diagnostica, digita

NSClient++ /test

Nella finestra di NSClient++, puoi, in primo luogo, vedere i risultati del caricamento di tutti i moduli e, in secondo luogo, inserire i tuoi comandi e vedere i risultati sia delle richieste dal server Nagios che dei comandi locali. Sulla fig. 7.16 mostra la finestra di debug del plugin, in cui viene immesso il comando CheckDriveSize ShowAll MinWarnFree=20% MinCritFree=10% Drive=D:\ e la risposta del sistema è visibile.

Il plug-in NSClient++ consente di controllare i parametri mostrati nella tabella. 7.3. I dettagli sull'utilizzo sono dettagliati nella documentazione tecnica (http://trac.nakednuns.org/nscp/wiki/CheckCommands) ed è facile scrivere i propri comandi di monitoraggio dello stato di Windows dagli esempi disponibili.

Tabella 7.3.
Impostazioni di Windows controllate da NSClient++

Parametro

Descrizione

Controlla la dimensione di un file o di una cartella

Controlla la quantità di spazio libero o utilizzato su dischi rigidi o unità rimovibili (il tipo di unità può essere selezionato nel comando)

Controlla i file in base alla data di creazione, all'ora dell'ultimo accesso, alla scrittura del file o alla dimensione del file

Cerca i messaggi di errore nel file di registro. Poiché di solito ci sono molti di questi messaggi, l'uso di questo controllo carica pesantemente il sistema.

Monitora l'utilizzo della CPU per un periodo di tempo configurabile

Controlla il tempo di attività del sistema

CheckServiceState

Monitora lo stato del servizio Windows (viene generato un messaggio critico se lo stato effettivo del servizio non corrisponde a quello specificato come parametro nel comando). Puoi monitorare tutti i servizi contemporaneamente impostando un'eccezione. Come nome del servizio, è necessario specificare quello che viene visualizzato nelle proprietà del servizio

Monitora lo stato dei processi di Windows. Infatti permette di monitorare lo stato del processo trovato dal nome del file eseguibile. Può anche essere controllato dal numero di processi in esecuzione contemporaneamente

Monitora lo stato della memoria virtuale e fisica; il parametro del numero di pagine di memoria scritte è disponibile (pagine impegnate)

Monitora i valori dei contatori delle prestazioni. Sono auspicabili oggetti contatore - per facilità d'uso - da impostare nelle descrizioni dei comandi (servizi)

Controlla sempre OK
Verifica sempre CRITICO
SpuntaSempreAVVISO
Controlla Multiplo
Spunta OK
CheckCRITICO
CheckAVVISO
CheckVersion

I cosiddetti aiutanti. Restituiscono un valore predeterminato (che può essere giudicato dal nome del comando). Utilizzato nel processo di configurazione e debug del sistema

L'elenco elencato non si limita alla capacità di controllare i sistemi Windows. È possibile aggiungere parametri controllabili, ad esempio, tramite l'uso di script esterni.

Il monitoraggio del sistema Windows può essere eseguito utilizzando vari protocolli. I protocolli più comunemente usati sono NSClient e NRPE (per il monitoraggio "passivo", puoi anche usare il protocollo NSCA, di cui puoi leggere di più nella documentazione online). In pratica puoi usarne uno qualsiasi, devi solo abilitare/disabilitare i moduli corrispondenti nel file delle impostazioni del client (nsc.ini). Allo stesso tempo, secondo l'autore, il protocollo NRPE è in qualche modo più flessibile nell'uso e fornisce la crittografia dello scambio di dati. Quando si utilizza il protocollo NRPE, la sintassi del comando è costruita come segue:

check_nrpe ... -c<команда>-un<аргументы>

Ad esempio, il controllo della memoria fisica disponibile può essere eseguito in questo modo:

check_nrpe -H 192.168.0.9 -c CheckMem -a MaxWarn=70% MaxCrit=>80% tipo=fisico

Monitoraggio di sistemi Windows basati su WMI

NSClient++ include il modulo CheckWMI.dll, che consente di controllare un sistema Windows utilizzando il toolkit WMI.

Il modulo CheckWMI consiste in realtà di due sottomoduli: CheckWMIValue e CheckWMI. Il modulo CheckWMIValue è ottimizzato per controllare i valori numerici. Ad esempio il carico attuale del processore (questo è il numero di percentuali del carico) o la risoluzione del monitor (il numero di pixel), ecc. In questo comando puoi semplicemente specificare i parametri da controllare e i valori minimo/massimo consentito per loro, ad esempio, in questo modo:

CheckWMIValue "(!LANG:Query=Seleziona PelsWidth da win32_DisplayConfiguration" !}
MinCrit=640 MinWarn=800 Check:Width=PelsWidth

Il comando mostrato qui è scritto per l'uso in modalità debug (nsclient++ /test). Interroga la risoluzione orizzontale del display e segnala una condizione critica se è uguale o inferiore a 640 ed emette un avviso se il valore non supera 800. Tra le caratteristiche dell'utilizzo di questo comando, notiamo che dopo la stringa di query (che è racchiuso tra virgolette) è necessario scrivere parametri di valori minimo/massimo e solo successivamente specificare il nome del parametro che viene controllato dal comando (PelsWidth). Spieghiamo anche l'opzione Verifica utilizzata sulla riga di comando. Dopo il Check è necessario inserire il nome del parametro che verrà utilizzato nel sistema di controllo (è possibile salvare il nome anche dalla descrizione in WMI, ma spesso è più comodo inserire il proprio nome), e il nome corrispondente a l'oggetto classe (quello che viene visualizzato, ad esempio, nel visualizzatore WMI Object Browser).

Altri esempi (comprese le opzioni per la configurazione di Nagios) sono disponibili all'indirizzo http://trac.nakednuns.org/nscp/wiki/CheckWMIValue.

Il modulo CheckWMI deve essere utilizzato quando è prevista l'analisi di un parametro stringa restituito da una query WMI o la query su più valori. Quando si utilizza CheckWMI, le stringhe di query diventano un po' più complicate a causa della necessità di filtri. La sintassi di CheckWMI è descritta all'indirizzo http://nsclient.org/nscp/wiki/CheckWMI/CheckWMI. Per la loro costruzione, le query CheckWMI sono simili ai filtri utilizzati per analizzare i registri delle operazioni di sistema.

Monitoraggio dei server Linux a Nagios

I server Linux vengono monitorati utilizzando il plug-in NRPE, che deve essere installato come plug-in sul server Nagios e come demone sul sistema Linux controllato. Per l'installazione è possibile utilizzare sia la versione preparata che i codici sorgente del plugin.

Oltre al set standard, l'amministratore può utilizzare qualsiasi plug-in disponibile ampiamente rappresentato su Internet durante il monitoraggio.

Utilizzando il protocollo NRPE, puoi chiamare il comando check_nrpe su un host monitorato per controllare un altro host. In questo modo, puoi controllare una determinata sottorete tramite un computer. Con questa organizzazione di controllo, sia il demone del protocollo NRPE che il plugin devono essere installati sull'host utilizzato come proxy.

Monitoraggio del sistema tramite protocollo SNMP

Per funzionare tramite il protocollo SNMP, in Nagios deve essere installato il plug-in appropriato. È incluso con i plugin di Nagios, ma può essere utilizzato solo se è stato prima installato il pacchetto net-snmp. Pertanto, se si intende utilizzare il modulo SNMP, questo pacchetto deve essere scaricato dal server http://net-snmp.sourceforge.net/, quindi i plugin devono essere ricompilati e reinstallati. L'autore consiglia che su una nuova installazione, eseguire prima il comando make clean, che cancellerebbe le impostazioni dell'installazione precedente.

    Nota

    Sul sito http://net-snmp.sourceforge.net/ il pacchetto richiesto viene presentato solo in codice sorgente o in formato RPM.

Dopo aver configurato la capacità di monitoraggio SNMP, è necessario testare 1 funzionalità sulle query più semplici. Ad esempio, controlla la durata del dispositivo:

/usr/local/nagios/libexec/check_snmp -H<адрес_устройства>-C -o
sysUpTime. 0

In risposta, dovresti ricevere qualcosa del genere:

SNMP OK - Timeticks: (622339555) 72 giorni, 0:43:15.55 |

Il comando check_snmp può richiedere un parametro che accetta un valore numerico e verificare se il suo valore rientra in un determinato intervallo. Quindi, puoi specificare i valori per lo stato di avviso e critico (interruttori -w e -c) o un intervallo di valori (separati da due punti). Si noti che se si desidera, ad esempio, che il numero restituito nell'intervallo da a a b (b > a) venga interpretato come un valore critico, è necessario specificare l'intervallo b: a. Se specifichi un intervallo nella forma "normale", come a:b, se il valore restituito rientra in questo intervallo, il risultato sarà considerato uno stato normale e, in caso contrario, come avviso o critico ( a seconda della chiave utilizzata). Inoltre, il comando può controllare il valore della stringa restituita (il valore con cui viene verificata la risposta deve essere specificato nell'opzione -s) o anche controllare utilizzando espressioni regolari (le opzioni -r, -R). Puoi anche controllare più parametri in una richiesta contemporaneamente, elencando i loro OID separati da virgole, in questo modo:

Dopo che la richiesta è stata compilata e debuggata, è sufficiente descrivere il nuovo comando nel file command.cfg e aggiungere i servizi necessari ai file di descrizione dei dispositivi controllati.

Sul web è possibile trovare un numero sufficiente di esempi di configurazione di Nagios per controllare i dispositivi utilizzando il protocollo SNMP che possono essere messi in pratica. Ad esempio, http://wiki.nagios.org/index.php/Howtos:snmp-apc-smart-ups contiene una descrizione delle impostazioni con cui è possibile monitorare lo stato dei gruppi di continuità di APC (stato della batteria, tensione parametri, temperatura, ecc.).

Monitoraggio delle apparecchiature di commutazione

Le apparecchiature di rete attive - switch, hub, modem, ecc. sono controllate tramite protocollo SNMP (modelli gestiti). Puoi ottenere lo stato delle porte delle apparecchiature, emettere avvisi se si verifica un certo numero di errori di trasmissione dei pacchetti sulle porte, monitorare la temperatura del dispositivo e il numero di sessioni VPN. È sufficiente selezionare gli identificatori appropriati in base alla descrizione per il monitoraggio tramite il protocollo SNMP. Nella maggior parte dei casi, questo è sufficiente per il controllo.

Tuttavia, oltre ai parametri specificati, gli amministratori spesso vogliono conoscere il carico reale sull'apparecchiatura, la percentuale di larghezza di banda utilizzata. Questi valori non possono essere ottenuti interrogando l'uno o l'altro parametro di stato dell'hardware. Sono calcolati sulla base dell'analisi dei dati ricevuti periodicamente. Uno dei programmi più popolari, MRTG, è stato creato appositamente per tale monitoraggio. Le sue capacità di elaborazione dei parametri di commutazione sono utilizzate da Nagios.

Il programma MRTG raccoglie le statistiche dalle apparecchiature attive utilizzando il protocollo SNMP, che, utilizzando il plug-in check_mrtgtraf, viene successivamente trasferito a Nagios per la visualizzazione.

Dopo aver installato il programma MRTG, è necessario creare file di impostazioni in cui si specificano i dispositivi e i valori dei parametri che il programma raccoglierà. Queste impostazioni dovrebbero essere fornite nel file /etc/mrtg.conf. La formazione della configurazione MRTG è un compito piuttosto complicato, quindi il pacchetto fornisce un programma speciale che eseguirà automaticamente il polling del dispositivo e genererà un file di configurazione: cfgmaker. Quando lo esegui, devi specificare la stringa della community e l'indirizzo del dispositivo come parametri. L'output del programma dovrebbe essere reindirizzato a un file, i valori da cui poi importiamo semplicemente nel file delle impostazioni. È conveniente utilizzare il nome (o l'indirizzo) del dispositivo interrogato come nome di tale file:

cfgmaker [email protetta] indirizzo > /etc/mrtg/address.cfg

Sulla base dei risultati del comando cfgmaker, è sufficiente lasciare nel file di configurazione quei blocchi di dati che dovrebbero essere analizzati per un determinato dispositivo. Considerando che in base alle informazioni del file, il programma crea titoli e descrizioni dei servizi sulle pagine delle carte, ha senso correggere i nomi e le descrizioni di quelle posizioni che dovrebbero essere visualizzate sulle carte. Poiché non ha senso analizzare la larghezza di banda per porte a cui sono collegati i dispositivi finali (server, workstation), è consigliabile mantenere il monitoraggio della larghezza di banda solo per le porte trunk (porte collegate ad altri switch o hub).

Dopo aver modificato il file delle impostazioni, è possibile eseguire il programma mrtg, specificando come parametro la configurazione del dispositivo. Per i sistemi con codifica UTF-8, il comando di esecuzione sarà simile al seguente:

env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

Quando si installa il pacchetto MRTG, il sistema è configurato per raccogliere automaticamente le informazioni dagli switch una volta ogni cinque minuti. Se lo si desidera, questo periodo può essere aumentato modificando di conseguenza il file /etc/cron.d/mrtg.

I grafici delle prestazioni per le singole porte del dispositivo possono essere visualizzati aprendo la cartella http://nagiosserver/mrtg/ nel browser e selezionando il file appropriato. Se lo si desidera, è possibile creare un file indice comune per semplificare la visualizzazione. Questo viene fatto usando il comando indexmaker. Le chiavi necessarie per generare il file possono essere facilmente specificate dalle informazioni della guida dopo aver chiamato indexmaker -h.

Finché la configurazione descritta sopra, puoi utilizzare i comandi check_mrtg e check_mrtgtraf di Nagios per raccogliere i dati sulle prestazioni. Il comando check_mrtgtraf richiede i seguenti parametri:

check_mrtgtraf -F -a -w in entrata,in uscita -c in entrata,in uscita -e periodo_scadenza

In questo esempio, il parametro -a specifica se verrà preso in considerazione il valore massimo (max) per il periodo di analisi o se il programma valuterà il valore medio (media). Dopo i tasti w e c, sono indicate le coppie di limiti per il traffico in uscita e in entrata su questa porta. La porta su cui il sistema monitorerà i dati è determinata dal file di registro selezionato. Sulla fig. 7.17 mostra un esempio di grafico generato dal pacchetto mrtg.

Riso. 7.17.
Cambia programma di caricamento della porta

Utilizzando i propri programmi di monitoraggio

Nagios semplifica la creazione di plug-in personalizzati per monitorare qualsiasi sistema. Pertanto, è possibile utilizzare qualsiasi file eseguibile. È solo necessario assicurarsi che riportino il codice di spegnimento in conformità con la tabella. 7.4.

Tabella 7.4.
Codici di ritorno del monitor di sistema Nagios

Quando si creano script, tenere presente che verranno eseguiti per conto del servizio dell'agente di monitoraggio. Per impostazione predefinita, questo servizio dispone dei diritti massimi per il sistema locale, ma non può interagire con i computer sulla rete. Se si intende utilizzare gli script per raccogliere dati da altri computer, è necessario eseguire lo script delle operazioni di connessione con le impostazioni dell'account appropriate oppure configurare l'agente per l'esecuzione con un nome diverso.

Complotto a Nagios

I comandi di Nagios che monitorano i sistemi restituiscono non solo lo stato (buono o non valido), ma anche dati su parametri specifici (ad esempio, percentuale di utilizzo del disco o numero di utenti connessi al sistema). Questi dati non vengono memorizzati di default, ma possono essere utilizzati, ad esempio, per tracciare grafici per i rispettivi servizi.

Per implementare questa funzione, è necessario installare un plug-in aggiuntivo. Uno dei plugin più popolari per la creazione di grafici in Nagios è il pacchetto nagiosgraph, disponibile per il download da http://sourceforge.net/projects/nagiosgraph/.

Sulla fig. La Figura 7.18 mostra un esempio di pagina per il monitoraggio dello stato dei servizi, sulla quale, quando si passa il cursore del mouse sul parametro corrispondente, viene visualizzato dinamicamente un grafico della sua variazione. Se lo desidera, l'amministratore può procedere alla selezione di un orario per qualsiasi servizio e per un determinato periodo di tempo.

Riso. 7.18.
Esempio di pagina grafico dinamico

Configurazione dell'interfaccia di Nagios

Per Nagios sono stati sviluppati molti add-on che consentono di personalizzare la visualizzazione dei dati di monitoraggio in base alle esigenze dell'amministratore. Ad esempio, invece di una panoramica tattica (Figura 7.19), è possibile utilizzare mappe di rete personalizzabili, sulle quali Nagios visualizzerà lo stato di ciascun dispositivo.

Riso. 7.19.
Il modo predefinito per visualizzare lo stato del sistema di riepilogo in Nagios

Sulla fig. La Figura 7.20 (esempio dal sito http://www.nagvis.org) mostra una versione reale della mappa di monitoraggio costruita utilizzando il pacchetto NagVis.

Riso. 7.20.
Visualizzazione dello stato della rete quando si utilizza il pacchetto NagVis

In questo caso, Nagios visualizzerà indicatori in tempo reale per dispositivi e collegamenti. Allo stesso tempo, è possibile visualizzare sulla mappa stati di riepilogo per gruppi (di host e servizi), valori del traffico effettivo lungo le linee di comunicazione, ecc.. È chiaro che tali rappresentazioni sono molto convenienti nell'uso pratico.

1 Gli esempi utilizzano SNMP versione 1. Gli ambienti reali in genere utilizzano la versione 3, quindi gli esempi devono essere integrati con parametri di autenticazione.

Nagios (Nagios Ain "t Gonna Insist On Sainthood)- un programma open source progettato per monitorare sistemi e reti di computer. Esegue il monitoraggio, il monitoraggio dello stato di nodi e servizi, avvisando l'amministratore se uno qualsiasi dei servizi interrompe (o riprende) il proprio lavoro.

Nell'articolo di oggi, ti mostreremo come installare Nagios 4.1 sul Ubuntu 15.04.

Puoi testare e vedere come sono Nagios e altri programmi / servizi / PBX andando alla sezione.

Addestramento

Assicurati che il tuo server sia completamente funzionante LAMPADA, se non installato, prima di continuare, installa LAMPADA server. Installiamo i seguenti componenti:

sudo apt-get install build-essential libgd2-xpm-dev apache2-utils unzip

Crea un utente e un gruppo Nagios

Crea un nuovo account utente nagios e gruppo nagcmd:

Sudo useradd -m nagios
sudo passwd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagcmd www-data

Scarica Nagios e i relativi plugin

Sul sito ufficiale, l'ultima versione è elencata come 4.1.0 candidato alla versione 2 e scaricalo.

cd /usr/src
sudo wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.0rc2.tar.gz

Download di plugin

Sudo wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

Installazione di Nagios

Vai alla cartella in cui abbiamo scaricato Nagios e plugin e decomprimi usando il comando:

Sudo tar xzf nagios-4.1.0rc2.tar.gz

cd nagios-4.1.0rc2/

Eseguire i seguenti comandi per compilare e installare Nagios:

Sudo ./configure --with-command-group=nagcmd
sudo fai tutto
sudo fai installare
sudo make install-init
sudo make install-config
sudo make install-commandmode

Installazione dell'interfaccia web Nagios:

sudo make install-webconf

Se viene visualizzato il seguente errore durante il processo di installazione:

/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
/usr/bin/install: impossibile creare un file normale '/etc/httpd/conf.d/nagios.conf': nessun file o directory di questo tipo
Makefile:296: ricetta per la destinazione "install-webconf" non riuscita
fare: *** Errore 1

Nagios tenta di creare il file nagios.conf all'interno /etc/httpd.conf/directory, ma nei sistemi ubuntu I file nagios.conf devono essere inseriti /etc/apache2/sites-enabled/directory. Usiamo quindi un altro comando invece di sudo make install-webconf

sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-enabled/nagios.conf

Creiamo un account Nagiosadmin per accedere all'interfaccia web Nagios. Assicurati di ricordare la password che hai impostato, ti servirà quando accedi all'interfaccia Web.

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Riavvia Apache per rendere effettive le nuove impostazioni:

sudo systemctl riavvia apache2

Torniamo alla cartella in cui abbiamo scaricato i plugin e decompresso i plugin:

cd /usr/src
tar xzf nagios-plugins-2.0.3.tar.gz

Vai alla directory decompressa:

cd nagios-plugins-2.0.3/

Esegui i seguenti comandi per compilare e installare i plugin:

Sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios
sudo fare
sudo fai installare

Lancio di Nagios

Controllo nagios.conf per errori:

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Se non ci sono errori, esegui Nagios e aggiungilo all'esecuzione automatica:

Inizio del servizio Sudo
sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Se all'avvio Nagios hai visto il seguente errore:

Impossibile avviare nagios.service: Impossibile caricare l'unità nagios.service: nessun file o directory di questo tipo.

[....] Avvio di nagios (tramite systemctl): nagios.serviceFailed per avviare nagios.service: Impossibile caricare l'unità nagios.service: Nessun file o directory.failed!

Per risolverlo, devi copiare /etc/init.d/scheletro in /etc/init.d/nagios

sudo cp /etc/init.d/skeleton /etc/init.d/nagios

modificare /etc/init.d/nagios:

sudo nano /etc/init.d/nagios

Aggiungendo alla fine quanto segue:

DESC="Nagios"
NOME=nagios
DAEMON=/usr/local/nagios/bin/$NAME
DAEMON_ARGS="-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE=/usr/local/nagios/var/$NAME.lock

Salviamo ed usciamo.

Il tocco finale: diamo i diritti di eseguire:

sudo chmod +x /etc/init.d/nagios

e corri Nagios:

sudo /etc/init.d/nagios start

Ora nel browser accedi http://nagios-server-ip/nagios, nel campo nome utente inserisci nagiosadmin e la password che abbiamo impostato durante il processo di installazione.



Fai clic su "Host" nel riquadro sinistro della console. Vedrai che Nagios al momento non sta monitorando nessun host diverso da se stesso.



Questo completa la nostra installazione. Seguendo le istruzioni, abbiamo installato Nagios 4.1 su Ubuntu 15.04

Prima di configurare nagios, è necessario installare le dipendenze necessarie

# apt install build-essential apache2 php libapache2-mod-php7.0 php-gd libgd-dev mailutils

E aggiungi un utente e un gruppo per conto del quale verrà eseguito nagios

# useradd nagios # groupadd nagcmd # usermod -a -G nagcmd nagios # usermod -a -G nagcmd www-data

Vai alla directory build e scarica il codice sorgente per nagios e plugin

# cd /usr/src/ # wget https://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.2.3/nagios-4.2.3.tar.gz # wget https:// nagios-plugins.org/download/nagios-plugins-2.1.4.tar.gz

Decomprimi gli archivi scaricati

# tar xzvf nagios-4.2.3.tar.gz # tar xzvf nagios-plugins-2.1.4.tar.gz

Andiamo nella directory con il codice sorgente di nagios e configuriamo

# cd nagios-4.2.3 # ./configure --prefix=/etc/nagios --with-command-group=nagcmd --with-httpd-conf=/etc/apache2/sites-available --with-mail= /usr/bin/posta

Costruiamo

# fai tutto

Installa Nagios

# esegui l'installazione

Installa uno script init in /etc/init.d e abilita l'avvio automatico

# make install-init # update-rc.d nagios defaults

Impostare le autorizzazioni sulla directory per l'archiviazione di file batch esterni

# crea la modalità di comando di installazione

Installa i file di configurazione di nagios

# fai install-config

Configura la configurazione di nagios per apache

# fai install-webconf

Copia gli script di elaborazione degli eventi dei file batch esterni nella cartella con nagios e imposta il proprietario sulla cartella

# cp -R contrib/eventhandlers/ /etc/nagios/libexec/ # chown -R nagios:nagios /etc/nagios/libexec/eventhandlers

Verifichiamo la configurazione installata

# /etc/nagios/bin/nagios -v /etc/nagios/etc/nagios.cfg

# fai # fai installare

Abilita la configurazione di nagios in apache e attiva i componenti aggiuntivi necessari

# a2ensite nagios # a2enmod riscrivi cgi

Riavvia il servizio apache

# riavvio del servizio apache2

Iniziamo nagios e controlliamo lo stato

# service nagios start # service nagios status ● nagios.service - Nagios Caricato: caricato (/etc/systemd/system/nagios.service; abilitato; preimpostazione del fornitore: abilitato) Attivo: attivo (in esecuzione)

Aggiungi un amministratore di nagios

# htpasswd -c /etc/nagios/etc/htpasswd.users nagiosadmin

Ora affrontiamo i file di configurazione di nagios.

/etc/nagios/etc/ cgi.cfg- definisce le impostazioni per l'interfaccia web, nonché i diritti di accesso alla console web di nagios.

/etc/nagios/etc/ htpasswd.users- database degli utenti e delle loro password per l'accesso all'interfaccia web di nagios.

/etc/nagios/etc/ nagios.cfg— contiene le impostazioni principali ei percorsi dei file *.cfg.

/etc/nagios/etc/ risorsa.cfg- qui viene definita una variabile, fino alla directory con i plugin.

/etc/nagios/etc/objects/ comandi.cfg- contiene le definizioni dei comandi.

/etc/nagios/etc/objects/ contatti.cfg- definisce i contatti di posta a cui verranno inviate le notifiche di nagios.

/etc/nagios/etc/objects/ modelli.cfg- contiene modelli per contatti, host e servizi.

/etc/nagios/etc/objects/ timeperiods.cfg- contiene definizioni di periodi di tempo.

/etc/nagios/etc/objects/ localhost.cfg- configurazione per il monitoraggio del server nagios stesso. Definisce l'host stesso, il gruppo host per i server Linux e i servizi di monitoraggio.

/etc/nagios/etc/objects/ stampante.cfg- configurazione per il monitoraggio della stampante. Definisce una stampante arbitraria, un gruppo host per le stampanti e servizi di monitoraggio.

/etc/nagios/etc/objects/ switch.cfg- configurazione per il monitoraggio dell'interruttore. Definisce uno switch arbitrario, un gruppo host per switch e servizi di monitoraggio.

/etc/nagios/etc/objects/ windows.cfg- configurazione per il monitoraggio di un host Windows arbitrario. Definisce un host Windows arbitrario, un gruppo host per server Windows e servizi di monitoraggio.

La descrizione mostra che localhost.cfg, printer.cfg, switch.cfg e windows.cfg contengono definizioni di gruppi host. Per comodità, ha senso separarli in un file separato /etc/nagios/etc/objects/ hostgroups.cfg. Di conseguenza, devono essere commentati nel file originale. La descrizione dello stesso oggetto non deve essere ripetuta in file di configurazione diversi. Aggiungeremo anche il file /etc/nagios/etc/objects/ servicegroups.cfg, in cui verranno definiti i gruppi di servizi. Poiché questa pubblicazione sta configurando il monitoraggio per gli host Linux e Windows, definiremo dei gruppi per loro. Per stampanti e interruttori, i gruppi sono definiti per analogia. Creeremo anche la cartella /etc/nagios/etc/servers/, che memorizzerà i file che definiscono gli host da monitorare. Apportiamo le modifiche appropriate al file nagios.cfg

# nano /etc/nagios/etc/nagios.cfg . . . # È possibile specificare i singoli file di configurazione degli oggetti come mostrato di seguito: cfg_file=/etc/nagios/etc/objects/commands.cfg cfg_file=/etc/nagios/etc/objects/contacts.cfg cfg_file=/etc/nagios/etc/objects /timeperiods.cfg cfg_file=/etc/nagios/etc/objects/templates.cfg # Definizioni per hostgroup e servicegroup cfg_file=/etc/nagios/etc/objects/hostgroups.cfg cfg_file=/etc/nagios/etc/objects/servicegroups.cfg# Definizioni per il monitoraggio dell'host locale (Linux) cfg_file=/etc/nagios/etc/objects/localhost.cfg # Definizioni per il monitoraggio di una macchina Windows #cfg_file=/etc/nagios/etc/objects/windows.cfg # Definizioni per il monitoraggio un router/switch #cfg_file=/etc/nagios/etc/objects/switch.cfg # Definizioni per il monitoraggio di una stampante di rete #cfg_file=/etc/nagios/etc/objects/printer.cfg # Puoi anche dire a Nagios di elaborare tutto config (con estensione .cfg #) in una directory particolare utilizzando la direttiva cfg_dir # come mostrato di seguito: cfg_dir=/etc/nagios/etc/servers#cfg_dir=/etc/nagios/etc/printers #cfg_dir=/etc/nagios/etc/switches #cfg_dir=/etc/nagios/etc/router . . .

Creare file per l'host e i gruppi di servizi e impostarne i diritti

# cd /etc/nagios/etc/objects/ # touch hostgroups.cfg servicegroups.cfg # chown nagios:nagios hostgroups.cfg servicegroups.cfg # chmod 664 hostgroups.cfg servicegroups.cfg

Crea directory /etc/nagios/etc/ server/ e impostarne i diritti

# mkdir /etc/nagios/etc/servers/ # chown nagios:nagios /etc/nagios/etc/servers/ # chmod 775 /etc/nagios/etc/servers/

Aggiungi a hostgroups.cfg le definizioni dei gruppi host per linux e windows server rispettivamente da localhost.cfg e windows.cfg

# nano /etc/nagios/etc/objects/hostgroups.cfg # Definisci un hostgroup opzionale per macchine Linux # Tutti gli host che usano il modello linux-server saranno automaticamente membri di questo gruppo define hostgroup( hostgroup_name linux-servers ; Il nome del gruppo host alias Server Linux ; Nome lungo del gruppo ) # Definire un gruppo host per macchine Windows # Tutti gli host che utilizzano il modello di server Windows saranno automaticamente membri di questo gruppo define hostgroup( nome_gruppo_host server-Windows ; Il nome del hostgroup alias server Windows; nome lungo del gruppo)

Poiché il percorso di windows.cfg è commentato in nagios.cfg, commentare la definizione dei gruppi host in windows.cfg non è necessario, ma in localhost.cfg è un'azione obbligatoria

# nano /etc/nagios/etc/objects/localhost.cfg . . . # Definire un gruppo host opzionale per macchine Linux #define hostgroup( # hostgroup_name linux-servers ; Il nome del gruppo host # alias Server Linux ; Nome lungo del gruppo # membri host locale ; Elenco separato da virgole di host che appartengono a questo gruppo # ) . . .

Quando viene creato un oggetto Windows Server, diventa automaticamente un membro del gruppo Windows Server. Questa azione è definita nel file templates.cfg. Affinché i server Linux rientrino automaticamente nel gruppo linux-servers, è necessario apportare le seguenti modifiche

# nano /etc/nagios/etc/objects/templates.cfg . . . # Modello di definizione dell'host Linux - Questo NON è un vero host, solo un modello! define host( name linux-server ; Il nome di questo modello host usa generic-host ; Questo modello eredita altri valori dal modello generic-host check_period 24x7 ; Per impostazione predefinita, gli host Linux vengono controllati 24 ore su 24 check_interval 5 ; Verifica attivamente l'host ogni 5 minuti retry_interval 1 ; Pianifica i tentativi di controllo dell'host a intervalli di 1 minuto max_check_attempts 10 ; Controlla ogni host Linux 10 volte (max) check_command check-host-alive ; Comando predefinito per controllare gli host Linux notification_period workhours ; Gli amministratori Linux odiano essere svegliati up, quindi notificheremo solo durante il giorno ; Si noti che la variabile notification_period viene sovrascritta da ; il valore che viene ereditato dal modello host generico! notification_interval 120 ; Rinvia notifiche ogni 2 ore notification_options d,u,r ; Invia solo notifiche per stati host specifici contact_groups admins; Le notifiche vengono inviate agli amministratori per impostazione predefinita gruppi host server linux ; Gruppi host di cui i server Linux dovrebbero essere membri registro 0 ; NON REGISTRARE QUESTA DEFINIZIONE - NON È UN VERO HOST, SOLO UN MODELLO! ). . .

Per impostare una notifica, è necessario specificare l'e-mail dell'amministratore di sistema in Contacts.cfg

# nano /etc/nagios/etc/objects/contacts.cfg . . . define contact( contact_name nagiosadmin ; Nome abbreviato dell'utente usa generic-contact ; Eredita i valori predefiniti dal modello di contatto generico (definito sopra) alias Nagios Admin ; Nome completo dell'e-mail dell'utente [email protetta] sito web ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** } . . .

# riavvio del servizio nagios

Puoi controllare l'andamento degli avvisi nel seguente modo, seleziona "Host" a sinistra nell'interfaccia web, quindi fai clic su "localhost", fai clic su "Invia notifica host personalizzata" nel menu a destra, scrivi qualsiasi cosa nel Riga "Comment" e fare clic su "Commit".

Un avviso dovrebbe essere inviato all'e-mail specificata in Contacts.cfg.


Un po' di plugin

La cartella /etc/nagios/libexec contiene i plugin installati. All'inizio dell'articolo, è stato notato che nagios riceve tutte le informazioni tramite plug-in. Ad esempio, diamo un'occhiata al tempo di attività del sistema

# /etc/nagios/libexec/check_uptime Tempo di attività OK: 0 giorno/i 3 ora/i 52 minuto/i | tempo di attività=232.000000;;;

La maggior parte dei plugin funziona solo con argomenti, ad esempio, vediamo lo stato del file di scambio di sistema

# /etc/nagios/libexec/check_swap -w 20 -c 10 SWAP OK - 100% gratuito (2044 MB su 2044 MB) |swap=2044 MB;0;0;0;2044

Ci sono due argomenti -w 20 e -c 10.

w - avviso, quando rimane il 20% di spazio libero, si verificherà un evento di avviso.

c - critico, quando rimane il 10% di spazio libero, si verificherà l'evento critico.

Ci sono anche plugin locali e "generali". Gli esempi sopra sono locali. Ad esempio, il plug-in check_swap non sarà in grado di controllare lo stato del file di paging su un host remoto, ma il plug-in check_ping può verificare la disponibilità di host sia locali che remoti

# /etc/nagios/libexec/check_ping -H localhost -w 100.0.20% -c 500.0.60% PING OK - Perdita di pacchetti = 0%, RTA = 0,04 ms|rta=0.036000ms;100.000000;500.000000;0.000000 pl= 0%;20;60;0 # /etc/nagios/libexec/check_ping -H 192.168.1.16 -w 100.0.20% -c 500.0.60% PING OK - Perdita di pacchetti = 0%, RTA = 0,27 ms|rta= 0.273000ms;100.000000;500.000000;0.000000pl=0%;20;60;0


Un po' di NRPE

NRPE - Nagios Remote Plugin Executor. Affinché nagios possa ricevere informazioni da host remoti, come l'utilizzo del disco o della CPU, viene utilizzato il plug-in nrpe. Nagios accede, tramite il plugin nrpe, a un server nrpe installato su un host linux/unix remoto. Il server nrpe esegue i plugin locali e passa le informazioni al server nagios. Importante! Il server e il plug-in nrpe devono essere della stessa versione, altrimenti potrebbero verificarsi errori.


Installazione del plug-in NRPE

Prima di installare il plug-in nrpe, è necessario installare la dipendenza

# apt install libssl-dev

È possibile scaricare l'ultima versione di nrpe dal sito Web di nagios. Vai alla directory build, scarica e decomprimi l'ultima versione di nrpe

# cd /usr/src/ # wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.1.tar.gz # tar xzvf 3.0.1.tar.gz

Andiamo nella cartella con nrpe e configure

Creiamo e installiamo il plugin nrpe

# make check_nrpe # make install-plugin

Aggiungi il supporto nrpe a /etc/nagios/etc/objects/commands.cfg

# nano /etc/nagios/etc/objects/commands.cfg . . . # Definizione del comando "check_nrpe" define comando( nome_comando check_nrpe riga_comando $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ ) . . .

Dopo le modifiche apportate, è necessario riavviare il servizio nagios

# riavvio del servizio nagios


Installazione del server NRPE

Sull'host Linux che monitoreremo, dobbiamo installare il server nrpe e i plugin.

Installa le dipendenze richieste

# apt install build-essential libssl-dev

Vai alla directory build, scarica nrpe, plugin e decomprimili

# cd /usr/src/ # wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.1.tar.gz # wget https://nagios-plugins.org/download/nagios-plugins-2.1. 4.tar.gz # tar xzvf 3.0.1.tar.gz # tar xzvf nagios-plugins-2.1.4.tar.gz

Andiamo nella directory con nrpe e configure

# cd nrpe-3.0.1 # ./configure --prefix=/etc/nagios

Costruiamo

# fai nrpe

Aggiungi un utente e un gruppo per conto del quale verrà eseguito il server nrpe

# make install-groups-users

Installiamo il server e il file di configurazione

# make install-daemon # make install-config

Installa lo script di avvio

# make install-init # systemctl enable /lib/systemd/system/nrpe.service

Andiamo nella directory con il codice sorgente dei plugin e configuriamo

# cd /usr/src/nagios-plugins-2.1.4/ # ./configure --prefix=/etc/nagios --with-nagios-user=nagios --with-nagios-group=nagios

Crea e installa plugin

# fai # fai installare

In /etc/nagios/etc/nrpe.cfg consentiremo al server nagios di ricevere informazioni sul sistema, oltre a specificare il vero nome della partizione del disco da monitorare, in un comando predefinito

Nano /etc/nagios/etc/nrpe.cfg . . . consentiti_hosts=127.0.0.1, 192.168.1.13 . . . comando=/etc/nagios/libexec/check_users -w 5 -c 10 comando=/etc/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 comando=/etc/nagios/libexec/check_disk -w 20% -c 10% -p /dev/ sda1 command=/etc/nagios/libexec/check_procs -w 5 -c 10 -s Z command=/etc/nagios/libexec/check_procs -w 150 -c 200 . . .

192.168.1.13 dovrebbe essere sostituito con l'indirizzo del tuo server nagios.
Avvia il server nrpe e controlla il suo stato

# service nrpe start # service nrpe status ● nrpe.service - Nagios Remote Program Executor Caricato: caricato (/lib/systemd/system/nrpe.service; abilitato; preimpostazione del fornitore: abilitato) Attivo: attivo (in esecuzione)


Aggiunta di un host Linux al sistema di monitoraggio

Per fare ciò, creeremo un file linux-server.cfg nella cartella dei server

# nano /etc/nagios/etc/servers/linux-serv.cfg define host( usa linux-server nome_host linux-serv alias indirizzo linux-serv 192.168.1.12 ) define service( usa generic-service nome_host linux-serv service_description Carico CPU check_command check_nrpe!check_load ) definisce il servizio( usa il servizio generico host_name linux-serv service_description Utenti correnti check_command check_nrpe!check_users ) definisce il servizio( usa il servizio generico host_name linux-serv service_description /dev/sda1 spazio libero check_command check_nrpe!check_sda1 ) define service( usa nome_host del servizio generico linux-serv descrizione_servizio Processi totali comando_controllo check_nrpe!check_total_procs ) define servizio( usa nome_host del servizio generico linux-serv descrizione_servizio Processi zombie check_command check_nrpe!check_zombie_procs )

192.168.1.12 deve essere sostituito con l'indirizzo del tuo server Linux.
La direttiva use punta al nome di un modello in templates.cfg che definisce le impostazioni predefinite. Affinché il nuovo host appaia nell'interfaccia web, è necessario riavviare il servizio nagios

# riavvio del servizio nagios

Per verificare se nrpe funziona, puoi eseguire il comando

# /etc/nagios/libexec/check_nrpe -H 192.168.1.12 NRPE v3.0.1

Per verificare un servizio specifico, è necessario aggiungere un argomento con il nome dell'assegno

# /etc/nagios/libexec/check_nrpe -H 192.168.1.12 -c check_sda1 DISCO OK - spazio libero: /var/tmp 14549 MB (85% inode=88%);| /var/tmp=2527MB;14411;16212;0;18014

Abbiamo definito il nome del controllo nel file nrpe.cfg

Comando[ check_sda1]=/etc/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1

e nel file linux-serv.cfg

Definisci servizio( usa nome_host del servizio generico linux-serv service_description /dev/sda1 Spazio libero check_command check_nrpe! check_sda1 }


Monitoraggio host Windows

Il plugin nt viene utilizzato per monitorare gli host di Windows. Per impostazione predefinita, è incluso nei plugin di base e non deve essere installato separatamente. Attraverso nt, il plugin nagios accede a NSClient++ installato sull'host Windows. NSClient++ accede a determinati moduli che gli forniscono informazioni sul sistema. NSClient++ invia le informazioni ricevute al server nogios.


Installazione di NSClient++

Su Windows host è necessario installare NSClient++. Scarica l'ultima versione ed esegui come amministratore.

Fare clic su "Avanti"

Fai di nuovo clic su "Avanti".

Scegli "Tipico"

Specificare l'indirizzo del server nagios, la password e lasciare le prime due caselle di controllo. Fare clic su "Avanti"

Fai clic su "Installa"

Fai clic su "Fine"


Aggiunta di un host Windows al sistema di monitoraggio

Per fare ciò, creeremo un file windows-serv.cfg nella cartella server

# nano /etc/nagios/etc/servers/windows-serv.cfg define host( usa windows-server host_name alias windows-serv Il mio indirizzo di Windows Server 192.168.1.33 ) define service( usa generic-service host_name windows-serv service_description NSClient++ Version check_command check_nt!CLIENTVERSION ) definisce il servizio( usa il nome_host del servizio generico windows-serv service_description Uptime check_command check_nt!UPTIME ) definisce il servizio( usa il nome_host del servizio generico windows-serv service_description Carico della CPU check_command check_nt!CPULOAD!-l 5,80,90 ) define service( usa nome_host di servizio generico windows-serv service_description Controllo_utilizzo della memoria check_nt!MEMUSE!-w 80 -c 90 ) define service( usa nome_host di servizio generico windows-serv service_description C:\ Drive Space check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 ) define service( usa generic-service host_name windows-serv service_description VMTools check_command check_nt!SERVICESTATE!-d SHOWALL -l VMToo ls ) definire il servizio (usare il servizio generico nome_host windows-serv service_description Explorer comando_controllo check_nt!PROCSTATE!-d SHOWALL -l explorer.exe )

192.168.1.33 deve essere sostituito con l'indirizzo del tuo server Windows.
Se è stata specificata una password durante l'installazione del client NSClient++, è necessario aggiungerla a commands.cfg

# nano /etc/nagios/etc/objects/commands.cfg . . . # Definizione del comando "check_nt" define comando( nome_comando check_nt riga_comando $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s MegaPass-v $ARG1$ $ARG2$ ) . . .

E riavvia il servizio nagios

# riavvio del servizio nagios


Definizione del gruppo di servizi

Un gruppo di servizi raggruppa gli host soggetti a determinati controlli di servizio. Creiamo un gruppo di servizi di carico della CPU e uniamo gli host per controllare il carico del processore.

# nano /etc/nagios/etc/objects/servicegroups.cfg define servicegroup( servicegroup_name cpuload alias CPU Load membri linux-serv,CPU Load, localhost,Current Load, windows-serv,CPU Load )

I membri del gruppo sono definiti nella direttiva sui membri secondo il principio
membri= ,,,,…,n>,n>

Per rendere disponibile il gruppo, è necessario riavviare il servizio nagios

# riavvio del servizio nagios


Posizione dei link host sulla mappa

Per impostazione predefinita, tutti gli host sulla mappa sono collegati a Nagios Process. Ci sono momenti in cui è necessario ignorare questo comportamento. Ad esempio, la connessione non dovrebbe provenire da Nagios Process, ma da un altro punto della mappa (ad esempio, una connessione al server tramite uno switch). Questo viene fatto aggiungendo la direttiva genitori alla sezione della descrizione dell'host. Per un esempio illustrativo, cambiamo la connessione Windows-serv da Nagios Process a linux-serv

# nano /etc/nagios/etc/servers/windows-serv.cfg define host( usa windows-server host_name alias windows-serv Il mio indirizzo di Windows Server 192.168.1.33 genitori linux-serv } . . .

E riavvia il servizio nagios

# riavvio del servizio nagios

Nel primo caso tutti gli host avevano una connessione con Nagios Process, nel secondo caso la connessione windows-serv parte da linux-serv.


Abilita icone

nagios ha la possibilità di abilitare le icone accanto al nome host. Le icone si trovano nella cartella /etc/nagios/share/images/logos. Puoi usare un set già pronto, puoi scaricarlo da Internet. Per abilitare la visualizzazione delle icone, è necessario aggiungere le seguenti righe a templates.cfg

# nano /etc/nagios/etc/objects/templates.cfg . . . # Modello di definizione dell'host Linux - Questo NON è un vero host, solo un modello! define host( name linux-server ; Il nome di questo modello host usa generic-host ; Questo modello eredita altri valori dal modello generic-host check_period 24x7 ; Per impostazione predefinita, gli host Linux vengono controllati 24 ore su 24 check_interval 1 ; Verifica attivamente l'host ogni 5 minuti retry_interval 1 ; Pianifica i tentativi di controllo dell'host a intervalli di 1 minuto max_check_attempts 10 ; Controlla ogni host Linux 10 volte (max) check_command check-host-alive ; Comando predefinito per controllare gli host Linux notification_period workhours ; Gli amministratori Linux odiano essere svegliati up, quindi notificheremo solo durante il giorno ; Si noti che la variabile notification_period viene sovrascritta da ; il valore che viene ereditato dal modello host generico! notification_interval 120 ; Rinvia notifiche ogni 2 ore notification_options d,u,r ; Invia solo notifiche per stati host specifici contact_groups admins ; Le notifiche vengono inviate agli amministratori per impostazione predefinita hostgroups linux-servers ; Host gruppi che i server linux sho saresti un membro di icon_image linux40.png statusmap_image linux40.gd2 registro 0 ; NON REGISTRARE QUESTA DEFINIZIONE - NON È UN VERO HOST, SOLO UN MODELLO! ) # Modello di definizione dell'host Windows - Questo NON è un vero host, solo un modello! define host( name windows-server ; Il nome di questo modello host usa generic-host ; Eredita i valori predefiniti dal modello generic-host check_period 24x7 ; Per impostazione predefinita, i server Windows sono monitorati 24 ore su 24 check_interval 5 ; Controlla attivamente il server ogni 5 minuti retry_interval 1 ; Pianifica i tentativi di controllo dell'host a intervalli di 1 minuto max_check_attempts 10 ; Controlla ogni server 10 volte (max) check_command check-host-alive ; Comando predefinito per verificare se i server sono "vivi" notification_period 24x7 ; Invia la notifica in qualsiasi momento time-day or night notification_interval 30 ; Invia nuovamente le notifiche ogni 30 minuti notification_options d,r ; Invia notifiche solo per stati host specifici contact_groups admins ; Le notifiche vengono inviate agli amministratori per impostazione predefinita gruppi host windows-server ; Gruppi host di cui i server Windows dovrebbero essere membri di icon_image win40.png statusmap_image win40.gd2 registro 0 ; NON REGISTRARE QUESTO - È SOLO UN MODELLO). . .

Riavvio del servizio nagios

# riavvio del servizio nagios

Attualmente, sempre più piccole e medie imprese stanno realizzando un'infrastruttura informatica distribuita, di cui parte integrante è il monitoraggio efficace di tutte le sue componenti per garantire un funzionamento continuo e di alta qualità. Tali soluzioni di solito hanno i seguenti requisiti non funzionali: risposta rapida agli eventi e capacità di lavorare su risorse informatiche limitate. Questo articolo descrive la possibilità di costruire un tale sistema basato su un software di monitoraggio distribuito gratuitamente - Nagios.

Breve descrizione di Nagios

Il componente principale di Nagios, il server di base, può essere distribuito su quasi tutti i server Linux/Unix. È incluso in quasi tutte le comuni distribuzioni Linux e Unix. Se necessario, puoi scaricare il codice sorgente dal sito del progetto e creare la tua versione di Nagios basata su di esso. Inoltre, insieme al pacchetto principale di Nagios, viene installata anche la relativa documentazione.

Nagios ha un'architettura modulare ed espandibile. Per aumentare le capacità di Nagios, puoi utilizzare i seguenti tipi di componenti: plugin (plugin Nagios) ed estensioni (addon Nagios).

I plugin vengono utilizzati dal processo principale di Nagios per ottenere le seguenti informazioni: tempo di risposta del nodo remoto, spazio libero sulla partizione del disco, ecc. Se non è possibile trovare un plug-in con la funzionalità richiesta, viene offerta una comoda interfaccia per creare i propri plug-in.

Il termine "addon" è stato introdotto per evitare confusione con i plug-in, poiché le estensioni vengono utilizzate per aggiungere funzionalità fondamentalmente nuove a Nagios o per integrarsi con altri prodotti esterni.

La capacità di scrivere rapidamente plug-in ha trasformato Nagios in uno strumento versatile di monitoraggio della rete. Sono disponibili plug-in per il polling dei nodi tramite SNMP, verificando la disponibilità di un nodo remoto utilizzando una varietà di protocolli di rete. Nel progetto Nagios Exchange, puoi cercare tra plug-in o estensioni già scritti o aggiungere lì un plug-in di tuo sviluppo.

L'interfaccia utente di Nagios è implementata come un'applicazione Web. Gli script CGI necessari e la configurazione del server web sono inclusi nel pacchetto base di Nagios. È inoltre presente un sottosistema di notifica che consente di informare tramite e-mail del verificarsi di situazioni di emergenza e della loro eliminazione.

La figura 1 mostra la struttura del server principale di Nagios.


La figura 2 mostra il meccanismo per eseguire i plug-in Nagios su un host remoto.


I componenti chiave nella figura 2 sono il plugin check_nrpe monitoraggio ed estensione lato nodo NRPE sull'host remoto. Tra plugin check_nrpe e NRPE- il demone stabilisce una connessione SSL crittografata, attraverso la quale nagiosd invia i comandi per eseguire i plugin e riceve i risultati della loro esecuzione. NRPE"proietta" i plugin sull'host remoto al server principale di Nagios ( nagiosd), in modo da poter eseguire qualsiasi plug-in su qualsiasi host remoto.

Per il monitoraggio remoto dei nodi Windows, puoi utilizzare l'estensione Cliente NSC++. In questo caso, di lato nagiosdè necessario utilizzare il plug-in check_nt.

Un esempio di utilizzo di Nagios

Ad esempio verrà presa una piccola impresa commerciale, che dispone di 3 punti di presenza: un magazzino, un punto vendita e un ufficio. Ogni punto di presenza ha la propria connessione all'ISP locale. Un server Linux/Unix è installato come gateway su ogni sito. Una VPN è organizzata tra tutti i siti. In ufficio, la rete intranet è 10.1.0.0/24. Disponibile - 10.2.0.0/24. Nel negozio - 10.3.0.0/24. La direzione dell'impresa ha stabilito il compito di monitorare questa infrastruttura IT.


Per fare ciò, è necessario installare il servizio su ciascuno dei server. NRPE e due di loro hanno il kit base Nagios. Questo viene fatto in modo che se uno dei server Nagios si interrompe, l'altro invierà immediatamente un messaggio al riguardo.

Per installazione nagiosd e NRPEè possibile utilizzare gli strumenti standard del sistema. Questa procedura dipende dalla piattaforma scelta e di solito non è difficile. Anche insieme a nagiosd o NRPE il set di base dei plug-in è installato. Sarà inoltre necessario installare e configurare l'interfaccia Web per visualizzare lo stato del nodo con il server Nagios installato. In alcune distribuzioni, è separato in un pacchetto separato. Infine, è necessario creare un file htpasswd con l'utente nagiosadmin definito nel file cgi.conf. Se lo desideri, puoi apportare modifiche alla configurazione e utilizzare un utente diverso al posto di questo nome.

Successivamente, puoi avviare il server Nagios e il server Web e accedere alla tua condivisione Nagios locale con il tuo nome utente e password. Finora, monitora solo un nodo localhost e mostra molti dei suoi parametri (media del carico (media del carico), utenti correnti (utenti attivi), spazio su disco (spazio su disco)). Una delle sezioni di questa risorsa contiene documentazione, in modo che non sia necessario spendere traffico Internet per accedervi. La descrizione dell'host si trova nel file localhost.cfg.


Prima di aggiungere altri nodi alla configurazione, è necessario specificare gli indirizzi e-mail dei responsabili della loro amministrazione. Questo viene fatto nel file contact.cfg. Si consiglia vivamente di scegliere indirizzi e-mail da provider di posta elettronica indipendenti. Ad esempio, puoi installare il client di posta Yandex sul tuo cellulare e specificare l'indirizzo su yandex.ru nella descrizione. Se Internet nell'ufficio in cui è installato il server di posta aziendale è disattivato, anche dopo ore, il server Nagios del magazzino informerà l'amministratore tramite un telefono cellulare.

Il Listato 1 mostra come aggiungere le informazioni di contatto al file Contacts.cfg.

Elenco 1. Aggiunta di informazioni di contatto.
define contact( nome_contatto zorin; // nome utente breve // ​​i valori predefiniti verranno ereditati dal modello di contatto generico utilizzare contatto generico; alias Alexander N. Zorin; // email nome utente completo [email protetta]; }

Successivamente, è necessario registrare i nodi che verranno monitorati in Nagios. Il Listato 2 mostra come creare una definizione di nodo warehouse nel file warehouse-gw.cfg, simile al file localhost.cfg.

Listato 2. Aggiunta di nodi a Nagios.
define host( // nome del modello utilizzato per descrivere l'host. // definendo questo host erediterà tutte le impostazioni // dichiarate nel modello host linux-server. use linux-server nome_host warehouse-gw alias warehouse display_name Contatti magazzino zorin , wearhouse-admin address 140.14.22.4 ) define service( // nome del modello usato per descrivere il servizio. use local-service ; host_name warehouse-gw service_description SSH check_command check_ssh notifications_enabled 1 ) define host( use linux-server; host_name warehouse -intra alias warehouse-intra display_name Warehouse local net contatti zorin, indirizzo warehouse-admin 10.2.0.1 ) define service( // nome del modello utilizzato per descrivere il servizio. use local-service; host_name warehouse-intra service_description SMTP check_command check_smtp notifications_enabled 1)

Nodo magazzino-gw registrato intenzionalmente due volte per tenere traccia dello stato dei servizi LAN esterni e interni. In questo esempio, il server SMTP serve solo la rete locale. I dashboard dell'interfaccia web di Nagios mostreranno due nodi magazzino-gw e magazzino-intra. Se il nodo warehouse-intra scompare e diventa solo disponibile magazzino-gw- questo significa che il canale VPN è stato disconnesso.

Alcuni plugin verranno eseguiti tramite l'estensione NRPE(carico medio - check_load, spazio su disco - check_disk, utenti correnti - check_users) per ottenere informazioni impossibili o difficili da ottenere dall'esterno del nodo. Per fare ciò, è necessario installare un plug-in check_nrpe2 sui server e sull'estensione di Nagios NRPE su tutti i server. Questo può essere fatto utilizzando strumenti di sistema standard.

Nel file di configurazione nrpe.cfg è necessario specificare l'indirizzo a cui verrà allegato NRPE-daemon e nodi fidati da cui accetterà le richieste. Per il negozio (nodo shop-gw) verranno utilizzati i seguenti parametri:

indirizzo_server=10.3.0.1 host_permessi=10.1.0.1,10.2.0.1

Traffico NRPE instradato intenzionalmente attraverso la VPN. Nodi attendibili per demone NRPE nel negozio si trovano un ufficio e un magazzino. Sui server Nagios, questi servizi verranno monitorati come mostrato nel Listato 3:

Listato 3. Configurazione del monitoraggio per un servizio remoto
define service( // nome del modello utilizzato per descrivere il servizio. use local-service; host_name warehouse-intra service_description Carica indice medio check_command check_nrpe2!-c check_load notifications_enabled 1 )

In questo caso NRPE-node demone magazzino-intra il comando viene inviato check_load. La risposta sarà il valore corrente. carico medio per questo nodo. Tieni presente che i parametri del plugin (e potrebbero essercene diversi) devono essere separati da punti esclamativi. Nell'esempio mostrato, il parametro è -c carico_di_controllo.

Così, passo dopo passo, aggiungendo nuovi nodi e parametri su di essi monitorati, si costruisce un sistema di monitoraggio altamente funzionale.

Lavorare con i plugin

I plugin sono semplici programmi o script che ricevono parametri di input quando vengono eseguiti tramite le opzioni della riga di comando e restituiscono i valori richiesti a stdout in un formato ben definito. I comandi per l'esecuzione dei plugin possono essere scritti nel file command.cfg, mentre i plugin installati con nagiosd sono già in questo file. È anche possibile registrare ciascun plug-in in un file separato.

Il Listato 4 mostra come viene descritto il plugin. check_smtp A che verifica la disponibilità del server SMTP sull'host remoto e il suo tempo di risposta.

Listato 4. Configurazione del plugin check_smtp
define comando( nome_comando check_smtp riga_comando /usr/lib/nagios/plugins/check_smtp -H $HOSTADDRESS$ )

Il percorso del plug-in è specificato in modo esplicito qui check_smtp e la necessità di aggiungere alla richiesta tramite l'opzione -ANCA indirizzo del nodo in controllo, che viene sostituito automaticamente in base alla direttiva definire il servizio sopra. Se esegui questo plugin dalla riga di comando, verranno visualizzate le seguenti informazioni:

/usr/lib/nagios/plugins/check_smtp -H 192.168.4.1 SMTP OK - 0,038 sec. tempo di risposta|tempo=0,037518s;;;0,000000

Le opzioni di avvio possono essere diverse, l'importante è aggiungerle correttamente alla descrizione del comando. Il formato di output è descritto in dettaglio nella documentazione installata con l'interfaccia Web.

Durante l'installazione NRPE-daemon, solo una piccola parte dei plugin è registrata nel file nrpe.conf, tra questi c'è il comando sopra check_load:

comando=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20

La riga sopra contiene il percorso del plugin check_load e le opzioni di avvio. Se il plugin viene eseguito senza parametri, visualizzerà un elenco di parametri validi. Ad esempio, è necessario creare un comando check_usr per NRPE, che restituirebbe informazioni sulla partizione /dev/md2 montata nel percorso /usr al server di monitoraggio. Questa funzionalità può essere implementata utilizzando un plug-in standard check_disk. Se lo esegui senza parametri, verrà visualizzata una descrizione dei parametri di partenza.

Utilizzo: check_disk -w limit -c limit [-W limit] [-K limit] (-p path | -x device) [-C] [-E] [-e] [-g group ] [-k] [ -l] [-M] [-m] [-R percorso ] [-r percorso ] [-t timeout] [-u unità] [-v] [-X tipo]

Sulla base delle informazioni fornite, puoi preparare una squadra check_usr e mettilo nel file nrpe.conf:

comando=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md2

Un'esecuzione di prova di questo comando produrrà il seguente output:

/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md2 DISK OK - spazio libero: /usr 20295 MB (86% inode=92%);| /usr=3061MB;19684;22145;0;24606

Come puoi vedere, in Nagios puoi facilmente creare plugin per eseguire una varietà di attività e collegarli al demone NRPE.

Estensioni di Nagios

Quando si discute delle capacità di Nagios, è imperativo considerare le estensioni più interessanti che migliorano notevolmente le capacità di Nagios.

estensione pnp4nagios

Per impostazione predefinita, Nagios conserva una cronologia dello stato dei parametri monitorati solo in base al loro livello di criticità (normale, avviso, critico). L'utente può vedere in quali periodi si trovava il parametro in diversi stati e qual è stato il tempo totale trascorso in questi stati per il periodo di riferimento.


Come mostrato nella Figura 5, il periodo critico è contrassegnato in rosso e i periodi di normale funzionamento sono contrassegnati in verde. Questa soluzione è adatta per parametri di tipo booleano (sì/no), ad esempio l'integrità di un array RAID. Per i parametri numerici, sarebbe più utile tenere traccia della dinamica dei cambiamenti.

Estensione pnp4nagios, ricevendo regolarmente da nagiosd valori dei parametri, salva la cronologia delle loro modifiche e genera un report in forma grafica. I grafici possono essere combinati arbitrariamente e, se necessario, convertire la pagina Web risultante in un file PDF. La Figura 6 mostra un rapporto di modifica dei parametri carico medio per un nodo specifico.

Figura 6. Pagina Web dell'estensione pnp4nagios
Conclusione

Vale soprattutto la pena notare la bassa intensità di risorse di questa soluzione. Una società utilizza Nagios per monitorare 14 nodi e 140 servizi su di essi, mentre il demone NRPE occupa 512 KB di RAM e il server nagiosd solo 140 KB di RAM. Il consumo di risorse del processore da parte di entrambi i componenti e dei loro processi figlio su una CPU Pentium-IV non supera l'1%. Tra i parametri monitorati ci sono: la temperatura dei dischi rigidi e delle schede madri, lo stato delle partizioni del disco, la dimensione delle code di posta, la velocità delle ventole, l'integrità degli array RAID e molto altro.

Come mostrato in questo articolo, il pacchetto Nagios ha requisiti di risorse estremamente bassi, è altamente personalizzabile ed è aperto a nuovi plugin ed estensioni. Per una piccola o media azienda che dispone già di almeno un server Linux/Unix, Nagios è la soluzione ideale per monitorare la propria infrastruttura IT esistente.

LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vorresti leggere La campana
Niente spam