monitoring pane p

MVP Operations Manager

MVP Blog Badge.

Authoring pane p
Administration pane p

Mise à jour 6.0.7822.0 du pack d’administration Active Directory

Microsoft a mis à jour le pack d’administration pour Active Directory.

Cette nouvelle version n’apporte aucune nouvelle fonctionnalité mais corrige certains bugs.

Version : 6.0.7822.0

Compatibilité : Operations Manager 2007 R2, Operations Manager 2012

Téléchargement : System Center Monitoring Pack for Active Directory

Création d’une règle sur répétition d’un mot clé dans un journal texte

J’ai récemment eu une demande d’un client qui souhaitait analyser des journaux de type texte générés par des applications.

Pour réagir à un mot clé dans un fichier texte, il suffit de créer une règle de type ‘Generic Text Log (Alert). Ce type de règle est basé sur un DataSource de type System.applicationLog.GenericLog.FilteredEventProvider.

image

Cette règle suffit pour réagir à une occurrence d’un mot clé, mais ce client souhaitait dans certains cas consolider des évènements et générer une alerte lors de la répétition d’un mot clé dans un laps de temps donné.

Ce cas est prévu nativement par Operations Manager, mais uniquement pour un moniteur :

clip_image004

Dans ce cas, un moniteur est inapproprié étant donné que l’application ne génère aucun évènement lors d’un retour à une situation normale.

L’idée est donc de créer une règle de génération d’alerte qui utilise les mêmes mécanismes que les moniteurs de type Repeated Event Detection’.

Ce cas n’étant pas prévu dans la console Operations Manager, il faut donc recourir à l’Authoring Console.

Pour rappel, les éléments de supervision (règles, moniteurs, tâches, …) gérés par le service System Center Management (HealthService) sont des workflows composés de plusieurs modules.

La console Operations Manager expose des workflows prédéfinis alors que l’Authoring Console permet de créer ses propres workflows.

De base, un moniteur est composé d’un module DataSource suivi d’un module Condition Detection :

clip_image005

alors qu’une règle de génération d’alerte est généralement composée d’un module DataSource, suivi d’un module Condition Detection puis d’un module Write Action :

clip_image006

Dans le cas du moniteur de type Repeated Event Detectionpour des évènements d’un journal de type ‘texte générique’, le workflow est le suivant :

clip_image008

Il suffit donc de créer un type de règle personnalisé en utilisant le même principe et en ajoutant le module Write action pour générer l’alerte.

C’est en fait un peu plus complexe. En effet, le module System.ConsolidatorCondition ne fait que réagir à un nombre d’occurrences d’un flux de données identiques provenant du module DataSource en amont. Ce module de consolidation ne filtre pas les données (même s’il peut le faire sur certains champs d’un évènement d’un journal Windows).

Le filtrage des lignes d’un journal texte est effectué par le module DataSourceSystem.applicationLog.GenericLog.FilteredEventProvider’ qui est lui-même un module composite.

Ce module composite est composé d’un module DataSourceSystem.ApplicationLog.GenericLogReader’ qui prend en argument le chemin d’accès et le nom du fichier à analyser et renvoie les données issues du journal vers un module Condition DetectionSystem.ExpressionFilter’ qui permet de filtrer les évènements souhaités. Le module DataSource fournit une donnée de type ‘System.ApplicationLog.GenericLogEntryData’. Le module Condition DetectionSystem.ExpressionFilter’ est capable de traiter n’importe quel type de donnée et ne modifie pas le format. Pour faciliter le traitement de l’information, la donnée en sortie est transmise à un autre module Condition Detection de type ‘System.Event.GenericDataMapper’ afin d’être normalisée dans un format System.EventData et permettre le stockage dans la base de données Operations Manager ainsi que dans le Data Warehouse.

Le workflow d’un moniteur de type Repeated Event Detectionpour des évènements d’un journal de type ‘texte générique’ est donc finalement le suivant :

clip_image010

Pour créer une règle qui réagit à la répétition d’un évènement dans un journal de type texte, il faut donc reprendre le même workflow et remplacer l’étape State Change du moniteur par un module Write Action pour créer l’alerte. Le Workflow sera le suivant :

clip_image012

Il est possible de faire cela dans l’Authoring Console en créant directement une Custom Rule mais il vaut mieux d’abord créer des modules DataSource et Condition Detection composites afin de permettre le remplacement des paramètres par des overrides.

Exemple

Pour l’exemple, j’ai installé un Proxy Squid sur le disque D: d’une machine. Ce proxy journalise les accès Web dans le journal D:\squid\var\logs\access.log.

Nous allons pouvoir tester la répétition d’évènements en détectant un grand nombre de demandes de rafraîchissement forcées (ce qui se produit sur Internet Explorer en appuyant sur CTRL+F5) dans un court laps de temps.

Dans ce cas, Squid indique dans son journal access.log une demande de type TCP_CLIENT_REFREH_MISS :

clip_image014

Donc, voici comment créer une règle qui va analyser le journal access.log et générer une alerte s’il y a 10 occurrences ou plus du terme TCP_CLIENT_REFREH_MISS  dans un laps de temps de 5 minutes.

Mise en œuvre

Dans l’Authoring Console, créer un pack d’administration vide :

clip_image016

Dans Type Library/Module Types/DataSources, créer un nouveau DataSource composite :

clip_image018

Nommer le module et aller sur l’onglet Configuration Schema :

clip_image020

Dans l’onglet Configuration Schema, il va falloir créer les variables qui seront utilisées dans le module et dans les paramètres sur lesquels il sera possible de faire des overrides.

Le module System.applicationLog.GenericLog.FilteredEventProvider requiert plusieurs paramètres :

- Le répertoire qui contient les journaux

- Le nom du journal (peut accepter des wildcards)

- L’utilisation de l’encodage UTF8

- L’expression recherchée

- L’opérateur

Dans cet exemple, nous allons laisser le codage par défaut et fixer le type d’opérateur sur ‘Matches Regular Expression’. Il faut donc définir des variables pour les autres paramètres.

Dans Simple Configuration Schema, cliquer sur Add et ajouter la première variable :

clip_image022

Vérifier que le type est bien string et créer les 2 autres variables :

clip_image024

Aller sur l’onglet Overridable Parameters et ajouter les trois variables :

clip_image026

On peut noter la syntaxe pour faire appel à ces variables : $Config/[VariableName]$

Dans l’onglet Member Modules, il faut maintenant ajouter le DataSource d’origine System.applicationLog.GenericLog.FilteredEventProvider :

clip_image028

La boîte de dialogue de configuration du module apparaît. Afin d’éviter de saisir le code XML, il faut cliquer sur le bouton Configure. Il faut ensuite entrer le nom des variables créées à l’étape précédente dans les champs Directory et Pattern :

clip_image030

Il faut maintenant cliquer sur l’onglet Expression pour continuer la configuration puis cliquer sur Insert pour ajouter une expression. Dans Parameter Name, on indique Params/Param[1] qui est le seul paramètre de ce type de module et qui désigne la ligne du journal en cours de traitement. On fixe l’opérateur à Matches Regular Expression et on utilise notre variable $Config/Expression$ :

clip_image031

Valider ensuite la configuration et sélectionner Module Output comme module suivant :

clip_image032

La configuration du DataSource composite est terminée. On peut maintenant procéder à la création du module Condition Detection composite. Pour cela, il faut aller dans Type Library/Module Types/Condition Detection et créer un nouveau module composite :

clip_image034

Nommer le module et cliquer sur l’onglet Configuration Schema. Ici, nous allons créer les variables pour indiquer le laps de temps d’analyse et le nombre d’évènements qui constitue le seuil d’alerte. Ces variables doivent être du type Integer :

clip_image036

De la même façon que pour le module DataSource, il faut ajouter ces deux variables dans l’onglet Overridable Parameters :

clip_image038

Il faut ensuite aller dans l’onglet Member Modules et ajouter le module Condition detection System.ConsolidatorCondition :

clip_image040

La boîte de dialogue de configuration du module apparaît. Cliquer sur le bouton Configure et sélectionner le mode Trigger On Count, Sliding puis cliquer sur OK :

clip_image042

Ensuite, on peut remplacer l’intervalle et le nombre d’évènements par les variables créées à l’étape précédente :

clip_image044

Pour terminer ce module, il faut valider la configuration et sélectionner Module Output comme module suivant :

clip_image046

Avant de valider le module, aller dans l’onglet Options pour valider l’option Stateful :

clip_image048

Maintenant que les modules DataSource et Condition Detection sont prêts, il faut procéder à la création de la règle personnalisée.

Dans Health Model/Health Model/Rules, créer une nouvelle Custom Rule :

clip_image050

Nommer la règle et cibler la classe Windows Operating System. Dans Options, mettre enabled à false car on ne veut pas appliquer cette règle à tous les serveurs. Elle sera activée pour certains serveurs par un override :

clip_image052 clip_image053

Dans l’onglet Module, ajouter le module Datasource ‘Filtered Application Log DataSource’ créé précédemment :

clip_image055

Cliquer ensuite sur Edit pour saisir les valeurs par défaut pour les paramètres. Ces valeurs seront adaptées au contexte par un override :

clip_image057

On peut ensuite procéder de la même façon pour le module Condition Detection :

clip_image059

clip_image061

Enfin, on ajoute le module Write Action standard System.Health.GenerateAlert et on paramètre l’alerte (Edit puis Configure):

clip_image063

clip_image065

Dans cet exemple, j’utilise la variable $Data/Context/DataItem/Params/Param[1]$ à la place de la variable par défaut $Data/Context/DataItem/EventDescription$ qui n’a de sens que pour un évènement en provenance d’un journal structuré comme le sont par exemple les journaux Windows. Cela permet d’ajouter dans le texte de l’alerte la ligne du journal.

On peut noter que cette fois, cette variable est préfixée par /Context/DataItem. Lors de la création du DataSource, il a suffi d’indiquer Params/Param[1] dans l’écran de configuration. Dans le fichier XML, cette variable est en fait référencée sous la forme $Data/Params/Param[1]$ qui indique qu’il s’agit d’une donnée locale. Dans le cas de l’utilisation de cette même donnée pour son affichage dans la description de l’alerte, on ajoute /Context/DataItem pour préciser qu’il s’agit d’une variable en provenance du flux de données fourni par le module précédant le module Write Action.

On peut maintenant valider la création de la règle, sauvegarder le pack d’administration et l’importer dans Operations Manager :

clip_image067

Tests

Une fois le pack d’administration importé, il faut faire un override pour activer la règle pour le serveur concerné et indiquer les paramètres :

clip_image069

Dans ce cas, pour tester la règle, il suffit de paramétrer son navigateur pour qu’il utilise le proxy Squid, se rendre sur la page du meilleur moteur de recherche du monde (http://www.perdu.com) et appuyer sur CTRL-F5 plus de 20 fois en une minute.

Dans le pack d’administration en exemple, il y a une règle qui génère une alerte warning pour chaque occurrence en plus de la règle de consolidation.

clip_image071

clip_image073

clip_image075

Attention, si vous donnez comme paramètres 10 évènements en 20 minutes, le décompte du temps commence lors du premier évènement et se termine 20 minutes plus tard. Donc, si vous générez 15 évènements en une minute, l’alerte consolidée n’apparaîtra que 20 minutes après le premier évènement.

Ceci est lié au fait que nous utilisons la méthode de fenêtre glissante OnNewItemTestOutputRestart_OnTimerSlideByOne mais le module de consolidation comporte d’autres méthodes que vous pouvez trouver dans le document de référence des modules : Operations Manager 2007 R2 Management Pack Module Reference.

Vous pouvez télécharger le pack d’administration montré en exemple ici : RepeatedEvents.TestMP.

Retrouvons-nous lors des Techdays 2012 à Paris

Retrouvons-nous lors des Techdays 2012.

01_logo02_dates04_palaisdescongres03_speaker

J’aurai le plaisir de co-animer, avec mes deux compères Jean-Marie Savin et Jean-François Bérenguer,  deux sessions sur Operations Manager 2012 le 08/02 :

- Vue d’ensemble d’Operations Manager 2012 le 08/02 de 14h30 à 15h30

- Déploiement et migration Operations Manager 2012 le 08/02 de 17h30 à 18h30

Renouvellement MVP

J’ai le plaisir de vous annoncer que j’ai été renouvelé MVP dans la catégorie System Center Cloud and Datacenter Management qui regroupe maintenant tous les MVPs sur les produits de la gamme System Center.

Cours de développement de packs d’administration

Je vais prochainement animer un cours sur le développement de packs d’administration Operations Manager 2007. Ce cours sera basé sur le cours MOC :

Course 50216: System Center Operations Manager 2007: Advanced Configuration and Administration

Au menu :

  • Architecture interne d’Operations Manager
  • Fonctionnement du Health Engine
  • Troubleshooting
  • Mise en place d’un atelier de développement
  • Présentation de l’Authoring Console
  • Conception d’un pack d’administration
  • Création de rapports

Lieu : LANEXPERT, Genève.

Dates : du 16 au 18 Novembre 2011.

Il reste des places et donc, si vous êtes intéressé : Inscription  http://www.lanexpert.ch/Default.aspx?tabid=24&catid=0&sortOrder=2&HideTr=3&planId=797

Operations Manager 2007 R2 supporte SQL Server 2008 R2 SP1

On dirait que tout est dans le tire !

SQL Server 2008 R2 SP1 peut maintenant être utilisé pour installer les bases de données d’Operations Manager 2007 R2.

Un nouveau pack d’administration pour SCCM 2007

On n’osait plus y croire, mais pour faire suivre à de nombreuses remontées d’informations vers le support et vers l’équipe produit, Microsoft a publié une nouvelle version du pack d’administration pour SCCM 2007. C’est l’équipe Sustained Engineering qui s’y est collée.

Pack d’administration : System Center Monitoring Pack for Configuration Manager 2007 SP2

Version : 6.0.6000.3

Compatibilité : Operations Manager 2007 R2 ou Operations Manager 2007 SP1 avec le hotfix KB971541

Téléchargement : System Center Monitoring Pack for Configuration Manager 2007 SP2

Description:

Cette nouvelle version corrige les principaux problèmes rencontrés avec la version précédente :

  • Les règles de consolidations d"’évènements ont été désactivée par défaut. Cela évite une partie de la pollution.
  • Résolution du problème de pollution des tables localizedtext.
  • Meilleur support de la détection des composants SCCM sur des OS 64-bit.
  • Détection de la hiérarchie des sites même si certains serveurs sont indiqués avec un nom NETBIOS.
  • Enfin! Les moniteurs, règles et vues sont publics :
    image
  • Enfin! Il est possible de modifier la sévérité et la criticité de toutes les alertes.
  • Les scripts qui ciblent les serveurs de bases de données de site récupèrent les données horaires depuis l’instance SQL. Ce problème était à l’origine de fausses alertes.

 

Voilà pour le bon côté des choses. Par contre, ce pack d’administration est toujours issu d’une conversion du pack d’administration de MOM 2005 (c’est un peu le dernier des Mohicans).  La manipulation des objets est plus lourde que pour un pack natif et, par exemple, il ne permet pas facilement d’exploiter des rapports de disponibilité.

On peut quand même féliciter l’équipe Sustained Engineering pour avoir su se substituer à l’équipe produit et répondre aux attentes des clients.

Même si cette version reste très perfectible, elle permet plus facilement d’intégrer des processus industriels grâce à la visibilité publique des objets et à la possibilité de maîtriser la criticité et la sévérité de chaque alerte.

Pour finir, une petite note importante : La documentation semble indiquer que ce pack d’administration ne peut superviser que SCCM 2007 SP2. Il n’en est rien et il est possible de superviser SCCM 2007 SP1 avec une petite limitation : Si des serveurs SCCM 2007 SP1 sont installés sur des systèmes d’exploitation 64-bit, les règles basées sur des compteurs de performance ne fonctionneront pas.

 

Operations Manager et Collation SQL Server

J’ai eu à nouveau l’occasion récemment d’être confronté à un problème sur un serveur Operations Manager 2007 dont la base de données n’avait pas été installée selon une configuration supportée.

On ne le dira jamais assez : Le seul ordre de tri supporté pour les bases de données Operations Manager 2007 (Cela vaut aussi pour Operations Manager 2012) est SQL_Latin1_General_CP1_CI_AS.

Vous pouvez vérifier l’ordre de tri de la base de données OperationsManager dans ses propriétés:

image

 

Lors de son installation, SQL Server propose un ordre de tri par défaut en fonction des réglages régionaux. Il faut donc systématiquement vérifier l’ordre de tri au moment de l’installation.

Si un mauvais ordre de tri est choisi, vois observerez des problèmes d’insertion de données ou lors de l’exécution de rapports. Le seul moyen de régler le problème sera alors de réinstaller Operations manager.

image

 

Quels sont les problèmes que pose un mauvais ordre de tri ? Principalement des problèmes liés aux conflits d’ordres de tri. Cela peut arriver lors de requêtes UNION entre deux bases ou au sein d’une même base lorsque qu’un ordre de tri particulier est spécifié dans la requête.

Un exemple d’erreur remonté par SQL Server dans ce cas est : “Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation”.

Pour en savoir plus sur les conflits d’ordre de tri, je vous invite à consulter le blog de Kimberly L. Tripp.

Avec Operations Manager, cette mauvaise configuration peut se traduire par des problèmes lors de l’exécution de rapports. C’est notamment le cas avec le pack d’administration d’Exchange 2010 :

image

Operations Manager remonte une erreur lorsqu’un workflow tente d’insérer des données dans le datawarehouse :

Log Name: Operations Manager
Source: Health Service Modules
Date: 05/04/2011 15:38:04
Event ID: 31552
Task Category: Data Warehouse
Level: Error
Keywords: Classic
User: N/A
Computer: RMS.uk
Description:
Failed to store data in the Data Warehouse.
Exception ‘SqlException’: Sql execution failed. Error 777971002, Level 16, State 1, Procedure StandardDatasetAggregate, Line 424, Message: Sql execution failed. Error 468, Level 16, State 9, Procedure AvailabilityAggregate, Line 535, Message: Cannot resolve
the collation conflict
between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation.

Je le rappelle à nouveau. Choisir un mauvais ordre de tri lors de l’installation d’une instance SQL Server pour l’une des bases de données d’Operatios Manager se solde par la réinstallation complète. Attention donc, lors de l’installation de SQL Server, à bien vérifier que l’ordre de tri est SQL_Latin1_General_CP1_CI_AS.

Schéma d’une mise à jour vers Operations Manager 2012

Operations Manager 2012 arrive et il est temps pour certains de commencer à planifier le processus de migration.

Il est possible de migrer depuis Operations Manager 2007 R2 vers Operations Manager 2012. Si vous avez une version antérieure à Operations Manager 2007 R2, il faut construire une autre infrastructure en parallèle ou commencer par mettre à jour votre infrastructure de supervision vers Operations Manager 2007 R2.

Ensuite, le chemin de migration va principalement dépendre de deux considérations :

  • Tous les composants Operations Manager 2007 R2 sont-ils installés sur le même serveur ou s’agit-il d’une infrastructure distribuée ?
  • Les serveurs qui supportent les rôles de l’infrastructure sont-ils conformes au prérequis d’Operations Manager 2012 ?

Pour vous aider à comprendre le processus de migration, Microsoft met à votre disposition deux outils :

Le ‘Cumulative Update 5’ pour Operations Manager 2007 R2 est disponible

Le ‘Cumulative Update 5’ pour Operations Manager 2007 R2 (KB2495674) est disponible.

Il peut être téléchargé depuis le site de Microsoft : http://www.microsoft.com/download/en/details.aspx?id=26938

Parmi les points corrigés, on peut noter celui-ci : “Drill-through fails due to rsParameterTypeMismatch in the EnterpriseManagementChartControl” qui empêche d’accéder à certains sous rapports.

Le CU5 apporte aussi le support d’agents Operations Manager pour Linux RedHat Enterprise 6. Seul l’agent est fourni avec le CU5. Pour obtenir le management pack pour RHEL6, il faut télécharger la dernière version des packs d’administration Cross Platform : http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=18891.