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

Redonner vie à une Microsoft Surface RT : le guide ultime vers Linux !

Vous avez une vieille Microsoft Surface RT qui traîne dans un tiroir ? Vous savez, cette tablette de 2012 devenue inutilisable depuis l'abandon officiel de Windows RT par Microsoft ? Ne la jetez surtout pas ! Dans ma dernière vidéo, je vous montre comment transformer cet appareil, autrefois considéré comme un "presse-papier", en une tablette Linux moderne et parfaitement fonctionnelle . Pourquoi ce projet ? L'objectif est simple : transformer ce matériel pour en faire un dashboard dédié à mon système Home Assistant. En installant postmarketOS , une version de Linux spécialement conçue pour les appareils ARM abandonnés, on redonne une seconde jeunesse à cette machine . Ce que vous allez apprendre dans ce tutoriel complet : La libération du matériel : Comment réinstaller la version d'origine pour passer outre les blocages de Windows 8.1 . Jailbreak & Secure Boot : La procédure indispensable pour déverrouiller la machine et permettre l'installation d...

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

Mixer les batteries Enphase et Zendure : La solution ultime pour l'autoconsommation ?

Introduction Vous avez déjà une installation solaire équipée de micro-onduleurs Enphase , mais vous trouvez que le stockage officiel de la marque est trop coûteux ou difficile à installer en DIY ? Vous n'êtes pas seul. Aujourd'hui, je vous partage mon retour d'expérience complet sur une configuration qui intrigue beaucoup de monde : le couplage d'un système Zendure SolarFlow avec un environnement Enphase existant. Pourquoi vouloir mixer ces deux marques ? Le système Enphase est une référence en termes de fiabilité, mais l'ajout de batteries IQ Battery peut représenter un investissement lourd. À l'inverse, Zendure propose avec le SolarFlow une solution de stockage plug-and-play extrêmement flexible et souvent plus abordable. L'idée est simple : utiliser le SolarFlow comme "tampon" entre vos panneaux et vos micro-onduleurs pour stocker l'excédent de la journée et le réinjecter la nuit. Le montage : Est-ce vraiment compliqué ? Dans ma dernière ...