Compartir a través de


Creación de un panel con el widget personalizado en la consola web

En System Center Operations Manager, la consola web proporciona una interfaz de supervisión para un grupo de administración que se puede abrir en cualquier equipo mediante cualquier explorador que tenga conectividad con el servidor de consola web. En los pasos siguientes se describe cómo agregar un widget personalizado a un panel en la nueva consola web HTML5, que usa una nueva API basada en REST. Ejecuta el código HTML especificado y visualiza la salida deseada en varias visualizaciones.

Nota:

Operations Manager 2019 UR1 y versiones posteriores admiten tokens de falsificación de solicitud entre sitios (CSRF) para evitar ataques CSRF. Si usa Operations Manager 2019 UR1 o posterior, debe inicializar el token CSRF. Los scripts HTML no funcionan sin la inicialización del token CSRF.

Inicialización del token CSRF

Acción necesaria, aplicable a Operations Manager 2019 UR1 y versiones posteriores.

  1. En el encabezado HTML del panel, agregue el código siguiente:
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. En la función onload, cambie el valor de encabezado a requestHeaders. Si el valor del encabezado no existe, agréguelo como se muestra a continuación.

Ejemplo:

Inicialización de tokens CSRF

Uso de la referencia de la API REST de Operations Manager

Use la referencia de la API REST para obtener información sobre las operaciones disponibles que puede realizar con el widget personalizado para presentar datos operativos en el panel. Si no está familiarizado con la API REST, eche un vistazo a la información sobre cómo empezar a trabajar con esta API si aún no lo ha visto.

Estructura de script

Un script de widget personalizado tiene tres secciones principales:

  1. Definición de la API REST y sus propiedades. En esta sección se define qué datos se deben recuperar de Operations Manager para su visualización, como alertas, estado o datos de rendimiento.
  2. Especifique la lógica de negocios para identificar los resultados que se van a presentar en la visualización, como identificar una clase o grupo, condiciones como gravedad, estado de mantenimiento o una instancia de objeto de rendimiento específica.
  3. Visualización de terceros, que es bibliotecas de código abierto hospedadas en cloudflare.com que son necesarios para representar los datos en función del tipo de gráfico seleccionado.

Propiedades del widget

Para que el script consulte y devuelva datos en la visualización, el parámetro URL especifica la dirección de la consola web de Operations Manager y el tipo de datos. La sintaxis de dirección URL es http:// servername>/operationsmanager/data/<dataitem> y el valor de dataitem es uno< de los siguientes:

  • alert representa una alerta de supervisión
  • state representa los datos de estado de mantenimiento de supervisión
  • el rendimiento representa la supervisión de los datos de rendimiento
<!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",

Para definir el ámbito de los datos de supervisión de cada tipo de datos, puede seleccionar una clase para ver todas las instancias de esa clase o para ver solo un subconjunto de objetos de la clase seleccionada, también puede incluir un grupo. Por ejemplo, para especificar todos los objetos de la clase Equipo de controlador de dominio de Windows Server, modificaría el valor de propiedad para classId.

Nota:

Esto solo se aplica a los datos de estado, no a las alertas ni al rendimiento. Para los datos de rendimiento, especifique un grupo o un objeto supervisado.

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

Para especificar un grupo que contiene un subconjunto de objetos de la misma clase especificada para el classId de propiedad, modifique el valor objectIds y especifique el GUID del grupo. El valor debe estar entre comillas.

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

Una vez que haya especificado la clase de destino y, opcionalmente, un grupo para ampliar el ámbito de los resultados, puede especificar los criterios para limitar el tipo de datos que se van a mostrar según los valores de una o varias propiedades.

Ejemplos de widgets

El widget admite la representación de datos de supervisión en los siguientes tipos de gráfico:

  • Gráfico de barras (datos de estado)
  • Gráfico spline (datos de rendimiento)
  • Gráfico de barras (datos de alerta)
  • Gráfico circular y gráfico circular 3D
  • Anillo y anillo 3D
  • Gráfico combinado
  • Gráfico de barras apiladas

Puede configurar un tipo de gráfico para presentar datos de estado, rendimiento y alerta. Para cada ejemplo siguiente, se devuelven alertas del grupo de equipos Windows para cualquier gravedad, que coincida con los estados de resolución específicos.

Seleccione la pestaña necesaria para ver el código HTML del tipo de gráfico correspondiente:

El código HTML siguiente muestra cómo representar un gráfico de barras con datos de estado:

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

Agregar widget al panel

  1. Abra un explorador web en cualquier equipo y escriba http://<web host>/OperationsManager, donde host web es el nombre del equipo que hospeda la consola web.

  2. En el panel izquierdo de la consola web, seleccione + Nuevo panel.

    Captura de pantalla que muestra la selección de Nuevo panel en la consola web.

  3. En la página Crear nuevo panel , proporcione un nombre y una descripción para el panel que desea crear.

    Captura de pantalla que muestra cómo especificar el nombre y la descripción del nuevo panel.

  4. Para guardar el panel en un módulo de administración no sellado existente, seleccione el módulo de administración en la lista desplegable Módulo de administración o puede guardar el panel creando un nuevo módulo de administración seleccionando Nuevo junto a la lista desplegable Módulo de administración y proporcione un nombre, una descripción y, opcionalmente, un número de versión.

    Captura de pantalla en la que se muestra especificar el nombre y la descripción del nuevo módulo de administración.

  5. Después de especificar dónde guardar el nuevo panel, seleccione Aceptar.

  6. Seleccione Guardar después de proporcionar un nombre y una descripción para el nuevo panel.

  7. En el panel vacío en blanco, verá el nombre del panel, Agregar widget, Editar panel, Eliminar panel y Ver en las opciones de pantalla completa de la parte superior de la página.

    Captura de pantalla que muestra el lienzo Nuevo panel.

  8. Seleccione Widget personalizado en la lista desplegable Seleccionar widget .

  9. En el panel Widget personalizado, seleccione criterios para agregar el código HTML mediante uno de los ejemplos anteriores para visualizar los datos de supervisión en una de las visualizaciones de gráfico admitidas.

    Captura de pantalla que muestra configurar el widget personalizado para el panel.

  10. Complete la configuración proporcionando un intervalo de actualización de nombre, descripción y widget (el intervalo predeterminado es de 5 minutos) para el widget. Seleccione Guardar widget para guardar el nuevo panel.

Una vez creado el widget, muestra la salida del código HTML.

Captura de pantalla que muestra el ejemplo completado del widget icono en el panel.