[SharePoint 2010] Diagnostics et journalisations… Points clés

Depuis toujours dans tous les produits informatiques du monde, qu’il soit Microsoft ou non, il est nécessaire de pouvoir diagnostiquer rapidement le pourquoi du comment des erreurs survenues ou en cours, afin de permettre aux administrateurs de résoudre soit de manière temporaire, soit de manière définitive les problématiques rencontrées.

Microsoft SharePoint Server et Microsoft Foundation n’échappent pas à cette règle et il n’est pas rare de devoir mettre les mains sous le capot pour nous permettre de récupérer le maximum d’informations sur les erreurs décrites par nos utilisateurs ou lors d’opérations administratives.

Microsoft SharePoint nous offre nativement des outils pas toujours très friendly à utiliser, certes, mais ils ont au moins le mérite d’exister…. D’autres partenaires Microsoft offrent leurs propres outils plus sympathique, mais également très payant pour la plupart.

Le but de ce billet est d’essayer de faire un tour rapide des solutions que nous apporte SharePoint sur ce point particulier.

Les outils Microsoft SharePoint natifs

Les données de journalisation de Microsoft SharePoint sont regroupées en catégories et sous-catégories. Il est possible d’ajuster au mieux du besoin le niveau de journalisation par catégories ou directement par sous-catégories.

  • L’observateur d’évènements Windows

Bien trop souvent oublié à mon avis, mais indispensable…. L’observateur d’évènements de Windows. Par défaut Microsoft SharePoint journalise une partie des évènements dans celui-ci. Il tout à fait possible de personnaliser le niveau de journalisation de Microsoft SharePoint dans l’observateur d’évènement, mais par défaut un certains nombres d’évènements sont déjà inscrits dans ces journaux.

  • Les journaux Microsoft SharePoint

Les fichiers journaux de Microsoft SharePoint apportent plus de détails sur les problèmes rencontrés sur l’ensemble d’une ferme SharePoint. Néanmoins, les fichiers journaux SharePoint ne sont pas un réel plaisir en lecture, il y a beaucoup d’informations générées et l’on se retrouve vite avec des milliers de lignes à analyser….

Le niveau de journalisation dans ces fichiers est lui aussi personnalisable. Il est tout à fait possible d’activer plus de journalisation sur une catégorie ou une sous-catégorie précise pour avoir plus de détails encore.

J’avais déjà publié un billet sur les niveaux de journalisation par défaut de SharePoint il y a quelques mois, je vous invite à relire celui-ci pour en connaitre les valeurs par défaut.

Journalisation SPS

Cependant dans les environnements de production, il est indispensable de se rappeler de quelques règles de bases pour maintenir les performances et la sécurité:

    • Modifier l’emplacement de ses journaux (Par défaut sur la partition système. Cela impact de manière négative les performances)
    • Restreindre l’espace disque pour l’utilisation de ces journaux (Par défaut SharePoint n’impose pas de limite pour la journalisation) et les délais de rétentions de ces journaux
    • Utiliser la journalisation en mode ‘verbose’ avec parcimonie (un niveau de journalisation important va provoquer un impact important sur les I/O vers l’emplacement de stockage de ces journaux et sur le traitement. Pensez à revenir aux niveaux par défaut lorsque vous avez activé le mode ‘verbose’ pour une catégorie ou une sous catégorie)
    • Activer l’option ‘Protection de flux du journal des évènements’ (Event log flooding protection).  L’activation de ce paramètre vous permettra de ne pas journalisé de multiple occurrences d’un même problème. Lorsque le système détecte des évènements répétitifs, il supprime ceux-ci jusqu’à ce que le problème soit résolu.
    • Utiliser les IDs de corrélation pour faciliter la recherche des causes dans les journaux SharePoint

DiagnosticLogging SharePoint

Comment visualiser ces journaux?

Nativement???? avec le meilleur outil de visualisation qui existe…. le NOTEPAD! Non, je plaisante pour le meilleur outil de visualisation… En revanche, c’est bien le seul outil existant nativement pour visualiser le contenu de ces fichiers… Encore une fois ce n’est pas très friendly!

Les IDs de corrélation

Microsoft SharePoint 2010 utilise un mécanisme qui trace les opérations entre les demandes utilisateurs et les réponses des serveurs WFE. Ce mécanisme est appelé ‘ID de corrélation’, il permet de suivre précisément la cause d’une erreur retourné dans une page SharePoint.

L’administrateur peut ensuite récupérer la cause de l’erreur à travers les fichiers journaux de SharePoint ou directement en PowerShell:

Get-SPLogEvent|?{$_.Correlation –eq “XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX”}

XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX = ID de corrélation

Comment remettre l’ensemble des niveaux de journalisation à leurs valeurs par défaut?

Après avoir modifié les niveaux de journalisation, il est recommandé de revenir à la valeur par défaut de SharePoint. La console d’administration permet graphiquement d’effectuer cette opération, mais si vous avez modifié beaucoup de catégories ou de sous-catégories différentes, l’opération est fastidieuse. Il est donc possible d’effectuer cette opération via PowerShell. Microsoft SharePoint inclut un ensemble de CmdLet PowerShell permettant de faire un reset des niveaux de journalisation et de configurer les paramètres de diagnostic.

CmdLet Description
Set-SPDiagnosticConfig Défini les paramètres de diagnostic de la ferme
Get-SPDiagnosticConfig
Récupère les paramètres et les valeurs actuellement configuré pour le diagnostic
Get-SPLogLevel Récupère la liste et les niveaux de journalisation
Set-SPLogLevel Défini les niveaux de journalisation pour un ensemble de catégories
Clear-SPLogLevel Reset des niveaux de journalisations à leur valeur par défaut
New-SPLogFile Créer un nouveau fichier journal. Ferme le journal actuel.
Merge-SPLogFile Fusionne des fichiers journaux pour l’ensemble des serveurs de la ferme et le sauvegarde dans un fichier unique localement sur le serveur
Get-SpLogEvent Récupère le contenu du journal

Get-SpDiagnosticConfig

Get-SPDiagnosticConfig

Get-SPLogLevel

Get-SPLogLevel

Get-SPLogEvent

Get-SPLogEvent

Les données d’utilisation de Microsoft SharePoint

Microsoft SharePoint 2010 offre la possibilité de journaliser les données d’utilisation et l’intégrité de la ferme. Attention toutefois de bien se rappeler que la journalisation est consommatrice de ressources système et a un impact important sur les performances.

Pour activer la collecte des données d’utilisation, il est possible d’utiliser l’Administration centrale ou PowerShell.

Set-SPUsageService [-LoggingEnabled {1 | 0}] [-UsageLogLocation <Path>] [-UsageLogMaxSpaceGB <1-20>] [-Verbose]

Ces données d’utilisation peuvent-être personnalisées, il est notamment possible d’ajouter des compteurs de performances. Cela vous permettra de surveiller et d’évaluer les performances de votre batterie de serveur.

Add-SPDiagnosticsPerformanceCounter –Category '”Processor” –Counter “% Processor Time” –Instance “_TOTAL” –WebFrontEnd

Dorénavant vous aurez les compteurs de performances liés à l’objet de performance que vous avez ajouté dans ces données d’utilisation.

Le Developer Dashboard

Contrairement à son nom cet outil n’est pas utile qu’aux développeurs… Il fait partie intégrante du panel offert par SharePoint aux administrateurs. Il fournit des informations importantes en termes de performance. Il fournit des informations sur les composants suivants:

    • Temps d’exécution: Temps d’exécution de chaque composant sur la page
    • Pile d’appel (Call Stack): Fournit la hiérarchie des objets dans la page
    • Temps de requête base de données: Temps d’exécution des requêtes vers les bases de données de contenu
    • Temps d’exécution des composants WebParts: Fournit le temps d’exécution de chaque WebParts sur la page

Celui-ci n’est pas activé par défaut dans SharePoint, il est donc nécessaire de l’activer via la console PowerShell de SharePoint.

$DevDash=[Microsoft.SharePoint.Administration.SPWebService]::ContentService

$DevDashsetting=$DevDash.DeveloperDashboardSettings

$DevDashsetting.DisplayLevel=[Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::OnDemand

$DevDashsetting.Update()

DeveloperDashBoard

L’analyseur d’intégrité (Health Analyzer)

Microsoft SharePoint intègre un analyseur d’intégrité basé sur des règles qu’il est possible d’activer ou de désactiver. Un Best Practices Analyzer pour SharePoint. Vous pouvez ensuite consulter l’ensemble des problèmes identifiés par le système. Cela permet souvent d’être proactif et de palier à de futur problème.

Health Rules SharePoint

Les outils non Microsoft

Il existe d’autres outils, heureusement… Pour visualiser de manière plus sympathique les fichiers logs de SharePoint:

Il en existe encore d’autres biens entendu… mais ce sont ici des outils gratuits et les plus répandus à ce jour! Qui n’a pas son SharePoint Log Viewer dans sa toolbox SharePoint? Lorsque l’on fait de l’administration c’est indispensable…

Dans un autre registre, plutôt financier celui-là, il existe d’autres solutions tierces permettant de recueillir les journaux SharePoint, cependant, la plupart du temps ces outils ne font pas que cela et sont totalement intégrés dans des suites complètes de gestion et d’administration des environnements SharePoint. Tel que QUEST SOFTWARE,  AVEPOINT et bien d’autres…

Bookmark and Share

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s