Partager via


SQL Server Reporting Services et System Center Configuration Manager

Créer une solution de création de rapports solide et intégrée

Steve Rachui

Pouvoir créer des rapports est essentiel pour la plupart des organisations et fournir des rapports solides sur diverses fonctions Microsoft System Center Configuration Manager (SCCM) ne fait pas exception. La création de rapports est une fonctionnalité qui n'a pas beaucoup changé entre les différentes versions de Systems Management Server et de SCCM. Avec la commercialisation de SCCM R2 toutefois, la création de rapports franchit un grand pas : la possibilité d'interfacer SQL Server Reporting Services (SSRS) et d'en bénéficier. Ce changement permet également d'utiliser les nombreuses fonctionnalités de SSRS. Comme pour toute nouvelle technologie, une courbe d'apprentissage est associée à SSRS, mais les avantages sont réels. Cet article traite de l'intégration entre SCCM et SSRS, puis décrit un exemple très simple de création de rapports dans SSRS et de publication pour une utilisation dans SCCM.

SCCM et SSRS, la combinaison parfaite

Avant la version R2, le moteur de création de rapports SCCM a connu peu de changements. La fonctionnalité de création de rapports standard, suffisante pour la plupart des fonctions, était cependant limitée, notamment lorsque les besoins de création de rapports demandaient des méthodes solides et souples de présentation graphique de données. SSRS ouvre des possibilités quasi infinies pour adapter les rapports à vos besoins spécifiques.

L'intégration de SCCM à SSRS nécessite l'installation de SCCM R2 et l'installation du composant SSRS de SQL sur le serveur SQL cible. En outre, le rôle de système de site du point Reporting Services devra être installé sur votre serveur SSRS. Cet article ne traite pas en détail de l'installation ni de la configuration de SSRS pour s'interfacer avec SCCM, mais le processus n'est pas compliqué.

Lorsque R2 est installé et que l'intégration de SSRS est configurée, il est possible de choisir le moteur de création de rapports à utiliser. La figure 1 illustre le nœud de création de rapports après l'installation de R2.

 

Figure 1 Nœud de création de rapports System Center Configuration Manager après l'installation de R2

Le nœud Rapports accède aux rapports en utilisant le moteur de création de rapports SCCM traditionnel. Le nœud Reporting Services est notre point d'accès aux rapports SSRS déployés. Développer le nœud Reporting Services, comme illustré à la figure 1, affiche le serveur configuré comme point Reporting Services avec un dossier pour inclure tous les rapports déployés sur SSRS. Si le nœud Tous les rapports est sélectionné juste après l'installation de R2 et que la configuration de SSRS est terminée, aucun rapport ne sera affiché. Des rapports peuvent être ajoutés à SSRS soit en convertissant des rapports SCCM standard au format SSRS soit en créant vos propres rapports.

La conversion de rapports standard à utiliser avec SSRS est très simple. Pour ce faire, il suffit de cliquer avec le bouton droit sur le nom du serveur hébergeant le rôle du point Reporting Service (directement sous le nœud Reporting Services illustré à la figure 1) et de sélectionner Copier les rapports dans Reporting Services comme illustré à la figure 2.

 

Figure 2 Pour convertir directement des rapports standard à utiliser avec SSRS, il suffit de cliquer avec le bouton droit de la souris.

L'Assistant qui est lancé vous guide dans le processus de conversion de tous les rapports SCCM standard ou uniquement des rapports sélectionnés pour être utilisés avec SSRS. L'Assistant collecte les informations nécessaires pour créer une source de données SSRS, pour déterminer comment gérer la sécurité SSRS – la sécurité intégrée de Windows est généralement choisie - et pour décider des rapports à convertir et à déployer sur SSRS. Lorsque l'Assistant a terminé, la conversion et le déploiement des rapports commencent. À l'issue de ces opérations, la vue Tous les rapports contient normalement des données semblables à celles que vous voyez habituellement dans les rapports SCCM standard. La figure 3 illustre la vue telle qu'elle apparaît après la conversion.

 

Figure 3 Fenêtre Tous les rapports contenant des données après conversion des rapports System Center Configuration Manager sélectionnés pour être utilisés avec SQL Server Reporting Services.

Le format d'appellation des rapports est identique à celui des rapports SCCM standard. Pour afficher un rapport, il suffit de cliquer avec le bouton droit sur le rapport et de sélectionner Exécuter. Dans le menu contextuel, outre Exécuter, est affichée l'option permettant de créer un nouvel abonnement. Cette option active une nouvelle fonction appréciée de SSRS : la possibilité de créer des abonnements pour les rapports. Comparez un abonnement SSRS à un abonnement à un journal. L'abonné à un journal s'attend à recevoir son journal en fonction d'un programme déterminé. Il en va de même pour un abonnement à SCCM/SSRS.  Sélectionner l'option Nouvel abonnement lance un Assistant permettant de configurer cette fonctionnalité. L'écran de bienvenue de l'Assistant est illustré à la figure 4. Les abonnements permettent l'exécution des rapports. Le rapport résultant est fourni automatiquement. Avec un abonnement, les rapports sont livrés dans un partage de fichiers et peuvent être affichés dans différents formats, notamment XML, Excel, PDF, TIFF et les formats de page Web.

 

Figure 4 Assistant Création d'abonnement de System Center Configuration Manager

Nous nous sommes concentrés jusque là sur l'interaction avec SSRS via la console SCCM elle-même. Faire appel à la console SCCM s'avère utile pour de nombreuses interactions avec SSRS, comme l'exécution de rapports et la création d'abonnements. Dans certains cas, cependant, il est pratique d'accéder directement au moteur de création de rapports, notamment pour les tests ou le dépannage. L'interface SSRS est traitée en détail dans plusieurs forums et n'entre pas dans le cadre du présent article. Pour accéder directement à l'interface SSRS, connectez-vous sur le serveur qui héberge SSRS, ouvrez un navigateur Web et accédez à https://localhost/reports. Vous pouvez également accéder à cette interface à distance en indiquant le nom du serveur (NetBIOS ou FQDN) à la place de l'hôte local dans l'URL indiquée.

Création de rapports SSRS pour SCCM

Jusqu'ici, nous avons expliqué comment interagir avec SSRS en utilisant des rapports SCCM standard. Avec SSRS, il est possible de créer des rapports personnalisés, ce qui, je le rappelle, n'est pas compliqué. Il existe plusieurs moyens de créer des rapports personnalisés. Le premier consiste à créer un rapport basé sur des requêtes SQL standard, un peu comme dans les rapports SCCM standard. Le deuxième consiste à utiliser des modèles. L'option permettant de créer des rapports SQL standard ou basés sur des modèles est accessible via la console SCCM. Ces modèles sont accessibles en sélectionnant Créer un rapport dans le menu contextuel illustré à la figure 2. Sélectionner Créer un rapport ouvre un Assistant, comme illustré à la figure 5.

 

Figure 5 Assistant Création de rapports de System Center Configuration Manager

La création de rapports SQL standard ou basés sur des modèles est utile, mais les options sont limitées par rapport aux possibilités de Visual Studio. Pour plus d'informations sur l'utilisation de rapports basés sur des modèles, voir le livre blanc « Création de rapports Configuration Manager 2007 à l'aide de Report Builder ». Il existe d'autres ressources concernant les modèles. Le troisième moyen est de créer des rapports personnalisés directement dans Visual Studio, lequel fournit un environnement riche et souple pour créer des rapports. Il existe une quatrième option, sujet de notre article : utiliser Report Builder 2.0. Report Builder 2.0, conçu pour SQL Server 2008, est un environnement solide permettant de créer des rapports et de concevoir des modèles de rapports utilisables avec SCCM. Report Builder 2.0 est disponible au téléchargement à l'adresse microsoft.com/downloads/details.aspx?FamilyID=9f783224-9871-4eea-b1d5-f3140a253db6&displaylang=en. Pour créer des rapports pour SQL Server 2005, Visual Studio est la meilleure option. Pour créer des rapports pour SQL Server 2008, Report Builder 2.0 ou Visual Studio peuvent être utilisés.

Indépendamment de la méthode de création utilisée, l'auteur du rapport devra bien connaître la base de données SCCM pour mener à bien son opération. L'étude de la base de données SCCM n'entre pas dans le cadre de cet article.

La suite de notre article portera sur la création d'un rapport élémentaire à l'aide de Report Builder 2.0, le déploiement du rapport résultant sur SSRS et l'exécution du rapport via SCCM.

Pour commencer, lançons Report Builder 2.0. Un écran de bienvenue semblable à celui de la figure 6 s'affiche.

 

Figure 6 Écran de bienvenue de Report Builder 2.0

L'environnement est immédiatement prêt pour la création de rapports et l'Assistant facilite le processus. Dans la zone de création du rapport, cliquez sur la zone de titre et remplacez le texte par défaut par le titre du rapport. Le titre de cet exemple de rapport est « Basic ConfigMgr Report ». Comme pour tout test, les options complètes de formatage sont disponibles dans le menu contextuel. Une fois le titre entré, il est temps de créer le rapport. Le concepteur propose deux options : créer un rapport de type table, ou matrice, ou créer un rapport de type graphique. Nous allons créer un rapport de type graphique. L'Assistant Nouveau graphique s'ouvre, comme illustré à la figure 7.

 

Figure 7 Assistant Nouveau graphique de Report Builder 2.0

La première étape consiste à créer une source de données. La source de données configure le rapport pour qu'il soit lié au serveur SQL et à la base de données appropriés sur le serveur SQL qui héberge les données utilisées par le rapport. Cliquez sur Nouveau [1105user1]. L'écran de la source de données s'affiche. Sur cet écran, donnez un titre à la source de données, indiquez la connexion à Microsoft SQL Server, puis entrez la chaîne de connexion manuellement ou via l'option permettant de la créer. La fenêtre Propriétés de la source de données s'affiche entièrement, comme celle illustrée à la figure 8.

 

Figure 8 Fenêtre Propriétés de la source de données entière dans Report Builder 2.0

La fenêtre Informations d'identification permet de configurer la manière de fournir des informations d'identification au rapport. Il est possible d'utiliser les informations d'identification de l'utilisateur Windows actif, d'utiliser un nom d'utilisateur, un mot de passe et une invite spécifiques pour les informations d'identification ou encore de n'utiliser aucune information d'identification. Ces options sont conservées uniquement lorsque le rapport est enregistré sur le serveur de rapports.

À l'issue de la configuration, sélectionnez OK pour revenir à l'Assistant. Dans l'Assistant, cliquez sur Suivant ; la fenêtre permettant d'entrer la requête à utiliser avec le rapport s'ouvre. Les options de cette fenêtre permettent de choisir d'utiliser le concepteur de requêtes en sélectionnant des tables d'intérêt spécifiques sur la vue de base de données à gauche, en important une requête existante ou en créant un texte et en entrant la requête manuellement. La possibilité de créer une requête de façon graphique avec le concepteur est intéressante, mais, dans notre exemple de rapport, nous utiliserons la requête suivante :

select           (select count(*) from v_r_system vrs           inner join v_agentdiscoveries vad           on vrs.resourceid=vad.resourceid           where vad.agentname = 'Heartbeat Discovery' and           (datediff(day, vad.agenttime, getdate())< 7))           as 'Number of agents with Heartbeat less than 7 days',           (select count(*) from v_r_system vrs           inner join v_agentdiscoveries vad           on vrs.resourceid=vad.resourceid           where vad.agentname = 'Heartbeat Discovery' and           (datediff(day, vad.agenttime, getdate()) >7))           as 'Number of agents with Heartbeat greater than 7 days'

Notez qu'une option de l'éditeur de texte permet d'indiquer si la requête est de type texte ou de type procédure stockée. Dans notre exemple, la requête est de type texte. L'utilisation de procédures stockées offre des avantages certains, notamment l'optimisation des requêtes. L'utilisation de procédures stockées n'entre pas dans le cadre de cet article. Indépendamment de la méthode choisie pour créer la requête, une bonne connaissance de la base de données SCCM est indispensable. Lorsque vous créez une requête avec la base de données SCCM, veillez à utiliser les vues et non les tables. Lorsque vous avez terminé, l'écran doit être semblable à celui de la figure 9.

 

Figure 9 Requête de type texte dans Report Builder 2.0

Sélectionnez Suivant pour continuer avec l'Assistant et choisissez le type de graphique à utiliser pour ce rapport. Histogrammes, courbes, secteurs, barres et aires comptent parmi les options disponibles. Dans notre exemple, nous utiliserons un graphique à barres. Sélectionnez cette option et cliquez sur Suivant.

L'écran suivant permet d'organiser les champs de données sur le graphique à afficher. Deux champs sont disponibles et peuvent être placés dans les sections catégories, valeurs ou séries. Dans cet exemple simple, placez les deux champs de données dans la section des valeurs et cliquez sur Suivant.

Vous constaterez que l'Assistant permet de choisir un style de rapport. Choisissez Océan et terminez l'Assistant. Lorsque vous avez terminé, le résultat doit ressembler à celui illustré à la figure 10.

 

Figure 10 Rapport complet dans Report Builder 2.0

À partir d'ici, les éléments du graphique peuvent être modifiés. Cliquez simplement sur le titre ou sur la légende du graphique pour procéder aux changements, par exemple le redimensionnement du graphique, la modification du titre du rapport, le changement de style de graphique, etc. À l'issue des modifications, sélectionnez Exécuter dans l'angle supérieur gauche du concepteur pour tester l'exécution du rapport. Après plusieurs modifications, l'exemple de rapport est semblable à celui illustré à la figure 11.

 

Figure 11 Rendu final d'un exemple de rapport créé dans Report Builder 2.0

Lorsque le rapport est terminé, il est temps de le déployer dans SSRS. Report Builder 2.0 propose deux options : enregistrer le rapport dans un fichier RDL ou le déployer directement dans SSRS. Dans notre exemple, Report Builder 2.0 servira pour le déploiement direct. Le déploiement direct à partir de Report Builder 2.0 dans SSRS nécessite de configurer l'emplacement des pages Web SSRS dans Report Builder. Un coup d'œil rapide dans l'angle inférieur gauche de la fenêtre de Report Builder permet de savoir si ce dernier connaît une instance SSRS. Si ce n'est pas le cas, cliquez sur le bouton Report Builder dans l'angle supérieur gauche de la fenêtre Report Builder et sélectionnez Options. L'écran affiché dans la figure 12 permet d'indiquer une instance SSRS.

 

Figure 12 La fenêtre Report Builder Options permet de spécifier une instance SQL Server Reporting Services.

À la fin de l'association, pour enregistrer l'exemple de rapport, sélectionnez le bouton Report Builder et enregistrez. Si l'association SSRS est correcte, la fenêtre d'enregistrement affiche les dossiers en place sur SSRS. Choisissez un dossier dans lequel enregistrer le rapport et sélectionnez OK. Lorsque vous enregistrez un rapport pour l'afficher sur la console SCCM, veillez à le placer dans le dossier SCCM racine ou dans un de ses dossiers enfants. L'exemple de rapport sera enregistré dans le dossier SampleSCCMReportProject, comme illustré à la figure 13.

 

Figure 13 Enregistrement d'un rapport dans un dossier enfant du dossier System Center Configuration Manager racine.

À ce stade, le rapport est déployé dans SSRS. Pour valider cette affirmation, ouvrez la page Web SSRS https://localhost/reports et vérifiez que le dossier de test a été créé sous ConfigMgr_<sitecode>. Toutes les parties ont été rassemblées et le rapport est désormais prêt à s'exécuter dans SSRS. La tendance dans le présent contexte serait d'ouvrir la console SCCM pour exécuter ce rapport. Avec la procédure suivie jusqu'ici, le rapport sera affiché dans la console SCCM, mais s'il est exécuté, la console se bloquera. La console SCCM gère uniquement le schéma de création de rapports SQL Server 2005, mais le rapport et toutes les options nécessaires sont accessibles directement dans la console SSRS, notamment les abonnements, la sécurité, etc. L'exécution de l'exemple de rapport dans la console SSRS donnera un écran semblable à celui illustré à la figure 14.

 

Figure 14 Console SSRS.

 

Synthèse

Le présent article a décrit en détail l'intégration entre SCCM et SSRS et les étapes nécessaires pour déployer un exemple de rapport dans SSRS. L'exemple de rapport n'a nécessité aucune entrée utilisateur et s'est appuyé sur une simple requête SQL. Les rapports peuvent être, et sont souvent, bien plus complexes, notamment avec l'utilisation de variables pour demander des informations aux utilisateurs, l'utilisation de procédures stockées, etc. En outre, il existe de nombreuses options de conception pour aider à présenter parfaitement les données.

Bien que la plupart des rapports écrits soient plus complexes que celui présenté dans cet exemple simple, il est essentiel de comprendre les exemples du présent article pour réussir l'intégration SCCM/SSRS.

 

Steve Rachui est ingénieur technicien spécialisé dans le support de gestion au sein du groupe Services du support technique Microsoft. Il assure le support de SMS depuis la version 1.2. Vous pouvez contacter Steve Rachui à l'adresse suivante : steverac@microsoft.com.

 

Contenu associé