PI Services

Le blog des collaborateurs de PI Services

SCOM - Configurer Visual Studio 2017 pour les VSAE

Petite astuce très rapide, mais qui vous épargnera peut être une séance d’arrachage de cheveux :

Microsoft a communiqué il y a quelques mois sur la mise à jour des Visual Studio Authoring Extension (qui permettent de développer des management packs dans visual studio) pour offrir la compatibilité avec Visual Studio 2017, ce qui était très attendu.

Malheureusement, aucune documentation (à ma connaissance) n’indique une subtilité : si vous vous contentez d’installer Visual Studio 2017 (édition communauté ou autre) puis la dernière version des VSAE et que vous essayez de créer un nouveau projet « Management Pack », vous allez obtenir l’erreur suivante :

 

Impossible de charger le fichier ou l’assembly ‘Microsoft.VisualStudio.Modeling.Sdk.15.0 Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ ou une de ses dépendances. Le fichier spécifié est introuvable.

C’est parce qu’il vous manque un composant de VS 2017, dont la nécessité n’était certes indiqué nulle part…

Lancez donc une nouvelle fois le Visual Studio Installer, onglet Composants Individuels, et ajoutez le composant « Modeling SDK » disponible à la rubrique « SDK, bibliothèque et frameworks » :

 

Vous devriez maintenant pouvoir accéder aux projets Management Pack !

 

SCOM - Passer la console web en HTTPS

La console SCOM web est très souvent initialement déployée en HTTP simple :  l’utilisation du HTTPS pour les sites web accédés uniquement en local commence tout juste à se démocratiser, le certificat SSL n’a pas forcément été prévu au moment de déployer l’infrastructure SCOM…

Les demandes pour migrer la console en HTTPS commencent cependant à se multiplier, notamment à l’occasion d’un upgrade in-place des infrastructures SCOM 2012 vers 2016 (le cas de SCOM 1801 est un peu différent, la console web ayant totalement été refaite).

On pourrait imaginer qu’il suffit de passer le Default Web Site en HTTPS dans IIS, mais il n’en est rien. Si on se contente de ce paramétrage, la connexion à la console échoue avec le message suivant :

 

System.ServiceModel.CommunicationException: [HttpWebRequest_WebException_RemoteServer]
Arguments: NotFound
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=5.1.30214.0&File=System.Windows.dll&Key=HttpWebRequest_WebException_RemoteServer ---> System.Net.WebException: [HttpWebRequest_WebException_RemoteServer]
Arguments: NotFound
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=5.1.30214.0&File=System.Windows.dll&Key=HttpWebRequest_WebException_RemoteServer ---> System.Net.WebException: [HttpWebRequest_WebException_RemoteServer]
Arguments: NotFound

 

Il faut en réalité aussi modifier la configuration de SCOM à deux niveaux :

 

  • Dans le fichier x:\Dossier D’installation\Operations Manager\WebConsole\WebHost\Web.config, dans partie <services>, il faut modifier bindingConfiguration="DefaultHttpBinding" en bindingConfiguration="DefaultHttpsBinding"
  • Dans la clé HKLM\Software\Microsoft\System Center Operations Manager\12\Setup\WebConsole\  de la base de registre, il faut paramétrer :
    • HTTP_GET_ENABLED=false
    • BINDING_CONFIGURATION=DefaultHttpsBinding

 

Ne reste plus qu’à redémarrer iis (iisreset.exe) et le tour est joué!

 

SCOM - Réinitialiser complètement la console

Si vous développez des management packs, il vous est probablement déjà arrivé un bug assez agaçant : les colonnes affichées dans les vues (état, alertes…) ne reflètent pas ce que vous avez défini dans votre code.

L’ordre des colonnes n’est pas respecté, certaines colonnes sont visibles alors qu’elles ne devrait pas l’être et réciproquement…

Et en plus le résultat n’est pas le même d’un utilisateur à l’autre !

Vous connaissez probablement déjà le mode /clearcache de la console, mais cela ne change rien au problème.

Il s’agit en réalité d’une conservation des paramètres de personnalisation des vues dans la base de registre, qui n’est pas affectée par l’utilisation de /clearcache.

Pour réinitialiser complètement la console, une seule solution : fermez la console, lancez regedit et supprimez la clé  HKCU\Software\Microsoft\Microsoft Operations Manager\3.0\Console.

Relancez alors la console (tant qu’à faire en mode /clearcache, pour être sûr) et normalement tout sera rentré dans l’ordre… du moins pour votre profil et sur le poste où vous avez effectué le nettoyage.

Si d’autres utilisateurs/d’autres postes sont impactés, il faudra reproduire la manipulation !

Grafana – Ajout de Scom en tant que Data Source et création d’un dashboard des alertes

 

Grafana (https://grafana.com/) est une solution de Dashboard open source particulièrement souple et ouverte grâce a de nombreux plugin et data source intégrables.

Dans cet exemple nous allons ajouter l’accès a une base sql SCOM en tant que Data Source et créer un Dashboard des alertes.

 

clip_image002

Dans la zone Configuration de l’interface Grafana nous selectionnons “Data Sources”

clip_image004

Clic sur “Add data source”

clip_image006

On renseigne un nom

On selectionne le Type “Microsoft SQL Server”

On renseigne le nom de l’instance, la base et le compte d’acces.

Clic sur “Save and Test”

clip_image008

clip_image010

clip_image012

Dans la zone “Create” de Grafana, on selectionne “Dashboard”

On ajoute maintenant au Dashboard, un panel qui sera en fait une brique du dashboard.

clip_image014

On sélectionne le modèle “Table”

clip_image016

On clique sur “Panel Title” en haut du tableau et on sélectionne “Edit”

clip_image018

Dans l’onglet “General”, Dans Title, on renseigne un nom.

clip_image020

On se positionne sur l’onglet “Metrics” et on selectionne dans “Data Source” la source de donnée.

clip_image022

Dans le champ de la première Query (A), on colle le code sql correspondant a une sélection des alertes non closes (fichier sql ci-dessous)

 

 

 

clip_image024

Les données sont immédiatement affichées.

on va maintenant effectuer quelques configuration de formatage.

clip_image026

Dans l’onglet “Options” on augmente le champs “Rows per page” a 1000 pour eviter d’avoir trop de pages.

clip_image028

La colonne Severity nous affiche deux decimale apres la virgule. Inutile dans notre cas car cette valeur correspond a des codes de severité (0,1,2)

clip_image030

Pour cela, dans l’onglet “Column Styles”, on ajoute une règle (+Add)

clip_image032

On selectionne dans “Apply to Columns named” la colonne Severity (au passage, notre règle prend le nom de la colonne sélectionnée)

Et on positionne le champ “Decimals” a 0.

clip_image034

Tres bien, mais il serait plus parlant d’avoir les noms de séverité correspondant a ces codes…

clip_image036

On positionne le champ “Type” a String

clip_image038

Et on fait correspondre a chaque code, la valeur adéquate.

clip_image040

Tres bien. Et pour parfaire ce formatage, on va ajouter un peu de couleur…

clip_image042

Dans le champ Threshold, on va definir que les alertes de séverité 1 prennent une couleur orange (WARNING), et les alertes de séverité 2 une couleur rouge (CRITICAL).

NB: L’ordre des couleurs suit l’ordre des seuils (Threshold), séparés par une virgule.

clip_image044

Et l’on peut appliquer ce formattage de couleur a la celulle, en selectionnant la valeur Cell dans le champ “Color Mode”

clip_image046

clip_image048

clip_image050

N’oublions pas de sauvegarder notre dashboard en haut a droite de l’interface Grafana

clip_image052

clip_image054

Dernier petit réglage pour que notre dashboard se rafraichisse automatiquement

clip_image056

On clique sur les settings du dashboard en haut a droite de l’interface Grafana

clip_image058

clip_image060

On positionne la Time Zone a celle du navigateur (Local browser time) et l’auto-refresh a 1m (1 minute).

On sauvegarde ces réglages via le bouton Save.

[Powershell] Héritage des GPO bloqué

 

Voici quelques commandes Powershell pour trouver les OU dont l'héritage est bloqué:

$GPOBlocked = Get-ADOrganizationalUnit -SearchBase "DC=LAB,DC=Org" -Filter * | Get-GPInheritance | Where-Object {$_.GpoInheritanceBlocked}
$GPOBlocked.count
$GPOBlocked | Select Name,Path

Le DistinguishedName (Path) n'est pas toujours agréable à lire je fais donc une conversion en CanonicalName, ensuite vous pouvez afficher les données à l'écran ou les écrire dans un fichier:

$GPOBlocked | ForEach-Object {
        $Name = $_."Name"
        $Path = $_."Path"
        $CanonicalName = Get-ADOrganizationalUnit -Filter {DistinguishedName -like $Path} -Properties CanonicalName | Select-Object -ExpandProperty CanonicalName
        Write-Output "$Name; $CanonicalName" | Add-Content C:\Temp\GpoInheritanceBlocked.txt
    }

 

 

[Powershell] Excel ne s'enregistre pas via le Planificateur de tâches

Lancer un script Powershell via le planificateur de tâches ne pose aucun problème, en revanche si ce dernier souhaite utiliser Excel (par l'intermédiaire de la commande "new-object -comobject excel.application") on peut rencontrer un problème.

Je dis "on peut" car cela fonctionne si l'on a pas coché la case "Run Whether user is logged on or not", en revanche si cette dernière est cochée, Excel ne sera pas en mesure d'enregistrer le fichier.

Pourquoi ?

Par défaut l'application Excel s'exécute avec le compte "Utilisateur exécutant (The Launching User)", mais si j'utilise une tâche planifiée qui ne nécessite pas que je sois connecté Excel ne parvient pas a déterminer qui fait appel à lui.

Que Faire ?

Simplement en déclarant qui  exécute l'application Excel via la MMC -> Services des composants.

Je vous renvoie au point 2 (Gestion de l'Excel distant) de mon précédent article : [Powershell] Ecrire dans un Excel distant.

Exchange 2013 – Update Rollup et redémarrage en boucle

Problématique

Lors de l’installation d’un CU sur un serveur Exchange 2013, l’assistant d’installation vous demande de redémarrer en boucle sans jamais valider le redémarrage.

2018-03-29_160513

Solution

Si après un redémarrage le message d’erreur apparaît toujours, vous pouvez aller modifier la clé de registre suivante :

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

Supprimer la valeur de cette clé et relancer l’assistant d’installation.

2018-03-29_192556

Gestion de WSUS en Powershell - Partie 5

Comment Supprimer des KB dans son serveurs WSUS ?

Ce qui me déplait le plus dans un Serveur WSUS c'est de voir les KB dont je n'ai pas besoin (par Exemple les mises à jour pour Serveurs Itanium).

Toutes les mises à jours non désirées, remplacées ou expirées peuvent être déclinées, mais elles restent présentes en terme d'affichage.

Voyons comment les supprimer définitivement de la "WID", sans qu'elles ne reviennent après une synchronisation avec Windows Update.

Pour ce faire il faut donc:

  1. Définir les KB que l'on souhaite supprimer (on va créer une variable).
  2. Les supprimer à l'aide de Powershell.

1. Créer sa variable

Dans mon exemple je vais supprimer les KB déclinées et les Itanium.

$KB = $Wsus.GetUpdates()
$KBToDelete = $KB | Where-Object {($_.IsDeclined -eq $True) -or ($_.LegacyName -like "*Itanium*")}

2. Supprimer les KB

Maintenant supprimons les mises à jours associées à la variable.

# Check
$KBToDelete.count

# Action
$KBToDelete | Foreach-object {
  $Id = $_."Id"
  $KnowledgebaseArticles = $_."KnowledgebaseArticles"
  Write-Output "$KnowledgebaseArticles" | Add-Content C:\Temp\KBDeleteFromWid.txt
   $Wsus.DeleteUpdate($Id.UpdateId.ToString())
   }

# New Check
$KB = $Wsus.GetUpdates()
$KBToDelete = $KB | Where-Object {($_.IsDeclined -eq $True) -or ($_.LegacyName -like "*Itanium*")}
$KBToDelete.count

Et voila, comme ça je garde une vue relativement "propre" dans mes WSUS.

Si jamais vous souhaitiez de nouveau obtenir un KB supprimée, il faudra faire un import manuel depuis le serveur WSUS.

Import Manuel de mises à jour

  1. Sur le serveur WSUS développez "Update Services".
  2. Sur "Updates" faites un clic droit "Import Updates...".
  3. Vous serez redirigé vers la pages du Catalogue Microsoft®Update.
  4. Sur le Catalog Update, il faudra rechercher le numéro de KB que vous souhaitez importer.
  5. Sélectionnez votre KB, faites « ajouter » (répétez l'opération de recherche et d'ajout au Panier autant de fois que de KB à importer), puis aller dans votre panier.
  6. Cochez "Importer directement dans Windows Server Update Services" et faites « importer ».

Mise en place d'une infrastructure ELK - Elastic Search pour la gestion des logs

Introduction

Il est primordial pour une entreprise de bien gérer, exploiter et simplifier la gestion de ses logs applicatifs. Une application peut générer plusieurs type de log, fichier plat, événement Windows ou dans une table d'une base de données. Il existe des outils pour gérer ses logs, Splunk, ELK Elastics Search, .... Nous allons dans ce blog , mettre en place une infrastructure ELK pour gérer les logs provenant de plusieurs source de fichiers plats. Les outils mis en place sont représentés par le schéma suivant: 

Présentation des composants

ELK - Elastic Search vient avec 4 composant principaux : 

  • KIBANA - Le frontal web d'administration, consultation de log en sélectionnant un index, création/visualisation des indicateurs 
  • Elastic search - base de données NOSQL pour le stockage des données de log dans des indexes 
  • Logstash - collecter, transformer et parse les logs à Elastic search
  • Beats - voir ci-dessous

Il existe plusieurs modules dans la famille BEATS  à mettre en place et qui dépend de la source et type de log, les 3 principaux sont : 

  • filebeat - pour des logs dans des fichiers plat
  • winlogbeat - logs provenant des événement Windows 
  • packetbeat - protocols réseau, quantité des données transférées sur un serveurs ou sur le réseau

Installation des composants

NB: JAVA JRE est nécessaire pour faire fonctionner la suite ELK, assurer que JAVA a été installé.Vous obtiendrez les dernières versions des binaires directement du site elastic search: https://www.elastic.co/fr/products

1) Elastic Search - base de données NoSQL

L’installation des binaires se fait en dézippant le fichier elasticsearch-5.6.3.zip dans le répertoire d’installation souhaitée. Utiliser l'utilitaire NSSM pour installer Elastics Search comme un service windows. 

Sélectionner "Installer le service" pour installer le service Elastic Search.

2) Logstash

L’installation des binaires se fait en dézippant le fichier logstash-5.6.3.zip dans le répertoire d’installation souhaitée.

Installer le service logstash comme un service windows:

Sélectionner "Installer le service" pour installer le service Logstash.

3) Filebeat

L’installation des binaires se fait en dézippant le fichier filebeat-5.6.3.zip dans le répertoire d’installation souhaitée.

Installer le service filebeat comme un service windows en utilisant l'utilitaire NSSM.

4) Kibana

L’installation des binaires se fait en dézippant le fichier kibana-5.6.3.zip dans le répertoire d’installation souhaitée. 

Installer le service Kibana comme un service windows en utilisant l'utilisateur NSSM.

Modifier le fichier kibana.yaml comme indiqué ci-dessous: 

server.port: 80
server.host: "SERVER IP"
server.name: "SERVER_NAME"
elasticsearch.url: "http://SERVER_NAME:9200"

NB: Logstash, Elastic Search et Filebeats possèdent chacun des fichiers de configuration, dans cette installation nous allons tout laisser par défaut. 

Tests:

Redémarrer tous les services et lancer l’url du site dans l’ordre ci-dessous:

  • ELK – Elastic Search
  • ELK – Filebeat
  • ELK – Logstash
  • ELK – Kibana

Accéder au portail via localhost http://localhost:port  comme indiqué ci-dessous:

 

 

 

 

SCOM – SAC ou LTSC ?

Nombre de clients étudient actuellement la migration de leur environnement SCOM 2012 (R2), qui, rappelons-le, a atteint la fin de sa période de support mainstream en juillet 2017.

Il y a actuellement deux possibilités : passer à la version 2016 sortie il y a déjà presque 2 ans ou opter directement pour la version 1801 sortie il y a moins de 2 mois ; sachant qu’il est possible de migrer depuis la version 2012 R2 directement vers ces deux versions, qu’il s’agisse de migration side by side ou in-place.

Commençons par rappeler que ces deux versions ne se distinguent pas par leur architecture ni leur prérequis, ils sont strictement identiques.

La version 1801 étant plus récente, elle contient bien entendu quelques fonctionnalités supplémentaires (et non des moindres, à l’image de la console web enfin 100% html5 et de ses nouveaux dashboards) ; mais ce n’est finalement pas ce qui la différencie fondamentalement de la version 2016. Pour un aperçu détaillé des nouveautés apportées par ces deux versions, technet reste la source la plus appropriée : What’s new in SCOM 2016 et What’s new in SCOM 1801 .

Non, ce qui différencie réellement ces deux versions, c’est plutôt que la sortie de la version 1801 marque la scission en deux branches distinctes de la suite System Center : la Long-Term Service Channel (LTSC) et la Semi-Annual Channel (SAC) ; reprenant ainsi le modèle inauguré avec Windows et SCCM Current Branch.

Ces deux termes désignent le mode de release du produit, autrement dit sa fréquence de parution, sa durée de support et les fonctionnalités qu’il intègre.

Afin de prendre la décision la plus renseignée possible, voici un tour d’horizon de ce que nous savons de ces deux branches… mais aussi (et surtout) de ce que nous ne savons pas encore !

LTSC

Ce mode de release est dans la continuité de ce qui était connu jusqu’ici :

  • Une nouvelle version majeure tous les 3 ans environ, qui devrait suivre les versions LTSC de Windows
  • Une durée de support de 5+5 ans (mainstream+étendu)
  • Des patchs tous les 3-6 mois visant principalement des corrections de bug et de sécurité (Update Rollups)
  • Peu ou pas de nouvelles fonctionnalités pendant la durée de vie du produit

Il n’existe pas encore réellement de release LTSC de System Center (bien qu’on puisse considérer que la version 2016 en est une), mais Microsoft a profité de l’annonce de Windows 2019 pour confirmer la sortie de System Center 2019, qui sera donc la première véritable LTSC (https://cloudblogs.microsoft.com/windowsserver/2018/03/20/introducing-windows-server-2019-now-available-in-preview/).

Il n’est donc pas possible pour le moment d’anticiper avec certitude les choix que Microsoft fera pour cette version, mais certaines suppositions peuvent être faites avec un minimum de fiabilité. Chaque nouvelle version LTSC devrait:

· Intégrer les nouvelles fonctionnalités parues dans les versions SAC précédentes

· Nécessiter d’en passer par une migration pour réaliser le changement de version, qu’elle soit in-place ou side by side, comme pour le passage de SCOM 2012 à 2016 par exemple.

Le mode d’installation des patchs (Update Rollups) devrait rester similaire à ce qui est connu actuellement avec SCOM 2012 et 2016 et devrait donc nécessiter un certain nombre d’étapes manuelles, sans toutefois entrainer d’indisponibilité de la plateforme.

Enfin, s’il semble acquis que la mise à jour vers la future LTSC 2019 sera supportée depuis la version 2016, rien n’indique qu’il sera possible de passer d’une version SAC (1801 et ultérieures) à la version LTSC 2019 ; ni qu’il sera possible de passer de la version LTSC 2019 à une version SAC ultérieure.

Les versions LTSC sont donc à privilégier lorsque la stabilité de l’infrastructure et la durée du support sont les points les plus importants de votre choix.

SAC

Dans ce mode, Microsoft annonce :

  • Une mise à jour tous les 6 mois environ
  • Une durée de support limitée aux 3 dernières versions, donc d’une durée d’environ 18 mois
  • L’ajout régulier de nouvelles fonctionnalités, probablement à chaque mise à jour

Attention : des mises à jour régulières signifient également autant de chances en plus de voir disparaitre des fonctionnalités ou le support de systèmes dépréciés.

La première version SAC est ainsi nommée « SCOM 1801 » en référence à sa date de sortie (Janvier 2018).

On peut donc supposer que la prochaine mise à jour apparaitra en juin-juillet 2018, mais Microsoft n’a pas encore communiqué dessus et n’a donc pas non plus communiqué sur la forme que prendrait cette mise à jour ni sur son mode d’installation.

Il est cependant là aussi possible de faire quelques suppositions à partir des éléments déjà disponibles :

On peut donc s’attendre à ce que le mécanisme de mise à jour vers la prochaine version SAC soit semblable à ce qui existe actuellement pour l’installation des Update Rollups ; autrement dit un processus par définition encore assez manuel mais n’entrainant pas d’indisponibilité de la plateforme.

On peut aussi imaginer qu’un mécanisme « in-console » similaire à celui de SCCM apparaitra à l’avenir, mais il s’agit d’une pure spéculation : Microsoft n’a aucunement communiqué à ce sujet, ni officiellement ni via les demandes de la communauté (https://systemcenterom.uservoice.com/forums/293064-general-operations-manager-feedback/suggestions/33067480-provide-capability-to-apply-update-rollups-from-co )

Par ailleurs, aucune information n’est disponible concernant la possibilité de passer d’une release SAC à une future release LTSC.

Les versions SAC sont donc à privilégier lorsque l’ajout régulier de nouvelles fonctionnalités et le support rapide des nouvelles technologies constituent les points les plus importants, tout en restant vigilant : un cycle de mise à jour rapide peut également entrainer la fin du support de certaines fonctionnalités et technologies à brève échéance (par exemple l’abandon de la supervision d’une ancienne version de Windows, ou l’obligation de mettre à jour la base de données).

Alors, on choisit quoi ?

Comme souvent il n’y a pas de bonne réponse universelle ; d’autant plus ici en raison des nombreuses incertitudes qui entourent encore le futur des 2 branches.

Au final, le choix peut se résumer à cette question : désirez-vous toujours disposer des dernières innovations du produit (ce qui n’est pas un luxe vu le retard qu’il accumule dans certains domaines) au prix d’une potentielle instabilité et au risque de voir disparaitre le support de certaines fonctionnalités ; ou préférez-vous la stabilité et la sécurité apportées par des release plus espacées et plus matures ?

Etant donné la vitesse de l’évolution des technologies (et mon attrait pour les nouvelles fonctionnalités), mon cœur balance évidemment vers la branche SAC. Mais votre point de vue pourrait être tout à fait opposé, et vous pourriez tout aussi bien décider de passer en version 2016 par sécurité, ou d’attendre la sortie en fin d’année de la version LTSC 2019…