Créer un tableau de bord avec le widget personnalisé dans la console Web
Dans System Center Operations Manager, la console web fournit une interface de supervision pour un groupe d’administration qui peut être ouvert sur n’importe quel ordinateur à l’aide d’un navigateur qui a une connectivité au serveur de console web. Les étapes suivantes décrivent comment ajouter un widget personnalisé à un tableau de bord dans la nouvelle console web HTML5, qui utilise une nouvelle API basée sur REST. Il exécute le code HTML spécifié et visualise la sortie souhaitée dans différentes visualisations.
Remarque
Operations Manager 2019 UR1 et versions ultérieures prend en charge les jetons CSRF (Cross-Site Request Forgery) pour empêcher les attaques CSRF. Si vous utilisez Operations Manager 2019 UR1 ou version ultérieure, vous devez initialiser le jeton CSRF. Les scripts HTML ne fonctionnent pas sans l’initialisation du jeton CSRF.
Initialiser le jeton CSRF
Action requise, applicable à Operations Manager 2019 UR1 et versions ultérieures.
- Dans l’en-tête HTML du tableau de bord, ajoutez le code suivant :
var requestHeaders = {
Accept: 'q=0.8;application/json;q=0.9',
"Content-Type": "application/json"
};
InitializeCSRFToken();
function InitializeCSRFToken() {
var documentcookies = document.cookie.split('; ');
var result = {};
for (var i = 0; i < documentcookies.length; i++) {
var cur = documentcookies[i].split('=');
result[cur[0]] = cur[1];
}
if (result["SCOM-CSRF-TOKEN"] && result["SCOM-CSRF-TOKEN"] != null) {
requestHeaders["SCOM-CSRF-TOKEN"] = decodeURIComponent(result["SCOM-CSRF-TOKEN"]);
}
}
- Dans la fonction onload, remplacez la valeur d’en-tête par requestHeaders. Si la valeur d’en-tête n’existe pas, ajoutez-la comme indiqué ci-dessous.
Exemple :
Utiliser la référence de l’API REST Operations Manager
Utilisez la référence de l’API REST pour en savoir plus sur les opérations disponibles que vous pouvez effectuer avec le widget personnalisé pour présenter des données opérationnelles dans le tableau de bord. Si vous débutez avec l’API REST, consultez les informations sur la prise en main de cette API si vous ne l’avez pas déjà vue.
Structure de script
Un script de widget personnalisé comporte trois sections principales :
- Définition de l’API REST et de ses propriétés. Cette section définit les données à récupérer à partir d’Operations Manager pour la visualisation, telles que les alertes, l’état ou les données de performances.
- Spécifiez la logique métier pour identifier les résultats à présenter dans la visualisation, telles que l’identification d’une classe ou d’un groupe, des conditions telles que la gravité, l’état d’intégrité ou une instance d’objet de performance spécifique.
- Visualisation tierce, qui est des bibliothèques open source hébergées sur cloudflare.com requises pour afficher les données en fonction du type de graphique sélectionné.
Propriétés du widget
Pour que le script interroge et retourne des données dans la visualisation, le paramètre URL spécifie l’adresse de la console web Operations Manager et le type de données. La syntaxe d’URL est http:// servername>/operationsmanager/dataitem<> et la valeur de l’élément de données est l’une des suivantes :<
- l’alerte représente une alerte de surveillance
- l’état représente la surveillance des données d’état d’intégrité
- performances représentant l’analyse des données de performances
<!DOCTYPE HTML>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
var criticalCounter = 0;
var informationCounter = 0;
var warningCounter = 0;
window.onload = function () {
$.ajax({
url: "/OperationsManager/data/alert",
type: "POST",
Pour étendre les données de surveillance pour chaque type de données, vous pouvez sélectionner une classe pour afficher toutes les instances de cette classe ou pour voir uniquement un sous-ensemble d’objets de la classe sélectionnée, vous pouvez également inclure un groupe. Par exemple, pour spécifier tous les objets de la classe Windows Server DC Computer, vous devez modifier la valeur de propriété pour classId.
Remarque
Cela s’applique uniquement aux données d’état, pas aux alertes ou aux performances. Pour les données de performances, spécifiez un groupe ou un objet surveillé.
<!DOCTYPE HTML>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
var criticalCounter = 0;
var informationCounter = 0;
var warningCounter = 0;
window.onload = function () {
$.ajax({
url: "/OperationsManager/data/alert",
type: "POST",
data: JSON.stringify({
"classId": "Microsoft.Windows.Library!Micr…ft.Windows.Server.DC.Computer",
"objectIds": { }),
Pour spécifier un groupe qui contient un sous-ensemble d’objets de la même classe spécifiée pour la classe de propriétéId, modifiez les objectId de valeur et spécifiez le GUID du groupe. La valeur doit être entre guillemets.
<!DOCTYPE HTML>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
var criticalCounter = 0;
var informationCounter = 0;
var warningCounter = 0;
window.onload = function () {
$.ajax({
url: "/OperationsManager/data/alert",
type: "POST",
data: JSON.stringify({
"classId": null,
"objectIds": { "3c8ac4f3-475e-44dd-4163-8a97af363705": -1 }),
Une fois que vous avez spécifié la classe cible et éventuellement un groupe pour étendre davantage les résultats, vous pouvez ensuite spécifier les critères pour limiter le type de données à afficher en fonction des valeurs d’une ou plusieurs propriétés.
Exemples de widgets
Le widget prend en charge le rendu des données de surveillance dans les types de graphiques suivants :
- Graphique à barres (données d’état)
- Graphique spline (données de performances)
- Graphique à barres (données d’alerte)
- Graphique en secteurs et graphique en secteurs 3D
- Donut et 3D Donut
- Graphique combiné
- Graphique à barres empilées
Vous pouvez configurer un type de graphique pour présenter des données d’état, de performances et d’alerte. Pour chaque exemple ci-dessous, les alertes du groupe Ordinateur Windows sont retournées pour toute gravité, correspondant à des états de résolution spécifiques.
Sélectionnez l’onglet requis pour afficher le code HTML du type de graphique respectif :
- Graphique à barres (données d’état)
- Graphique spline (données de performances)
- Graphique à barres (données d’alerte)
- Graphique à secteurs
- Graphique en secteurs 3D
- Graphique en anneau
- Graphique en anneau 3D
- Graphique combiné
Le code HTML suivant illustre le rendu d’un graphique à barres avec des données d’état :
<!DOCTYPE HTML>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
var criticalCounter = 0;
var healthyCounter = 0;
var warningCounter = 0;
var unmonitoredCounter = 0;
window.onload = function () {
$.ajax({
url: "/OperationsManager/data/state",
type: "POST",
data: JSON.stringify({
"classId": "System.Library!System.Computer",
"objectIds": {
// Key value pairs => id: 0 (For objects)/-1 (For groups)
"1d62280e-f437-1369-316b-1e8659500e9a": -1
},
"criteria": "((HealthState = '0') OR (HealthState = '1') OR (HealthState = '2') OR (HealthState = '3') OR HealthState is null)",
"displayColumns": [
"healthstate",
"displayname",
"path",
"maintenancemode"
]
}),
success: function (result) {
for (var i = 0; i < result.rows.length; i++) {
switch (result.rows[i].healthstate) {
case "critical":
criticalCounter++;
break;
case "healthy":
healthyCounter++;
break;
case "warning":
warningCounter++;
break;
case "unmonitored":
unmonitoredCounter++;
break;
}
}
renderChart();
}
});
}
function renderChart() {
var chart = new CanvasJS.Chart("chartContainer", {
title: {
text: "Health State of Windows Computers"
},
data: [{
type: "column",
dataPoints: [
{ y: criticalCounter, label: "Critical", color: "Red" },
{ y: healthyCounter, label: "Healthy", color: "Green" },
{ y: warningCounter, label: "Warning", color: "Yellow" },
{ y: unmonitoredCounter, label: "Unmonitored", color: "Gray" }
]
}]
});
chart.render();
}
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/canvasjs/1.7.0/canvasjs.min.js"></script>
<title>CanvasJS Example</title>
</head>
<body>
<div id="chartContainer" style="height: 400px; width: 100%;"></div>
</body>
</html>
Ajouter un widget au tableau de bord
Ouvrez un navigateur web sur n’importe quel ordinateur et entrez
http://<web host>/OperationsManager
, où l’hôte web est le nom de l’ordinateur hébergeant la console web.Dans le volet gauche de la console Web, sélectionnez + Nouveau tableau de bord.
Dans la page Créer un tableau de bord , fournissez un nom et une description pour le tableau de bord que vous souhaitez créer.
Vous pouvez enregistrer le tableau de bord dans un pack d’administration non scellé existant en sélectionnant le pack d’administration dans la liste déroulante Pack d’administration, ou vous pouvez enregistrer le tableau de bord en créant un pack d’administration en sélectionnant Nouveau en regard de la liste déroulante Pack d’administration et en fournissant un nom, une description et éventuellement un numéro de version.
Une fois que vous avez spécifié où enregistrer le nouveau tableau de bord, sélectionnez OK.
Sélectionnez Enregistrer après avoir fourni un nom et une description pour le nouveau tableau de bord.
Dans le tableau de bord vide, vous voyez le nom du tableau de bord, ajouter un widget, modifier le tableau de bord, supprimer le tableau de bord et afficher en mode plein écran en haut de la page.
Sélectionnez Widget personnalisé dans la liste déroulante Sélectionner un widget .
Dans le volet Widget personnalisé, sélectionnez des critères pour le widget qui ajoute le code HTML à l’aide de l’un des exemples précédents pour visualiser les données de surveillance dans l’une des visualisations de graphique prises en charge.
Terminez la configuration en fournissant un intervalle d’actualisation nom, description et widget (intervalle par défaut de 5 minutes) pour le widget. Sélectionnez Enregistrer le widget pour enregistrer votre nouveau tableau de bord.
Une fois le widget créé, il affiche la sortie du code HTML.