Comment observer finement le grossissement des tables de la base OperationsManager ?

Le script suivant donne l’utilisation par table

 

SELECT so.name,

8 * Sum(CASE WHEN si.indid IN (0, 1) THEN si.reserved END) AS data_kb,

Coalesce(8 * Sum(CASE WHEN si.indid NOT IN (0, 1, 255) THEN si.reserved END), 0) AS index_kb,

Coalesce(8 * Sum(CASE WHEN si.indid IN (255) THEN si.reserved END), 0) AS blob_kb

FROM dbo.sysobjects AS so JOIN dbo.sysindexes AS si ON (si.id = so.id)

WHERE 'U' = so.type GROUP BY so.name  ORDER BY data_kb DESC

 

 

Le script suivant donne la liste des alertes les plus fréquentes avec le MP "responsable" des alertes

 

select messageid, ltvalue, count(*) as Count from publishermessages with(nolock)

inner join localizedtext with(nolock)

on messagestringId = localizedtext.ltstringid

group by messageid, ltvalue

order by Count DESC

 

 

Pour faire une statistique du nombre de ligne ajoutée chaque jour dans la base

 

SELECT

DATEPART(mm,timeadded) AS 'MONTH',

DATEPART(dd,timeadded) AS 'DAY',

count(*)

from localizedtext with(nolock)

group by

DATEPART(mm,timeadded),

DATEPART(dd,timeadded)

order by

DATEPART(mm,timeadded),

DATEPART(dd,timeadded)

Opsmgr erreur Connector et HealthService Event ID 21028 et 6001

Une erreur rare mais qui m'a pris pas mal de temps a résoudre.

========

Probléme :  Vous avez les erreurs suivantes dans le journal d'événements OperationsManager

Event Type:  Error
Event Source:  OpsMgr Connector
Event Category:    None
Event ID:  21028
Description:  Performance data from the OpsMgr connector could not be collected since required registry keys could not be read, the error code was "2L".

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Et la plus part du temps vous avez aussi

Event Type: Error
Event Source:  HealthService
Event Category:    Health Service
Event ID:  6001
Description:  Performance data from the Health Service could not be collected since required registry keys could not be read, the error code was "2L".

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

La cause : Ces erreurs se produisent quand les valeurs des librairies  'OpsMgr Connector' et  'HealthService' ne sont pas enregistrées correctement ou sont corrompues. 

Resolution:

1. Stopper le  Health Service sur le systeme hebergeant l'agent.

2. Ouvrir une console de commande et naviguer jusque dans le répertoire d'installation de scom

3. Tapez lodctr MOMConnectorCounters.ini puis entrée

4. Puis taper lodctr HealthServiceCounters.ini puis entrée

5. Redémarrer  Health Service

Ça devrait résoudre le probléme.


========

Nouvel outil pour Opsmgr 2007 : GreenMachine , un must !

Tim Helton a créé un  utilitaire pour SCOM bien pratique qui peut être utilisé pour réinitialiser ou de recalculer tous les moniteurs pour un seul agent, ou pour tous les agents de votre groupe de gestion. L'outil en ligne de commande , facilite l'operation de  réinitialisation .

Cela peut être très utile si vous avez eu un cas de tempête d'alerte, et que vous voulez  tout ramener à zéro  ( dans le "vert"). L'outil  a aussi la capacité à identifier les moniteurs de type "ManualReset" et les réinitialiser ou seulement les recalculer. Enfin il affiche la plupart des données comme le fait un healthexplorer, ainsi que quelques informations supplémentaires.

Un Must Have

Liens vers la page du site de Tim Helton ici.

Description des variables Opsmgr / SCOM 2007 pour la création d’alertes , de notifications, de règles..

Compilations des informations trouvés sur différents blogs Opsmgr 2007.

Pour la description des alertes ou des notifications

Variables de description des alertes :

Pour les événements des règles :
EventDisplayNumber (Event ID):              $Data/EventDisplayNumber$
EventDescription (Description):                $Data/EventDescription$
Publisher Name (Event Source):              $Data/PublisherName$
EventCategory :                                      $Data/EventCategory$
LoggingComputer:                                  $Data/LoggingComputer$
EventLevel:                                            $Data/EventLevel$
Channel:                                               $Data/Channel$
UserName:                                            $Data/UserName$
EventNumber:                                        $Data/EventNumber$


Pour les événements des moniteurs :
EventDisplayNumber (Event ID):              $Data/Context/EventDisplayNumber$
EventDescription (Description):                $Data/Context/EventDescription$
Publisher Name (Event Source):               $Data/Context/PublisherName$
EventCategory:                                      $Data/Context/EventCategory$
LoggingComputer:                                  $Data/Context/LoggingComputer$
EventLevel:                                            $Data/Context/EventLevel$
Channel:                                               $Data/Context/Channel$
UserName:                                            $Data/Context/UserName$
EventNumber:                                        $Data/Context/EventNumber$


Pour les événements répétés des moniteurs :
EventDisplayNumber (Event ID):              $Data/Context/Context/DataItem/EventDisplayNumber$
EventDescription (Description):                $Data/Context/Context/DataItem/EventDescription$
Publisher Name (Event Source):               $Data/Context/Context/DataItem/PublisherName$
EventCategory:                                      $Data/Context/Context/DataItem/EventCategory$
LoggingComputer:                                  $Data/Context/Context/DataItem/LoggingComputer$
EventLevel:                                            $Data/Context/Context/DataItem/EventLevel$
Channel:                                               $Data/Context/Context/DataItem/Channel$
UserName:                                            $Data/Context/Context/DataItem/UserName$
EventNumber:                                        $Data/Context/Context/DataItem/EventNumber$

Pour les objets de performances des monteurs des seuils
Object (Perf Object Name):             $Data/Context/ObjectName$
Counter (Perf Counter Name):          $Data/Context/CounterName$
Instance (Perf Instance Name):        $Data/Context/InstanceName$
Value (Perf Counter Value):             $Data/Context/Value$
Moniteurs de services :
Service Name                           $Data/Context/Property[@Name='Name']$
Service Dependencies               $Data/Context/Property[@Name='Dependencies']$
Service Binary Path                   $Data/Context/Property[@Name='BinaryPathName']$
Service Display Name               $Data/Context/Property[@Name='DisplayName']$
Service Description                   $Data/Context/Property[@Name='Description']$
Moniteurs de logs :
Logfile Directory :             $Data/Context/LogFileDirectory$
Logfile name:                   $Data/Context/LogFileName$
String:                             $Data/Context/Params/Param[1]$

Règles de logs :
Logfile Directory : $Data/EventData/DataItem/LogFileDirectory$
Logfile name: $Data/EventData/DataItem/LogFileName$
String:  $Data/EventData/DataItem/Params/Param[1]$

Notifications :

$Data/Context/DataItem/AlertId$                                         The AlertID GUID
$Data/Context/DataItem/AlertName$                                   The Alert Name
$Data/Context/DataItem/Category$                                    The Alert category
PerformanceHealth,PerformanceCollection,Operations,EventCollection,
StateCollection,SoftwareAndUpdates,Alert,System,Custom,AvailabilityHealth,
ConfigurationHealth,SecurityHealth,Discovery,NotificationCategory,Maintenance
$Data/Context/DataItem/CreatedByMonitor$                      True/False
$Data/Context/DataItem/Custom1$                                     CustomField1
$Data/Context/DataItem/Custom2$                                    CustomField2
$Data/Context/DataItem/Custom3$                                    CustomField3
$Data/Context/DataItem/Custom4$                                    CustomField4
$Data/Context/DataItem/Custom5$                                    CustomField5
$Data/Context/DataItem/Custom6$                                     CustomField6
$Data/Context/DataItem/Custom7$                                     CustomField7
$Data/Context/DataItem/Custom8$                                     CustomField8
$Data/Context/DataItem/Custom9$                                     CustomField9
$Data/Context/DataItem/Custom10$                                  CustomField10
$Data/Context/DataItem/DataItemCreateTime$                          UTC Date/Time of Dataitem created
$Data/Context/DataItem/DataItemCreateTimeLocal$                  LocalTime Date/Time of Dataitem created
$Data/Context/DataItem/LastModified$                                     UTC Date/Time DataItem was modified
$Data/Context/DataItem/LastModifiedLocal$                               Local Date/Time DataItem was modified
$Data/Context/DataItem/ManagedEntity$                                  ManagedEntity GUID
$Data/Context/DataItem/ManagedEntityDisplayName$                ManagedEntity Display name
$Data/Context/DataItem/ManagedEntityFullName$                     ManagedEntity Full name
$Data/Context/DataItem/ManagedEntityPath$                            Managed Entity Path
$Data/Context/DataItem/Priority$                                               The Alert Priority Number (High=1,Medium=2,Low=3)
$Data/Context/DataItem/Owner$                                                 The Alert Owner
$Data/Context/DataItem/RepeatCount$                                       The Alert Repeat Count
$Data/Context/DataItem/ResolutionState$                                   Resolution state ID (0=New, 255= Closed)
$Data/Context/DataItem/ResolutionStateLastModified$                UTC Date/Time ResolutionState was last modified
$Data/Context/DataItem/ResolutionStateLastModifiedLocal$        Local Date/Time ResolutionState was last modified
$Data/Context/DataItem/ResolutionStateName$                             The Resolution State Name (New, Closed)
$Data/Context/DataItem/ResolvedBy$                                   Person resolving the alert
$Data/Context/DataItem/Severity$                                       The Alert Severity ID
$Data/Context/DataItem/TicketId$                                        The TicketID
$Data/Context/DataItem/TimeAdded$                                  UTC Time Added
$Data/Context/DataItem/TimeAddedLocal$                           Local Time Added
$Data/Context/DataItem/TimeRaised$                                  UTC Time Raised
$Data/Context/DataItem/TimeRaisedLocal$                            Local Time Raised
$Data/Context/DataItem/TimeResolved$                                UTC Date/Time the Alert was resolved
$Data/Context/DataItem/WorkflowId$                                    The Workflow ID (GUID)
URL de l’alerte dans la console Web
$Target/Property[Type="Notification!Microsoft.SystemCenter.AlertNotificationSubscriptionServer"/WebConsoleUrl$
Nom du MS  ou RMS
Target/Property[Type="Notification!Microsoft.SystemCenter.AlertNotificationSubscriptionServer"/PrincipalName$                
$Data/Recipients/To/Address/Address$     Nom du recipient (c’est à  dire l’alias du mail auquel est envoyé la notification)

Configuration de l'intégration Active Directory : MOMADAdmin.exe

Cette fonctionnalité repose sur l'utilisation d'un objet Active Directory du type « Service Connection Point  (SCP) utilisé par les agents pour localiser le ou les groupes d'administration auquel ils appartiennent. Pour se faire il est nécessaire de posséder la permission de lecture sur cet objet.

La création de ces objets est automatisé par l'outil en ligne de commande MOMADAdmin.exe. Il est à  noter qu'aucune modification du schéma n'est réalisée.

<path>\MOMADAdmin.exe <ManagementGroupName> <MOMAdminSecurityGroup> <RootManagementServerComputerName> <Domain>

Récapitulatif des arguments:

<MOMManagementGroupName> : Nom du groupe d'administration, un conteneur sera créer dans l'annuaire à son nom. Par défaut c'est le groupe défini lors de l'installation du serveur de base de donnée, cependant il est possible de le re-définir grâce au noud Administration de la console d'opération. Dans le cas présent le Groupe de Management s'appelle SDR

<MOMAdminSecurityGroup> : Groupe de sécurité globale (foret multi domaine) ou local (foret mono domaine). Ce groupe doit posséder les autorisations "rôle d'administrateur Operations Manager ". Utilisez le format pré-Windows 2000 du type domain\Groupe_de_securité.

<RootManagementServerComputerName> : Le serveur d'administration racine (RMS) de votre groupe d'administration au format domain\compte_d'ordinateur

<Domain>: Le domaine ou le conteneur sera crée

Par exemple avec le Management Groupe CONTOSO sur le serveur RMS01 la ligne de commande est la suivante :

C:\Program files\System Center Operations Manager 2007>MoMADAdmin.exe CONTOSO  "MONDOMAINE\SCOM_ADMIN" "MONDOMAINE\RMS01" MONDOMAINE

Une fois le container créé, il est possible de le voir dans la MMC "Active Directory Users And Computers" ainsi qu'à  l'aide d'ADSIEdit.

A la première ouverture de la console le container AD n'est pas visible.

Sélectionner View > Advanced View, à  ce moment là , les objets caches apparaissent.

Dans le container OperationsManager ont peut visualiser les objets créé par l'intégration AD.

Avec AdsiEdit il est possible de voir plus d'information. L'utilisation de cet outil permet de voir les propriétés de ces objets et donc de retrouver le serveur RMS qui a enregistré le SCP ainsi que d'autres informations intéressantes.

Pour alimenter automatiquement ce groupe il faut exécuter Agent Assignment and Failover Wizard de SCOM 2007 dans la console.

Pour plus d'informations sur cette fonctionnalité : http://blogs.msdn.com/steverac/archive/2008/03/20/opsmgr-ad-integration-how-it-works.aspx

Message d’erreur sur la base DWH

Si vous venez de supprimer ou d’ajouter un Management Pack, il est possible que la synchronisation entre les base Ops et DWH ne soit pas a jour.

Message d’erreur de type :

Data Warehouse failed to request a list of management packs that have all of their dependencies

Ou

Data Warehouse failed to enumerate database components to be deployed

Ou

Data Warehouse managed object type synchronization process failed to write data

Procéder a une mise a jour des statistiques de SQL Server

Lancer la commande suivante en tant que requête sur la base DWH : sp_updatestats