Ce Whitepaper décrit la méthodologie de développement d un rapport personnalisé au format SQL Server Reporting Service (SSRS) appliqué à System Center Operations Manager (SCOM) Whitepaper Méthodologie de création de rapports personnalisés SQL Server Reporting Services Nicolas MILBRAND MVP System Center Cloud and Datacenter Management Janvier 2014
Contents 1. Introduction... 2 2. Vue d'ensemble des possibilités offertes par Operations Manager... 4 3. La boite à outil nécessaire... 5 4. La méthodologie décortiquée... 6 4.1. Définition de la requête d extraction SQL... 7 4.2. Ajout de paramètres... 8 4.3. Conception du nouveau rapport... 9 4.4. Publication du nouveau rapport... 14 4.5. Le résultat... 18 4.6. Exemples de réalisation... 19 5. Conclusion... 20 6. Annexes : Schémas des vues des principaux Dataset de la base OperationsManagerDW... 21
1. Introduction Vous souhaitez consommer la mine d information collectée par System Center Operations Manager (SCOM), mais les rapports fournit par défaut ne réponde pas à vos besoins? Pour y parvenir, je vais vous décrire la méthodologie de création de rapports personnalisés afin d exposer les métriques et informations clés de la façon dont vous l aviez imaginé! Mais avant de commencer, il est intéressant de rappeler que l'infrastructure de reporting d Operations Manager repose comme la majorité des produits de l éditeur sur les technologies SQL Server Reporting Services (SSRS). Ainsi, une bonne connaissance de cette technologie et du langage SQL est un atout non négligeable, cependant comme vous allez le voir dans quelque minute, ce n est pas si compliqué qu il n y parait! La base de données utilisée pour l'extraction des données de reporting est la base OperationsManageDW, cette dernière est alimentée en temps réel par vos serveurs d administration. Pour vous faciliter la tâche, vous trouverez en annexe les schémas des vues les plus fréquemment utilisées, par type de données (Alertes, Évènement, État de santé et Performance)! Vue d ensemble des principaux «dataset» présents dans la base OperationsManagerDW. En complément, Operations Manager amène une fonctionnalité (facultative) appelée «ruban de configuration» étendant les capacités de Reporting Services en rendant la configuration et la navigation de vos rapports plus fluides et flexibles. Matérialisé sous la forme d un fichier au format «Report Parameter Definition Language» et d une extension.rpdl, il doit nécessairement porter le même nom que le rapport Resporting Services (extension.rdl) afin d être interprété. Attention, ce format n est guère supporté par ce dernier, ce qui signifie qu il faudra obligatoirement les exécuter de la console lourde d opérations afin d en bénéficier.
Les différents éléments de contrôle utilisables par ce bandeau sont stockés dans le pack d administration Microsoft.SystemCenter.DataWarehouse.Report.Library. Pour plus d informations, je vous invite à consulter l annexe Technet Appendix B - Parameter Values and Parameter Controls. Ruban de configuration des rapports (.rpdl)
2. Vue d'ensemble des possibilités offertes par Operations Manager Pour répondre aux besoins de reporting, System Center Operations Manager (SCOM) et SQL Server Reporting Services (SSRS) offrent quatre possibilités: 1. Les rapports génériques : Utilisation des rapports génériques disponibles nativement dans la bibliothèque de rapport nommé Microsoft Generic Report Library. Ces rapports permettent d'afficher n'importe quelles données récoltées par l'infrastructure de supervision (performance, état de santé, alerte ou événement). La limitation principale réside au niveau du formatage, en effet il est impossible d'ajouter des champs ou de modifier l'apparence de ce dernier. Concrètement les requêtes d extraction SQL sont d ores et déjà réalisées, la seule liberté se situe au niveau du paramétrage (objets, planification, etc..). 2. Les rapports liés: Cette solution consiste à créer un nouveau rapport basé sur les rapports génériques. Ainsi, il sera possible de définir de manière statique ou dynamique les paramètres de ces derniers (objets, planification, etc..). La limitation se situe également sur le formatage qui est identique au rapport générique. À noter que la majorité des rapports fournis par l éditeur sont de ce type. 3. Les modèles de rapport: Les modèles de rapport permettent de créer des rapports de toutes pièces (formatage, etc..) sans avoir de connaissance du schéma des bases de reporting ou SQL. Ces modèles sont utilisables à travers l outil SQL Report Builder. Deux modèles de rapports (performance et événement) sont disponibles avec SCOM R2. 4. Les rapports personnalisés: La création de rapport personnalisé est la solution la plus complexe, mais également la plus puissante puisqu'il est possible d'afficher n'importe quel type de données sous le format désiré. Il est nécessaire d'avoir des connaissances en SQL (extraction Select) et par conséquent, connaitre le schéma de la base de reporting. Vous l aurez deviné c est cette dernière possibilité qui sera détaillée dans cet article!
3. La boite à outil nécessaire Avant de mettre les mains dans le cambouis, assurez-vous de disposer des bons outils! SQL Server Management Studio : pour le développement et test de vos requêtes d extraction SQL. SQL Server Business Intelligence Development Studio (BIDS): permets la création de rapports au format SQL Reporting Services. Vous trouverez ces deux outils dans les sources d installation de SQL Server 2005 ou 2008. System Center Operations Manager 2007 R2 Authoring Console : disponible sur les sources d installation de notre outil de supervision favori, elle permet la création de pack d administration.
4. La méthodologie décortiquée La méthodologie de création d'un rapport personnalisé se décompose en 4 phases. 1. Définition de la requête d'extraction SQL. 2. Ajout de paramètres (condition) dans la requête d'extraction SQL 3. Création/Design du rapport 4. Publication du rapport. Les quatre phases de la méthodologie de création d un rapport.
4.1. Définition de la requête d extraction SQL Avant de commencer, prenez bien le temps de réfléchir aux éléments que vous souhaitez inclure dans ce nouveau rapport. En effet, plus vous serez avancé dans le développement et plus il sera complexe de changer quelque chose dans la définition de ce dernier! Afin d illustrer cet article, nous allons créer un nouveau rapport affichant les alertes clôturées par l un de vos opérateurs, l idée est d avoir une visibilité complète de leurs actions. La première étape consiste à extraire les données répondant au besoin identifié stocké dans la base de reporting SCOM nommé OperationsManagerDW. Dans notre exemple, le besoin consiste à récupérer des données liées aux alertes. Une bonne connaissance du schéma des vues d'alertes associées est impérative pour identifier les champs contenant les valeurs désirées, ainsi que les relations entre ces vues. Important: seules les requêtes basées sur les vues sont supportées par l'éditeur SQL Server Management Studio est l'outil permettant de créer des requêtes d'extraction. De plus, cet outil permet intègre un assistant graphique de création de requête (Query Designer). Pour répondre à ce besoin, j ai réalisé la requête suivante : Requête 1a Extraction des alertes par opérateur --Selection des champs requis (Date de création, Nom et description de l alerte) -- Traitement du résultat, par exemple les 150 premiers caractères de la description... SELECT DISTINCT alt.raiseddatetime AS [Date de Création], alt.alertname As Alerte, LEFT(alt.AlertDescription, 150) AS Description -- Jointure des vues nécessaire à l'extraction des champs FROM Alert.vAlertResolutionState ars INNER JOIN Alert.vAlert alt on ars.alertguid = alt.alertguid -- Filtrage des résultats par l utilisateur et le statut de résolution clôturé WHERE ars.statesetbyuserid LIKE 'corp\nmilbrand' AND ars.resolutionstate = '255' -- Réorganisation par Date ordre décroissant. ORDER BY alt.raiseddatetime DESC
4.2. Ajout de paramètres La seconde étape consiste à ajouter des paramètres (@ParameterName) sur les conditions nécessitant une interaction avec l'utilisateur lors de la génération du rapport. Dans notre exemple, seul le nom de l opérateur désiré devra être défini manuellement. Deux possibilités s offre à nous, soit laisser un champ de saisi ou bien proposé une liste de nom évitant d éventuelles erreurs de saisies! Pour y parvenir, nous devons légèrement modifier notre requête initiale. Requête 1b Ajout de paramètre SELECT DISTINCT alt.raiseddatetime AS [Date de Création], alt.alertname As Alerte, LEFT(alt.AlertDescription, 150) AS Description FROM Alert.vAlertResolutionState ars INNER JOIN Alert.vAlert alt on ars.alertguid = alt.alertguid -- Remplacement de la valeur corp\nmilbrand par la variable @UserName WHERE ars.statesetbyuserid LIKE @UserName AND ars.resolutionstate = '255' ORDER BY alt.raiseddatetime DESC Afin de proposer une liste d opérateur, nous utiliserons la requête d extraction suivante permettant de visualiser l ensemble des opérateurs ayant déjà clôturé une alerte. Enfin, nous avons également exclu les comptes «système» et de «résolution automatique». Requête 2 Extraction des opérateurs SELECT StateSetByUserId FROM Alert.vAlertResolutionState WHERE StateSetByUserId NOT IN ('System', 'Auto-resolve') AND ResolutionState = '255' GROUP BY StateSetByUserId
4.3. Conception du nouveau rapport Une fois que les requêtes SQL ont été réalisées, la troisième étape consiste à modéliser graphiquement les données extraites par le biais d'un rapport. L'outil SQL Server Business Intelligence Developpement Studio (version 2008 dans cet exemple) permet de créer un rapport au format SQL Server Reporting Services (extension.rdl). Créez un nouveau Report Server Project Wizard afin d être guidé par un assistant. Assistant de création de rapport SSRS. Le premier élément à définir sera la source de données (datasource) par lequel les données seront extraites. Le nom de cette source n a guère d importance à ce moment, cliquez sur Edit puis renseigner le nom de votre serveur SQL hébergeant la base de données de reporting (OperationsManagerDW par défaut).
Définition de la source de données Ensuite, copiez la requête SQL 1b contenant le paramètre @UserName. Requête SQL d extraction des alertes clôturées par opérateur. Sélectionnez le type de rapport (Tabular par exemple), spécifiez la disposition des champs de votre tableau (Detail), choisissez un style de rapport et enfin nommez-le.
Félicitation nous avons parcouru la moitié du chemin, il reste désormais à mettre tout cela en forme. Deux onglets sont disponibles dans le panneau central permettant la conception/manipulation des données (onglet Design) et la visualisation du résultat (onglet Preview). Onglet Preview : voici le résultat généré par l assistant. Comme vous pouvez le constater, l assistant a automatiquement créé notre paramètre @User Name. Cependant, gardez à l esprit qu il est possible d en ajouter et de les manipuler a votre guise. Dans cet exemple, nous allons précisément modifier ce paramètre pour permettre une sélection dynamique des opérateurs. Dans un premier temps, nous devons créer un nouveau Dataset à partir de l espace Report Data et y ajouter la requête SQL N 2 d extraction des opérateurs.
Clic droit sur le conteneur Dataset pour en ajouter un nouveau. Définition d un nouveau Dataset en utilisant la même source de données (Data source) Finalement, modifiez les propriétés du paramètre UserName en lui spécifiant de collecter les valeurs par le biais d une requête SQL depuis le Dataset créé précédemment.
Modification du Paramètre UserName (clic droit > Properties). Le résultat depuis l onglet Preview. Rendez-vous dans l onglet Design pour obtenir le formatage désiré. Retenez simplement que tout est configurable à souhait, utilisez la boite à outil fourni pour ajouter des images ou bien par exemple, le nombre de résultats retournés, etc... Onglet Design. Voici le résultat, avec l insertion du nom de l utilisateur sélectionné et du nombre total d alertes clôturées. Onglet Preview.
4.4. Publication du nouveau rapport Finalement, c est l heure de publier le fruit de votre travail! Pour y parvenir, pas moins de trois méthodes sont possibles. 1. Le déploiement directement à partir de Business Intelligence Developpement Studio (BIDS). 2. L ajout du rapport dans un pack d administration. 3. L export au format.rdl et l import dans SQL Server Reporting Services, cette méthode ne sera pas exposée. 4.4.1. Méthode 1 : Publication à travers BIDS Dans l'espace Solution Explorer, faites un clic droit sur le nom de votre projet et sélectionnez Properties. Spécifiez l'url de déploiement de votre serveur de rapport (http://%serverrapport%/reportserver) dans la le champ TargetServerURL. Enfin, faites un clic droit sur votre rapport puis Build et Deploy pour le mettre à disposition de vos utilisateurs. (Console SCOM ou via l'url du serveur de rapport SSRS)
Le rapport est visible sur le site Reporting Services. 4.4.2. Méthode 2 : Publication à travers un pack d administration SCOM L ajout d un rapport dans un pack d administration requiert plus de temps que la méthode précédente, mais procure certains avantages tels que la possibilité de les sceller, d insérer directement un «ruban de configuration» et dans l éventualité où le serveur de reporting sera réinstallé (suite à un incident par exemple), l ensemble des rapports sera automatiquement republié sur le nouveau serveur! Exécutez la console d authoring d Operation Manager R2 puis créez ou importez un pack d administration, enfin puis rendez-vous dans l espace Reporting. Faites un clic droit dans le panneau central puis nouveau rapport. Espace Reporting de la console Authoring SCOM R2. Dans l onglet General, commencez par spécifier le display name, nom qui sera affiché dans la console d opérations, une description et si vous le souhaité une Target afin de l associer à un type d objet.
Onglet General. L onglet Parameter Block permet de définir les propriétés et paramètres du ruban de configuration (facultatif). Collez ou importez dans l onglet Definition le rapport (.rdl) produit avec SQL Server Business Intelligence Developpement Studio. Onglet Definition Enfin pour que le rapport soit visible dans la console d opérations, spécifiez l option Visible à True dans l onglet Options. Finalement, vous n aurez plus qu à exporter ce nouveau pack d administration dans votre groupe d administration par le biais du menu Tools > Export MP to Management Group
Export du pack administration.
4.5. Le résultat Le nouveau rapport personnalisé est désormais visible dans l espace reporting de la console d opérations. Il ne restera plus qu à l exécuter manuellement ou de manière planifiée pour jouir de votre travail!
4.6. Exemples de réalisation
5. Conclusion À travers cet exemple simple, mais concret, vous venez d avoir un petit aperçu de la puissance et de la flexibilité de l infrastructure SQL Server Reporting Service (SSRS), l élément clé de cette solution. Pour aller encore plus loin dans le développement de rapport Operations Manager, je vous recommande fortement de lire le guide nommé OpsMgr Authoring Reporting Guide, véritable mine d information sur le sujet! Cerise sur le gâteau cette méthodologie est applicable aux autres produits de l éditeur reposant sur cette technologie, par exemple System Center Configuration Manager (SCCM). La principale limitation sera donc votre imagination! Bon développement. Nicolas MILBRAND MVP System Center Cloud and Datacenter Management Formateur MCT et Consultant Microsoft Indépendant Blog: www.opsmgr.fr Web: www.milbrand.fr
6. Annexes : Schémas des vues des principaux Dataset de la base OperationsManagerDW Annexe 1 : schéma des vues Alertes
Annexe 2 : schéma des vues Evènements
Annexe 3 : schéma des vues performances
Annexe 4 : schéma des vues états
Annexe 5 : schéma des vues Entités