Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

SCOM–Impossible d’accéder aux sites de l’APM

Quelques temps après le déploiement d’une infrastructure SCOM 2012, un client a souhaité mettre en place une de ses nouvelles fonctionnalités, à savoir le monitoring applicatif (APM).

Après avoir mis en supervision quelques applications Web, nous nous sommes rendus compte que les sites permettant l’analyse de cette supervision (nommés respectivement Application Diganostics et Application Advisor) ne fonctionnaient pas : lors d’une tentative d’accès, ils renvoyaient tous deux une erreur « An error has occured : The additional error information can be found in the Windows Application Log. We apologize for any inconvenience caused by this temporary service outage. »

clip_image002

Un tour dans l’event viewer nous en apprend effectivement un peu plus :

clip_image004

Le message complet indique :

Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 01/03/2013 16:52:22
Event time (UTC): 01/03/2013 15:52:22
Event ID: b5c9f03cbae94f40b2e35d1a28651518
Event sequence: 8
Event occurrence: 1
Event detail code: 0

Application information:
Application domain: /LM/W3SVC/1/ROOT/AppAdvisor-2-130066267234915799
Trust level: Full
Application Virtual Path: /AppAdvisor
Application Path: D:\OpsMgr\WebConsole\AppDiagnostics\AppAdvisor\Web\
Machine name: BT1SVX2K

Process information:
Process ID: 2868
Process name: w3wp.exe
Account name: IIS APPPOOL\OperationsManagerAppMonitoring

Exception information:
Exception type: OleDbCommandException
Exception message: Exception has been thrown by the target of an invocation.
Command text: SELECT apm.IsInstallCompleted ()
Connection: Provider=SQLOLEDB;Server=BTCISQL03\OPSVMM;database=OperationsManagerDW;Integrated Security=SSPI;

at Avicode.AX5.Data.OleDb.OleDb.ExecuteScalar(OleDbCommand oleDbCommand)
at Avicode.Intercept.SEManager.Core.DBAccess.DB.ExecuteScalar(String query)
at Avicode.Intercept.SEManager.WebViewer.Pages.Authenticate.Page_Load(Object sender, EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Exception has been thrown by the target of an invocation.
at Avicode.AX5Base.IdentityThread.Execute(Action action)
at Avicode.AX5.Data.OleDb.OleDb.ExecuteScalar(OleDbCommand oleDbCommand)

Login failed for user ‘NT AUTHORITY\ANONYMOUS LOGON’.
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at Avicode.AX5Base.IdentityThread.ActionItem.ExecutionBody(Object actionItem)

Request information:
Request URL: http://localhost/AppAdvisor/Pages/Authenticate.aspx?ReturnUrl=/AppAdvisor
Request path: /AppAdvisor/Pages/Authenticate.aspx
User host address: ::1
User:
Is authenticated: False
Authentication Type:
Thread account name: IIS APPPOOL\OperationsManagerAppMonitoring

Thread information:
Thread ID: 15
Thread account name: IIS APPPOOL\OperationsManagerAppMonitoring
Is impersonating: False
Stack trace: at Avicode.AX5.Data.OleDb.OleDb.ExecuteScalar(OleDbCommand oleDbCommand)
at Avicode.Intercept.SEManager.Core.DBAccess.DB.ExecuteScalar(String query)
at Avicode.Intercept.SEManager.WebViewer.Pages.Authenticate.Page_Load(Object sender, EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

La partie intéressante étant Login failed for user ‘NT AUTHORITY\ANONYMOUS LOGON’, puisqu’elle indique qu’ASP a refusé une connexion anonyme.

Il est donc temps d’aller faire un tour du coté de la MMC IIS, plus précisément dans les Applications Pool. Voici ce qu’on y trouve :

clip_image006

Configuré de la sorte, cela ne permet pas d’accéder à la base de données, d’où notre erreur. Il faut donc les modifier et mettre un compte qui a les droits sur la base via les Advanced Settings :

clip_image008

clip_image010

Répéter l’opération pour le second Application Pool, puis recycler les deux.

Voilà, désormais l’accès est possible !

SCOM–Alertes charge CPU Agent suite à migration 2012

Lors d’une migration SCOM 2007 R2 vers SCOM 2012 en side by side (avec des agents en multi-homing qui continuent à renvoyer des informations vers les deux infrastructures en parallèle), un problème sur la remontée de la charge CPU de l’agent SCOM est à prévoir.

En effet, le script qui s’occupe de mesurer cette métrique a été mis à jour dans la version 2012, ce qui occasionne des remontées totalement incohérentes dans les compteurs de performance de la console 2007, ainsi qu’un grand nombre d’alertes associées :

clip_image002

On constate sur ce graphique que l’utilisation CPU par l’agent SCOM (en rouge) est plus importante que l’utilisation CPU totale (en jaune), ce qui n’est évidemment pas possible dans la réalité.

En vérifiant les même compteurs dans la console SCOM 2012, voici le graphique que l’on obtient :

clip_image004

Ici, les informations sont bien plus normales, et conformes à ce qu’il est possible de vérifier directement dans le gestionnaire de taches/ressources des serveurs concernés : la piste du bug est confirmée.

La solution est alors toute trouvée : créer un Override qui désactive la règle « Collect Agent Processor utilization » sur l’infrastructure 2007.

En résumé : si lors d’une migration SCOM 2007 vers 2012 en side by side avec agents multi-homés (qui remontent vers les deux infrastructures) vous rencontrez soudainement un grand nombre d’alertes CPU sur la plateforme 2007 uniquement, pas de panique : il ne s’agit très probablement que d’un bug lié à un script différent, qui se réglera en désactivant la règle incriminée.

SCOM–Erreur MOMCertImport 0xc000007b

Lors de la mise en place d’un serveur Gateway dans une infrastructure SCOM 2012, le bug suivant m’a laissé perplexe pendant de longues heures… cet article vous permettra peut être de bénéficier de mes erreurs !

En suivant scrupuleusement la fiche technet détaillant l’installation du rôle Gateway, on constate que de nombreuses étapes préparatoires sont requises avant de procéder au déploiement du rôle à proprement parler.

L’une d’entre elle concerne plus spécifiquement le déploiement du certificat qui sera nécessaire à la bonne communication de la Gateway avec son Management Server (cf. http://technet.microsoft.com/en-us/library/hh467905.aspx )

Tout se passe bien jusqu’à la dernière étape, la validation du certificat par MOMCertImport qui fait remonter cette erreur :

clip_image002

The application was unable to start correctly (0xc000007b). Click OK to close the Application.

Un joli message d’erreur, détaillé et explicite comme on les aime.

Après avoir passé en revue les réponses classiques à ce genre de problème (UAC qui bloque ? Utilisation de la binaire x86 au lieu de la x64 ou vice-versa ? Et en runas administrator, ca passe ? En récupérant MOMCertImport sur un media d’installation différent ?), il s’avère finalement que MOMCertImport est en réalité incapable de s’exécuter sans certaines DLL… qui ne sont présentes que si SCOM est installé (et donc si le rôle Gateway est déjà présent !).

Il ne reste donc plus qu’à installer le rôle gateway, puis à finaliser l’import du certificat… et tant pis pour l’ordre préconisé par Technet.

A noter que cette problématique peut se présenter de façon parfaitement identique dans le cadre du déploiement d’un agent en DMZ, puisqu’il nécessite de la même façon la présence d’un certificat validé par MOMCertImport.