Installazione di Nagios su Ubuntu Server 11,10 poi per controllare Windows ed Exchange Server-Parte 4-custom script di monitoraggio di cambio ...

da Andy Grogan il 21 Gennaio 2012 · Commenti 3 commenti

in Exchange 2010 (Generale) , Linux , Linux con Exchange , monitoraggio , Nagios , Ubuntu

Ok, devo ammettere che questa serie è stata molto divertente (anche per me comunque ~ I hanno avuto uno scoppio) - ma questa parte è forse di gran lunga la più divertente che ho avuto personalmente - in quanto significa che Ho avuto bisogno di sviluppare alcuni esempi di script PowerShell per il monitoraggio Exchange 2010 PowerShell utilizzando con Nagios!

Questo è uno dei doni reali per Nagios - come per sviluppare i vostri propri script di monitoraggio Powershell che restituiscono i valori per l'interfaccia di base Nagios significa che siete in sostanza utilizzando Nagios come un "wrapper" con il controllo che offre la flessibilità necessaria per monitorare praticamente ogni aspetto dei vostri sistemi di scambio.

Proprio come una veloce panoramica alla serie per quelli di voi che sono solo unisce a noi:

  • Nella Parte 1
    Ho spiegato come è possibile installare core Nagios 3.3.1 su un esistente server di Ubuntu 11,10 all'interno del proprio ambiente
  • Nella Parte 2
    Ho spiegato come è possibile impostare il monitoraggio di base sul primo server Windows - che si avvale della NSClient + +, ho anche spiegato come si potrebbe impostare un servizio di base "check_nt" monitoraggio
  • Nella Parte 3
    Ho spiegato come è possibile installare il demone NRPE sul vostro server Nagios - e quindi utilizzare la NSClient per eseguire uno script di base Powershell e segnalare l'uscita di nuovo nell'interfaccia Nagios

Powershell personalizzato per Exchange 2010 per l'utilizzo con Nagios

Ci sono un paio di cose fondamentali da ricordare quando si sviluppa script PowerShell personalizzati per l'utilizzo con Nagios:

  • È necessario strutturare i vostri script in modo che sempre restituire un codice di uscita che è preceduto da una Write-Host che aggiunge una descrizione agli ultimi valori restituiti (ne parleremo più avanti)
  • Se si utilizza un ambiente che ha un mix di DAG e server di base (DAG e non DAG) o per quella materia - i server che operano in più ruoli (MBX, CAS, HT) il codice degli script in modo che possano gestire l'assenza di qualsiasi specifica caratteristiche, per esempio, se si sviluppa uno script che è stato progettato per operare su server basati su DAG, è necessario codificare in logica in grado di gestire nulla caratteristiche DAG essere disponibili - come campione di vedere lo script "GetDagnfo.ps1", che è disponibile per il download qui sotto

Uscita codici PowerShell per Nagios

Come accennato in precedenza - è importante che ogni Powershell che la scrittura per l'utilizzo con rendimenti Nagios e codice di uscita.
Powershell ha la capacità di terminare l'esecuzione di un codice di uscita - questo è dimostrato qui - è possibile all'interno di script personalizzati restituisce alcun codice numerico decimale che si desidera utilizzando l'istruzione "exit".

Ma ciò detto, Nagios supporta quattro codici di exit status - che i vostri script devono essere conformi alle, questi sono i seguenti:

PowershellExitCodesForNagios

Codici di uscita 0 e 2 si riflettono all'interno dell'interfaccia principale Nagios in questo modo:

  Codice di uscita 0: 

NagiosCore024

  Codice di uscita 2: 

NagiosCore025

Ok, qual è lo script Powershell dietro il monitoraggio di backup?

Lo stesso script è piuttosto semplice, e controlla attualmente solo per il valore lastFullBackup sui database sono residenti sul server di Exchange monitorato.
All'interno dello script c'è una variabile denominata $ soglia che riflette il numero di giorni che possono decadere senza un backup completo prima che lo script restituirà un errore all'interfaccia Nagios.

 $localServerName = Get-WmiObject -Class Win32_ComputerSystem | Select Name $ThreshHold = 2 $Results = Get-MailboxDatabase -Server $localServerName .Name -Status | Select Identity,Server,LastFullBackup | where { $_ .Server -eq $localServerName .Name} foreach ( $itm in $Results ){ if ( $itm -eq $null ){ $Output = "OK: No Databases are active on this host" $NagiosResult = 0 } else { if ( $itm .LastFullBackup -eq $null ){ $lastBackupSeed = 9999 } else { $lastBackupSeed = New-TimeSpan $( $itm .LastFullBackup) $( Get-Date ) } if ( $lastBackupSeed .days -gt $ThreshHold -or $lastBackupSeed -eq 9999){ $Res = "CRITICAL: Database Backup out of Schedule: " + $itm .Identity $Output += $Res + " " $statFlag = 1 } else { $Output += "OK: Database: " + $itm .identity + " has a recent backup" + " " } } } Write-Host $Output if ( $statFlag -eq 1){ exit 2 } else { exit 0 } Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 $ LocalServerName = Get-WmiObject-Class Win32_ComputerSystem | Nome Select $ soglia = 2 $ results = Get-MailboxDatabase-Server $ LocalServerName Nome-Status |. Identity Select, Server, LastFullBackup | dove {$ _ Server-eq $ LocalServerName Name..} foreach ($ itm in $ risultati) {if ($ itm-eq $ null) {$ output = "OK: Nessun database sono attivi su questo host" $ NagiosResult = 0 } else {if ($ itm. LastFullBackup-eq $ null) {$ lastBackupSeed = 9999} else {$ lastBackupSeed = New-TimeSpan $ ($ itm. LastFullBackup) $ (Get-Date)} if ($ lastBackupSeed. giorno-gt $ $ o-soglia lastBackupSeed-eq 9999) {$ res = "CRITICAL: Backup Database di Schedule:". + $ itm Identity $ output = $ + Res + "" $ statFlag = 1} else {$ output + = " OK: Database: ". + $ itm identità +" dispone di un backup recente "+" "}}} Write-Host $ output if ($ statFlag-eq 1) {exit 2} else {exit 0} 

Impostazione script up

Come specificato nella parte 3 - ci sono 5 passi che è necessario seguire per ottenere i vostri script di monitoraggio di Exchange segnalazione nell'interfaccia Nagios - questi sono i seguenti:

  1. In Exchange Server in cui è stato installato il NSClient + +, Copia (o salvare) gli script nella NSClient cartella "Scripts" (questo dovrebbe essere in "C: \ Program Files \ NSClient + + \ Scripts").
  2. Eseguire la seguente all'interno del file NSC.ini (questo dovrebbe essere situato in "C: \ Program Files \ NSClient + + \")

    Per questo esempio useremo lo script "Exchange2010BackupMonitoring.ps1".
    All'interno del NSC.ini trovare la sezione intitolata [gestori nrpe], quindi aggiungere il seguente comando:

 check_exBackup = cmd / c echo scripts \ Exchange2010BackupMonitoring.ps1; exit ($ lastexitcode) | powershell.exe-command - 

Salvare il file e quindi riavviare il servizio "NSClient + +" di servizio all'interno di Windows Services Manager

  1. Dal server Nagios utilizzando Filezilla - scaricare una copia della commands.cfg (che si trova in / usr / local / nagios / etc / oggetti)
    Aprire entro Notepad + + e aggiungere nella definizione seguente comando
  definire il comando {
     command_name check_exbackup
     command_line USER1 $ $ / check_nrpe-H HOSTADDRESS $ $-t 120-c check_exBackup
     } 

Salvare il file e poi caricarlo di nuovo al vostro server Nagios.

  1. Dal server Nagios utilizzando Filezilla - scaricare una copia della windows.cfg (che si trova in / usr / local / nagios / etc / oggetti)
    Aprire entro Notepad + + e aggiungere nella definizione del servizio seguente per il vostro Host Exchange:
  define service {
 utilizzare generic-service
 host_name pro-Ex2010-01.prepad.local
 service_description DB Exchange Host
 check_command check_exdb
 } 
  1. Accesso al server Nagios utilizzando PuTTY e da riga di comando digitare il seguente comando:
  sudo / etc / init.d / nagios restart 

Esempi di monitoraggio script Downloads

Qui di seguito ho fornito 5 script di PowerShell di esempio che il vostro sono liberi di usare / modificare a vostro piacimento. Questi dovrebbero essere scaricato Exchange Server nelle NSCilent + + Scripts directory "C: \ Programmi \ NSClient + + \ Scripts"
Prima di usarli, è necessario assicurarsi di aver creato il servizio in questione e le definizioni dei comandi (vedi sopra).

[ Exchange2010BackupMonitoring.ps1 - 1.3 KB ]
[ Exchange2010ContentIndexMonitor.ps1 - 1 KB ]
[ GetDAGnfo.ps1 - 1 KB ]
[ GetDAGReplicationStatus.ps1 - 1 KB ]
[ GetExchangeLocalDBs.ps1 - 1 KB ]

Esempio di output all'interno di Nagios

Il seguente è un esempio di output dagli script di monitoraggio di cui sopra all'interno del mio ambiente, naturalmente, la situazione ideale è avere tutti i vostri stati di segnalazione "OK" Sorridere come potete vedere ho un problema con i backup!

NagiosCore026

In parte 5

In parte 5 sarò copre i seguenti:

  • Raggruppamento server e servizi in categorie
  • Risoluzione dei problemi
  • Esempi di servizio di cambio Files
  • Segnalazione

comments… read them below or add one } {3 commenti ... leggere sotto di loro o aggiungere uno }

Bradley Marks 31 Gennaio 2012 alle 07:08 am

Ciao Andy, grazie per questi impressionante di how-to. Sono stati loro a fare così e funzionano perfettamente. Ho solo una domanda e spero di non sto facendo di trasmettere. Vuoi fare un how-to per mostrare grafici, forse come MRTG?

Cordiali Saluti
Brad

Rispondere

Andy 31 gennaio 2012 alle 07:21 am

Hiya Brad. Sono contento che ti piace la serie. Sì, io intendo fare una parte il monitoraggio esteso - probabilmente in parte 6. Devo parte da 5 a fare dopo più un bonus spin-off due parter.
Cin cin

Rispondere

Ricky 10 aprile 2012 alle 18:42

Hey Andy!

Grazie mille per tutto il vostro lavoro in questo. Stavo cercando di configurare Nagios su Ubuntu 11.10 e trovato il vostro blog, ed è stato molto utile. Sto utilizzando Nagios per monitorare il nostro ambiente Exchange troppo, così i tuoi messaggi sono stati sorprendenti.

Io ho una domanda, come io sono nuova di scripting e non può capire. Del database di Exchange script di Repl ritorna più s "OK" per gli stessi server, e vedo nella tua schermata fa lo stesso nel proprio ambiente. Perché è così?

Grazie ancora per tutto il vostro duro lavoro! Ho seguito passo dopo passo lungo, e sei stato un grande aiuto.

Rispondere

Lascia un tuo commento

CAPTCHA Image
Cambia immagine
*

Post precedente:

Articolo successivo: