Erstellen eines Dashboard mit dem benutzerdefinierten Widget in der Webkonsole

Wichtig

Diese Version von Operations Manager hat das Ende des Supports erreicht. Es wird empfohlen, ein Upgrade auf Operations Manager 2022 durchzuführen.

Die Webkonsole in System Center Operations Manager bietet eine Überwachungsschnittstelle für eine Verwaltungsgruppe, die auf jedem Computer und mit jedem Browser geöffnet werden kann, der mit dem Webkonsolenserver verbunden ist. Die folgenden Schritte beschreiben, wie ein benutzerdefiniertes Widget einem Dashboard in der neuen HTML5-Webkonsole hinzugefügt wird, das eine neue, auf REST basierende API verwendet. Es führt den angegebenen HTML-Code aus und visualisiert die gewünschte Ausgabe in verschiedenen Visualisierungen.

Hinweis

Ab Operations Manager 2019 UR1 werden websiteübergreifende Anforderungsfälschungstoken (Cross-Site Request Forgery, CSRF) unterstützt, um CSRF-Angriffe zu verhindern. Wenn Sie Operations Manager 2019 UR1 oder höher verwenden, müssen Sie das CSRF-Token initialisieren. HTML-Skripts funktionieren nicht ohne die Initialisierung des CSRF-Tokens.

Initialisieren des CSRF-Tokens

Dies ist eine erforderliche Aktion, die für Operations Manager 2019 UR1 und höher gilt.

  1. Fügen Sie im HTML-Header des Dashboards den folgenden Code hinzu:
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"]);
            }
        }
  1. Ändern Sie in der OnLoad-Funktion den Headerwert in requestHeaders. Wenn der Headerwert nicht vorhanden ist, fügen Sie ihn wie unten dargestellt hinzu.

Beispiel:

Initialisierung des CSRF-Tokens

Verwenden der Operations Manager-REST-API-Referenz

Verwenden Sie die REST-API-Referenz, um mehr über die verfügbaren Vorgänge zu erfahren, die Sie mit dem benutzerdefinierten Widget ausführen können, um Betriebsdaten im Dashboard darzustellen. Wenn Sie noch nicht mit der REST-API vertraut sind, sehen Sie sich die Informationen zu den ersten Schritten mit dieser API an, falls Sie sie noch nicht gesehen haben.

Skriptstruktur

Ein benutzerdefiniertes Widget weist drei Hauptabschnitte auf:

  1. Definieren der REST-API und der zugehörigen Eigenschaften. Dieser Abschnitt definiert, welche Daten aus Operations Manager zur Visualisierung abgerufen werden müssen, z.B. Warnungen, Statusinformationen oder Leistungsdaten.
  2. Geben Sie die erforderliche Geschäftslogik an, um die Ergebnisse zu identifizieren, die in der Visualisierung dargestellt werden sollen, beispielsweise eine Klasse oder Gruppe, Bedingungen wie ein Schweregrad oder ein Integritätszustand oder eine bestimmte Instanz eines Leistungsobjekts.
  3. Visualisierung von Drittanbietern, bei der es sich um Open-Source-Bibliotheken handelt, die auf cloudflare.com gehostet werden, die je nach ausgewähltem Diagrammtyp zum Rendern der Daten erforderlich sind.

Widgeteigenschaften

Damit das Skript Daten abfragen und in der Visualisierung zurückgeben kann, gibt der URL-Parameter die Adresse der Operations Manager-Webkonsole und den Datentyp an. Die URL-Syntax lautet http://< servername>/operationsmanager/data/<dataitem> , und der Wert für dataitem ist einer der folgenden:

  • alert stellt eine Überwachungswarnung dar
  • Status stellt Daten der Integritätsstatusüberwachung dar
  • performance stellt Leistungsüberwachungsdaten dar
<!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",

Um den Bereich der Überwachungsdaten für jeden Datentyp festzulegen, können Sie eine Klasse auswählen, um alle Instanzen dieser Klasse anzuzeigen; um nur eine Teilmenge der Objekte der ausgewählten Klasse anzuzeigen, können Sie auch eine Gruppe einbeziehen. Um beispielsweise alle Objekte der Klasse „Windows Server DC Computer“ anzugeben, ändern Sie den Eigenschaftswert für classId.

Hinweis

Dies gilt nur für Statusdaten, nicht für Warnungs- oder Leistungsdaten. Geben Sie für Leistungsdaten eine Gruppe oder ein überwachtes Objekt an.

<!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": { }),

Um eine Gruppe anzugeben, die eine Teilmenge der Objekte der gleichen Klasse enthält, die für die Eigenschaft classId angegeben ist, ändern Sie den Wert objectIds, und geben Sie die GUID der Gruppe an. Der Wert muss in Anführungszeichen gesetzt werden.

<!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 }),

Nachdem Sie die Zielklasse und optional eine Gruppe für den weiteren Bereich der Ergebnisse angegeben haben, können Sie die Kriterien angeben, um den Datentyp zu begrenzen, der gemäß den Werten einer oder mehrerer Eigenschaften angezeigt werden soll.

Beispiele für Widgets

Das Widget unterstützt das Rendern von Überwachungsdaten in den folgenden Diagrammtypen:

  • Balkendiagramm (Statusdaten)
  • Splinediagramm (Leistungsdaten)
  • Balkendiagramm (Warnungsdaten)
  • Kreisdiagramm und 3D-Kreisdiagramm
  • Ringdiagramm und 3D-Ringdiagramm
  • Verbunddiagramm
  • Gestapeltes Balkendiagramm

Sie können einen Diagrammtyp konfigurieren, um Status-, Leistungs- und Warnungsdaten darzustellen. Bei jedem unten genannten Beispiel werden Warnungen aus der Gruppe der Windows-Computer für jeden Schweregrad und entsprechend bestimmter Auflösungszustände zurückgegeben.

Wählen Sie die erforderliche Registerkarte aus, um den HTML-Code für den jeweiligen Diagrammtyp anzuzeigen:

Der folgende HTML-Code veranschaulicht das Rendern eines Balkendiagramms mit Zustandsdaten:

<!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>

Hinzufügen eines Widgets zum Dashboard

  1. Öffnen Sie einen Webbrowser auf einem beliebigen Computer, und geben Sie http://<web host>/OperationsManager ein, wobei http://<web host>/OperationsManager der Name des Computers ist, auf dem die Webkonsole ausgeführt wird.

  2. Wählen Sie im linken Bereich der Webkonsole + Neu Dashboard aus.

    Screenshot: Auswählen von

  3. Geben Sie auf der Seite Neues Dashboard erstellen einen Namen und eine Beschreibung für das Dashboard an, das Sie erstellen möchten.

    Screenshot: Angeben des Namens und der Beschreibung für neue Dashboard

  4. Sie können die Dashboard in einem vorhandenen nicht versiegelten Management Pack speichern, indem Sie das Management Pack in der Dropdownliste Management Pack auswählen, oder Sie können die Dashboard speichern, indem Sie ein neues Management Pack erstellen, indem Sie neben der Management Pack-Dropdownlisteauf Neu klicken und einen Namen, eine Beschreibung und optional eine Versionsnummer angeben.

    Screenshot: Angeben von Namen und Beschreibung für eine neue MP

  5. Nachdem Sie angegeben haben, wo die neue Dashboard gespeichert werden soll, wählen Sie OK aus.

  6. Wählen Sie Speichern aus, nachdem Sie einen Namen und eine Beschreibung für die neue Dashboard angegeben haben.

  7. Auf der leeren leeren Dashboard werden oben auf der Seite die Optionen Dashboard Name, Widget hinzufügen, Dashboard bearbeiten, Dashboard löschen und Im Vollbild anzeigen angezeigt.

    Screenshot: Neue Dashboard Canvas

  8. Wählen Sie in der Dropdownliste Widget auswählen die Option Benutzerdefiniertes Widget aus.

  9. Wählen Sie im Bereich Benutzerdefiniertes Widget Kriterien für das Widget aus, indem Sie den HTML-Code mithilfe eines der vorherigen Beispiele zum Visualisieren von Überwachungsdaten in einer der unterstützten Diagrammvisualisierungen hinzufügen.

    Screenshot: Konfigurieren des benutzerdefinierten Widgets für Dashboard

  10. Schließen Sie die Konfiguration ab, indem Sie einen Namen, eine Beschreibung und ein Widgetaktualisierungsintervall (das Standardintervall beträgt 5 Minuten) für das Widget angeben. Wählen Sie Widget speichern aus, um Die neue Dashboard zu speichern.

Nachdem das Widget erstellt wurde, wird die Ausgabe des HTML-Codes angezeigt.

Screenshot: Abgeschlossenes Beispiel für das Kachelwidget in Dashboard