Accéder au contenu principal

PowerShell: Comment mixer NAGIOS et PowerShell pour le monitoring applicatif

 Nous savons depuis longtemps que PowerShell est le langage de Scripting ultime pour les plateformes Microsoft. Cette solution nous permet de lancer des commandes complexes, aussi bien dans le monde système (par exemple, les services Windows) que dans le monde applicatif (Par exemple, la gestion de solution SharePoint).

De nombreuses entreprises utilisent aussi une solution Open Source pour le monitoring des infrastructures et NAGIOS est une référence de ce domaine. Cette solution est très modulaire et contrôle les serveurs Windows avec l’aide d’un agent installable directement sur les servers: NSClient.

Cet agent propose de nombreuses actions de surveillance de base, mais offre aussi l’activation de modules supplémentaires à travers son fichier de configuration (NSC.ini). Tout se passe par les “External Scripts” qui exigent que la ligne du “NSC.ini” soit décommentée:

  • CheckExternalScripts.dll

Une fois cette option activée, on peut développer son script PowerShell qui doit toujours renvoyer 4 valeurs possibles en EXIT:

  • 0: OK
  • 1: WARNING
  • 2: CRITICAL
  • 3: UNKNOWN

La valeur de sortie (équivalent de ERRORLEVEL) est testable sous PowerShell avec la variable: $LASTEXITCODE ou $?

Ainsi, le script peut être du format :

function Get-Check-LastExecution()
{
    [int]$ExitCode = 0
    if($myCaseResults -lt 0)
    {
        Write-Host "UNKNOWN: PowerShell Check did not work - No results"
        $ExitCode = 3
    }
    elseif($myCaseResults -lt 10)
    {
        Write-Host "OK:", $myCaseResults, " results for this test"
    }
    elseif($myCaseResults -lt 100)
    {
        Write-Host "WARNING:", $myCaseResults, " results for this test"
        $ExitCode = 1
    }
    else
    {
        Write-Host "CRITICAL:", $myCaseResults, " results for this test"
        $ExitCode = 2
    }
    return $ExitCode
}
exit Get-Check-LastExecution

Cette fonction vous laisse la place à toute votre imagination pour adapter ce code à votre besoin, du moment que vous restez dans ce cadre des 4 valeurs possibles du code retour (0, 1, 2 ou 3)

Lorsque votre script PS1 est utilisable selon votre besoin, il doit être stocké dans le sous-répertoire “scripts” de NSCClient.

Vous devez alors éditer à nouveau le NSC.INI et ajoutez la ligne dans la rubrique “[External Scripts]” :

  • check_ps_myCheckToDo=cmd /c echo scripts\myCheckToDo.ps1; exit $lastexitcode | powershell.exe -command -

Il ne reste plus qu’à ajouter cette tache dans les taches effectuées par le serveur NAGIOS et la planification adaptée, sous la forme :

  • check_by_nrpe_hostparam!MyServer.Domain!check_ps_myCheckToDo!’’

Le check sera alors ajouté dans les contrôles réguliers et permet un monitoring fin des applications selon les besoins.

Attention, le module NSCClient de la machine exécute le script sans droit réseau (local system) ce qui ppeut vous bloquer si vous tentez d’accéder à un SQL Server distant.

Romelard Fabrice [MBA]

Commentaires

Posts les plus consultés de ce blog

Série de vidéos sur le montage d'une serre horticole ACD

 Episode 1: Préparation du terrain Episode 2: Montage de la serre en elle même Episode 3: Finalisation avec le montage électrique alimentant la serre Bon visionnage Fab

Présentation des outils utiles pour l'entretien de ses haies vives

Afin de gérer les haies vives, il est nécessaire d'avoir recourt à un matériel adapté. Les solutions à batteries sont bien adaptées pour un usage personnel avec des dimensions raisonnables. Ainsi dans mon cas précis, j'utilise les outils suivants de la Gamme Ryobi 18V ONE+ électroportatif: Petit taille-haies simple mais efficace -  RYOBI OHT1855R Un modèle plus puissant qui fonctionne très bien -  RYOBI RY18HTX60A Pour les parties hautes de vos haies, voici un outil très utile -  RYOBI OPT1845 Enfin lorsque vous devez élaguer certains arbres ou certaines partie hautes de vos haies, ce dernier outil est très utile -  RYOBI OPP1820 Ces outils font parti maintenant de mon arsenal de base pour maintenir notre maison chaque saison de taille. Fab

Série de Videos sur Home Assistant intégrant la production Photovoltaïque

 Un certain nombre de vidéos sont en ligne pour intégrer sa production photovoltaïque dans Home Assistant en partant de la base. Installation de Home Assistant: On peut ensuite intégrer les composant des Micro-Onduleurs Enphase, mais aussi les batteries Enphase: Ou encore le composant de contrôle Ecojoko: Ce qui permet alors de faire des comparaisons entre les valeurs capturées: Des videos seront encore publiés dans les prochaines semaines sur différents aspects de cette solution. Fab