Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Blog Technique de Romelard Fabrice

Les dernières Actualités de Romelard Fabrice (Alias fabrice69 ou F___) principalement autour des technologies Microsoft

Actualités

  • Toutes les actualités et informations sur les technologies Microsoft principalement autour de .NET et SQL Server

Archives

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]

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 7 octobre 2014 11:43 par ROMELARD Fabrice

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01