powershell incl nagios NSClient++

Om powershell scripts te kunnen gebruiken icm met nagios moeten en aantal dingen aangepast worden.

Hierbij ga ik uit dat nrpe al werkt zo niet lees dan eerst hier hoe je nrpe moet installeren.

De stappen om powershell te laten werken

pas de NSC.ini aan

en voeg in de NSC.ini een check to zoals onderstaand voorbeeld. (let vooral op het - teken na het woord command

check_externalip=cmd /c echo scripts\getip.ps1 | powershell.exe -command -

maak een powershel script in de folder scripts of andere plaats.

Hier een voorbeeld script

$goodip="83.83.5.193"

$ip = (new-object System.Net.WebClient).DownloadString("http://whatismyip.com/automation/n09230945.asp")

if ($ip -like $goodip)

{

write-host "The external ip is: $ip"

exit 0

}

else

{

write-host "The external ip is: $IP and not $goodip"

$host.SetShouldExit(2)

exit

}

Let vooral op de regels

$host.SetShouldExit(2)

exit

deze zorgen ervoor dat powershell afsluit met een error code 2, default error codes zijn namelijk 0 of 1 en nagios verwerkt de codes als volgd

0 Ok

1 Warning

2 Crittical

Pas nu de NSClient++ aan deze moet onder het local account werken en er moet een vinkje staan bij Allow service to interact with desktop.

nu zou je het voorbeeld script moet kunnen testen door op je nagios server het volgende commando te geven

<server>/usr/local/nagios/libexec # ./check_nrpe -H <windows server met het script> -c check_externalip -t 40

Als dit werkt kun je het script aan de nagios omgeving toevoegen.

voorbeeltje

define service{

use generic-service

host_name <je windows server in nagios>

service_description Public IP

check_command check_nrpe!check_externalip

}