Comment superviser des métriques non-windows avec SCOM ?

Certains se posent souvent la question : "J'ai mes management packs pour Windows, la base de registre, le WMI, mais si je veux des métriques autres, je fais comment ?"

La réponse est simple, on fait un script...et on collecte à l'aide de ce script la métrique qui nous intéresse.

La première chose à savoir est comment aller récupérer en VBS la métrique.  Dans notre exemple nous choisirons d'aller chercher une valeur X dans un fichier texte. Le script est donc relativement simple. Maintenant comment insérer la valeur collectée dans la base Opsmgr ? A l'aide d'une script de collecte bien sûr.

Voici la marche à suivre :

  1. Dans l'onglet "Authoring"--> "Create a New Rule"

  2. Choisir "règles de collecte / Basé sur la détection / script (performances)"
    image
  3. Choisir le Management pack qui va héberger la règle, cliquer sur suivant.
    image
  4. Renseigner le nom de la règle, choisir la catégorie "Performance Collection"

  5. Choisir la Target (a défaut mettre Windows Server..) et désactiver la règle, elle sera activée par la suite par overrides.

  6. Sur l'onglet Schedule, choisir les fréquences d'exécution du script , donc de la collecte.
    image
     
    Dans l'onglet script taper (copier-coller )le script suivant :
' SCRIPT COLLECTE – DATE  jj/mm/yyyy

'Instantiate Opsmgr runtime scripting

Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag ()

' Instance des arguments
Set oArgs = WScript.Arguments

'Declaration des constantes events type pour le debug
Const EVENT_TYPE_SUCCESS = 4


' Declaration des constantes pour la lecture du fichier
Const ForReading = 1, ForWriting = 2

Dim oFso, Stock
Dim sPerfData

'Récupération de valeurs des arguments
'---- Chemin du fichier Argument 0
sPathFile = oArgs.Item(0)

'Procedure de recuperation de la valeur dans le fichier texte
Set oFso = CreateObject("Scripting.FileSystemObject")
Set Stock = oFso.OpenTextFile(sPathFile, ForReading)
sPerfData = Stock.ReadAll

'Opsmgr ---
'Ecriture dans EventView
Call oAPI.LogScriptEvent("DatabaseFragmentationPercent.value ",7776, EVENT_TYPE_SUCCESS ," (" & sPerfData & ").")

' Integration de la valeur dans Opsmgr
Call oBag.AddValue ("PerfData", sPerfData)

'Fermeture du propertyBag et Submit
Call oAPI.Return(oBag)

'Fermeture du fichier
Stock.Close

'**************END SCRIPT********************



image



Ensuite il suffit de fournir en argument le chemin complet du fichier



image



Exemple c:\tests\moncompteur.txt


Sur l'onglet performance Mapper :

Renseigner le type d’objet du compteur, le nom du compteur (exemple : CompteurTest1) , l'instance (mettre Null si il n'y en a pas) , et enfin la valeur récupérer dans notre script PerfData

C'est à dire $Data/Property[@Name='PerfData']$ image


Il ne reste plus qu'a activer la règle par overrides sur un groupe de serveurs ou un serveurs en particulier.

Aucun commentaire:

Enregistrer un commentaire

Les commentaires sont soumis a modération