Поделиться через


Создание панели мониторинга с пользовательским мини-приложением в веб-консоли

В System Center Operations Manager веб-консоль предоставляет интерфейс мониторинга для группы управления, которая может быть открыта на любом компьютере с помощью любого браузера с подключением к серверу веб-консоли. Ниже описано, как добавить пользовательское мини-приложение на панель мониторинга в новой веб-консоли HTML5, которая использует новый API на основе REST. Он выполняет указанный HTML-код и визуализирует нужные выходные данные в различных визуализациях.

Примечание.

Operations Manager 2019 UR1 и более поздних версий поддерживает токены межсайтовых запросов forgery (CSRF), чтобы предотвратить атаки CSRF. Если вы используете Operations Manager 2019 UR1 или более поздней версии, необходимо инициализировать токен CSRF. Html-скрипты не работают без инициализации токена CSRF.

Инициализация токена CSRF

Обязательные действия, применимые к Operations Manager 2019 UR1 и более поздним версиям.

  1. В заголовке HTML панели мониторинга добавьте следующий код:
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. В функции onload измените значение заголовка на requestHeaders. Если значение заголовка не существует, добавьте его, как показано ниже.

Пример:

Инициализация токена CSRF

Использование справочника по REST API Operations Manager

Используйте ссылку REST API, чтобы узнать о доступных операциях, которые можно выполнить с пользовательским мини-приложением для представления операционных данных на панели мониторинга. Если вы не знакомы с REST API, ознакомьтесь с информацией о начале работы с этим API , если вы еще не видели его.

Структура скрипта

Скрипт пользовательского мини-приложения содержит три основных раздела:

  1. Определение REST API и его свойств. В этом разделе определяется, какие данные необходимо извлечь из Operations Manager для визуализации, например оповещений, состояний или данных производительности.
  2. Укажите бизнес-логику, чтобы определить результаты, представленные в визуализации, например определение класса или группы, такие условия, как серьезность, состояние работоспособности или конкретный экземпляр объекта производительности.
  3. Сторонние визуализации, которые являются библиотеками с открытым исходным кодом, размещенными на cloudflare.com, необходимых для отрисовки данных в зависимости от выбранного типа диаграммы.

Свойства мини-приложения

Чтобы скрипт запрашивал и возвращал данные в визуализации, параметр URL-адреса указывает адрес веб-консоли Operations Manager и тип данных. Синтаксис URL-адреса имеет значение http://< servername>/operationsmanager/dataitem<, а значение для dataitem> — одно из следующих значений:

  • оповещение представляет оповещение мониторинга
  • состояние представляет данные о состоянии работоспособности мониторинга
  • производительность представляет данные мониторинга производительности
<!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",

Для области данных мониторинга для каждого типа данных можно выбрать класс, чтобы просмотреть все экземпляры этого класса или увидеть только подмножество объектов выбранного класса, можно также включить группу. Например, чтобы указать все объекты класса Windows Server DC Computer, измените значение свойства для classId.

Примечание.

Это применимо только к данным состояния, а не к оповещению или производительности. Для данных о производительности укажите группу или отслеживаемый объект.

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

Чтобы указать группу, содержащую подмножество объектов одного класса, указанного для класса свойства, измените идентификаторы объекта value и укажите GUID группы. Значение должно находиться в кавычках.

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

После указания целевого класса и при необходимости группы для дальнейшей области результатов можно указать критерии, чтобы ограничить тип данных для отображения в соответствии со значениями одного или нескольких свойств.

Примеры мини-приложений

Мини-приложение поддерживает данные мониторинга отрисовки в следующих типах диаграмм:

  • Линейчатая диаграмма (данные о состоянии)
  • Диаграмма spline (данные о производительности)
  • Линейчатая диаграмма (данные оповещения)
  • Круговая диаграмма и трехмерная круговая диаграмма
  • Дончик и 3D Дончик
  • Комбинированная диаграмма
  • Линейчатая диаграмма с накоплением

Вы можете настроить тип диаграммы для представления состояния, производительности и оповещений. В каждом примере ниже оповещения из группы компьютеров Windows возвращаются для любого уровня серьезности, соответствующего определенным состояниям разрешения.

Выберите необходимую вкладку для просмотра HTML-кода для соответствующего типа диаграммы:

Следующий HTML-код демонстрирует отрисовку линейчатой диаграммы с данными состояния:

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

Добавление мини-приложения на панель мониторинга

  1. Откройте веб-браузер на любом компьютере и введите http://<web host>/OperationsManager, где веб-узел — это имя компьютера, на котором размещена веб-консоль.

  2. В левой области в веб-консоли нажмите кнопку +Создать панель мониторинга.

    Снимок экрана: выбор новой панели мониторинга в веб-консоли.

  3. На странице создания панели мониторинга укажите имя и описание панели мониторинга, которую вы хотите создать.

    Снимок экрана: указание имени и описания для новой панели мониторинга.

  4. Панель мониторинга можно сохранить в существующем невидимом пакете управления, выбрав пакет управления из раскрывающегося списка пакетов управления или сохранить панель мониторинга, создав новый пакет управления, выбрав "Создать рядом с раскрывающимся списком пакета управления" и укажите имя, описание и дополнительно номер версии.

    Снимок экрана: указание имени и описания нового mp.

  5. После указания места сохранения новой панели мониторинга нажмите кнопку "ОК".

  6. Нажмите кнопку "Сохранить", указав имя и описание новой панели мониторинга.

  7. На пустой пустой панели мониторинга отображается имя панели мониторинга, добавление мини-приложения, изменение панели мониторинга, удаление панели мониторинга и просмотр в полноэкранных параметрах в верхней части страницы.

    Снимок экрана: холст новой панели мониторинга.

  8. Выберите настраиваемое мини-приложение из раскрывающегося списка "Выбор мини-приложения".

  9. В области настраиваемых мини-приложений выберите критерии для мини-приложения, добавляющего HTML-код, используя один из предыдущих примеров для визуализации данных мониторинга в одной из поддерживаемых визуализаций диаграмм.

    Снимок экрана: настройка пользовательского мини-приложения для панели мониторинга.

  10. Выполните настройку, указав интервал обновления имени, описания и мини-приложения (интервал по умолчанию — 5 минут) для мини-приложения. Нажмите кнопку "Сохранить мини-приложение" , чтобы сохранить новую панель мониторинга.

После создания мини-приложения он отображает выходные данные HTML-кода.

Снимок экрана: завершенный пример мини-приложения плитки на панели мониторинга.