PI Services

Le blog des collaborateurs de PI Services

SCOM – Script Rapport Etat des instances d’une liste de classe (Sortie Cmdline)

Le script ci-dessous génère un rapport formaté dans la ligne de commande, de l’état des instances d’une liste de classe.

 

#SCOM - SCRIPT DE REQUETE D'ETAT DES OBJETS D'UNE LISTE DE CLASSE #Variables $MGroup = "MyGroup" $MS= "MyMS" $cred = Get-Credential "MyDomain\" #Liste de classe a recuperer $ClassList = ('SQL DB Engine','SQL Database','SQL DB File','SQL Agent','SQL Reporting Services','SQL Analysis Services') #Import du module SCOM try { Import-Module -Name OperationsManager -ErrorAction stop } catch { write-host -ForegroundColor red "Erreur lors de l'import du module SCOM" } #Connection au management group $MGroup New-SCOMManagementGroupConnection -ComputerName $MS -Credential $cred #Recuperation des classes $MonitoringClasses = $ClassList | foreach {Get-SCOMClass -DisplayName $_} if ($MonitoringClasses -eq $null) { write-host "ERROR - UNABLE TO RETRIEVE CLASSES" -ForegroundColor red } write-host "#################################################### `n" write-host "SCOM Management Group: $MGroup `n" write-host "#################################################### `n`n" #Recuperation des instances de chaque classe foreach ($class in $MonitoringClasses) { $MonitoringObjects = $class | Get-SCOMClassInstance -erroraction silentlycontinue | Sort-Object -Descending -Property HealthState write-host -BackgroundColor white -ForegroundColor blue " **************************************************************** `n" write-host -BackgroundColor white -ForegroundColor blue " *** OBJETS DE LA CLASSE "$class.displayname" `n" write-host -BackgroundColor white -ForegroundColor blue " **************************************************************** `n`n" write-host " --- $(get-date -Format F) --- `n`n" write-host " NUMBER OF OBJECT: $($MonitoringObjects | measure-object | select-object -property count -expandproperty count) `n`n" write-host " STATE ----------------- OBJECT`n`n" foreach ($object in $MonitoringObjects) { switch ($object.HealthState) { "Success" {write-host " " -NoNewline ; write-host -ForegroundColor green $object.HealthState -NoNewline ; write-host " -------- " -NoNewline ; write-host $object.FullName} "Error" {write-host " " -NoNewline ; write-host -ForegroundColor red $object.HealthState -NoNewline ; write-host " -------- " -NoNewline ;write-host $object.FullName} "Warning" {write-host " " -NoNewline ; write-host -ForegroundColor yellow $object.HealthState -NoNewline ; write-host " -------- " -NoNewline ;write-host $object.FullName} "Uninitialized" {write-host " " -NoNewline ; write-host -ForegroundColor blue $object.HealthState -NoNewline ; write-host " -------- " -NoNewline ;write-host $object.FullName} } } "`n" } #Fermeture de la connexion Get-SCOMManagementGroupConnection | Remove-SCOMManagementGroupConnection

Skype for Business – Erreur d’accès aux Reports Services

Contexte

L’outil Skype for Business intègre un outil de reporting basé sur SQL Reports Services. Lorsque vous vous connectez au site des rapports Skype, l’erreur suivante apparait :

2016-09-02_095801

Explications

Cette erreur est due au mirroring des bases SQL de Skype for Business. Certaines bases SQL se trouvent sur un serveur A (serveur principal) et certaines bases SQL se trouvent sur un serveur B (serveur miroir).

2016-09-02_094940

Pourquoi cette bascule ?

Les trois serveurs SQL (le serveur principal, le serveur miroir et le serveur témoin) se ping constamment pour valider leur connexion. Par défaut sur chaque base le timeout du mirroring est configuré à 10 secondes.

Ce qui signifie que si le serveur principal ne répond pas à un ping en moins de 10 secondes, la base bascule vers le second serveur.

Solution

Résolution de l’erreur

Pour résoudre cette erreur il faut basculer les bases qui se trouvent sur le serveur B (miroir) vers le serveur A (principal). Si l’erreur se produit trop souvent, il est possible d’augmenter la valeur du timeout.

Pour basculer les bases, dans SQL Server Management Studio, faites un clic droit sur la base à basculer puis dans Tasks, cliquez sur Mirror…

2016-09-02_095724

Dans la partie Mirroring, cliquez sur Failover.

2016-09-02_095907

Un message d’information apparait pour nous prévenir de la bascule. Cliquez sur Yes pour valider l’action.

2016-09-02_095948

Cette action est à répéter sur chaque base qui se trouve sur le serveur B.

Une fois l’ensemble des bases sur le serveur A, les rapports sont à nouveau disponibles.

2016-09-02_100136

Modification du timeout

Pour valider la valeur du mirroring, lancez la commande suivante dans SQL Server Management Studio :

SELECT Mirroring_Connection_Timeout FROM sys.database_mirroring WHERE database_id = db_id(‘DATABASE_NAME’)

2016-09-02_100240

Il est possible de modifier cette valeur avec la commande suivante :

ALTER DATABASE database_name SET PARTNER TIMEOUT 20

2016-09-02_100331

Relancez la première commande pour valider le changement.

2016-09-02_100410

Il n’est cependant pas recommandé de trop augmenter la valeur du timeout. En effet en cas de vrai coupure la bascule des bases sera plus longue.

Si en augmentant le timeout à 15 ou 20 secondes le problème se reproduit souvent, une étude du réseau est nécessaire.