Hostgroup e modelli.
I modelli ti consentono di definire le classi per i tuoi host e servizi, ad esempio "servizio normale", "servizio critico", "host a bassa priorità". Servono anche come un modo utile per dividere le responsabilità se hai più team con responsabilità diverse, quindi puoi avere un modello "host linux" e un modello "host windows", con ognuno che definisce le informazioni di contatto appropriate.
È possibile utilizzare più modelli su una singola risorsa, quindi è possibile comporre modelli appropriatamente ortogonali. Ad esempio, puoi avere
host foo {
use windows-host,normal-priority-host
...
}
che attirerebbe le informazioni di contatto (e le escalation) per il team di Windows e le percentuali e le soglie di polling per un host "normale".
I gruppi di host ti consentono di raggruppare tutti i controlli per un sottoinsieme dei tuoi host. Avere cose come "baseline-linux-hosts" che controllano il carico, lo spazio su disco, le ssh
capacità e qualunque altra cosa dovrebbe essere su ogni host che si monitora. Aggiungi gruppi come "https-server" con controlli per connettività HTTP, connettività HTTPS e date di scadenza del certificato SSL; "fileservers" con controlli di accessibilità NFS e SMB e controlli del disco forse più aggressivi; o "macchine virtuali" con controllo del corretto funzionamento degli strumenti di accessibilità della VM.
Inserisci ogni host e gruppo host nel suo file. Tale file deve contenere prima la definizione host o hostgroup, seguita dalle definizioni dei servizi ad esso applicabili.
Se usi la cfg_dir
direttiva nel tuo nagios.cfg
file, Nagios cercherà ricorsivamente attraverso quella directory. Usalo. Per un'impostazione di cfg_dir=/etc/nagios/conf.d
, è possibile avere un albero di directory come il seguente:
- /etc/nagios/conf.d/
- commands.d /
- http.cfg
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- hosts.d /
- host1.cfg
- host2.cfg
- host3.cfg
- hostgroups.d /
- hostgroup1.cfg
- hostgroup2.cfg
Tendo a creare una directory per ogni tipo di risorsa (comandi, gruppi di contatti, contatti, escalation, gruppi di host, host, gruppi di servizi, periodi di tempo) ad eccezione dei servizi, che vengono raggruppati con gli host o i gruppi di host che li utilizzano.
La struttura precisa può variare in base alle esigenze dell'organizzazione. In un lavoro passato, ho usato le sottodirectory hosts.d
per ogni sito diverso. Nel mio lavoro attuale, la maggior parte delle definizioni degli host Nagios sono gestite da Puppet, quindi esiste una directory per host gestiti da Puppet e una separata per host gestiti a mano.
Si noti che quanto sopra suddivide anche i comandi in più file, generalmente per protocollo. Così, il nrpe.cfg
file potrebbe avere i comandi check_nrpe
e check_nrpe_1arg
, mentre http.cfg
potrebbe avere check_http
, check_http_port
, check_https
, check_https_port
, e check_https_cert
. 1
In genere non ho un numero enorme di modelli, quindi di solito ho solo un hosts.d/templates.cfg
file e un services.d/templates.cfg
file. Se li usi più pesantemente, possono andare in file con nomi appropriati in una templates.d
directory.
1 Mi piace anche avere un check_http_blindly
comando, che è fondamentalmente check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
; restituisce OK anche se ottiene un codice di risposta 403.