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

Важно!

Поддержка этой версии Operations Manager завершена. Рекомендуется выполнить обновление до Operations Manager 2022.

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

Примечание

Operations Manager 2019 UR1 и более поздних версий поддерживает маркеры межсайтовой подделки запросов (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/data/<dataitem> , а для dataitem используется одно из следующих значений:

  • alert представляет предупреждение наблюдения;
  • state представляет данные наблюдения за состоянием работоспособности;
  • performance представляет данные наблюдения за производительностью.
<!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, следует изменить значение свойства для 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": { }),

Чтобы задать группу, содержащую подмножество объектов одного класса, указанного для свойства classId, измените значение для objectId и укажите идентификатор 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 }),

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

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

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

  • Линейчатая диаграмма (данные о состоянии)
  • Сплайн-диаграмма (данные производительности)
  • Линейчатая диаграмма (данные об оповещении)
  • круговая диаграмма и трехмерная круговая диаграмма;
  • секторная диаграмма и трехмерная секторная диаграмма;
  • комбинированная диаграмма;
  • линейчатая диаграмма с накоплением.

Вы можете выбрать тип диаграммы, который лучше всего демонстрирует нужные сведения о состоянии, производительности или предупреждениях. Для каждого примера ниже предоставляются предупреждения с любым уровнем серьезности и конкретными состояниями, относящиеся к определенной группе компьютеров 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, где http://<web host>/OperationsManager — это имя компьютера, на котором размещена веб-консоль.

  2. В области слева в веб-консоли выберите + Новая панель мониторинга.

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

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

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

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

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

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

  6. Выберите Сохранить после указания имени и описания новой панели мониторинга.

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

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

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

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

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

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

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

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