Criar um dashboard com o widget Personalizado no console Web

Importante

Esta versão do Operations Manager chegou ao fim do suporte. Recomendamos que você atualize para o Operations Manager 2022.

No System Center Operations Manager, o console Web fornece uma interface de monitoramento para um grupo de gerenciamento que pode ser aberto em qualquer computador usando um navegador que tenha conectividade com o servidor do console Web. As etapas a seguir descrevem como adicionar um widget Personalizado a um painel no novo console Web do HTML5, que usa uma nova API baseada em REST. Ele executa o código HTML especificado e visualiza a saída desejada em várias visualizações.

Observação

O Operations Manager 2019 UR1 ou posterior dá suporte a tokens de CSRF (solicitação intersite forjada) para evitar ataques de CSRF. Se você estiver usando o Operations Manager 2019 UR1 ou posterior, deverá inicializar o token CSRF. Os scripts HTML não funcionam sem a inicialização do token CSRF.

Inicializar o token CSRF

Ação necessária, aplicável ao Operations Manager 2019 UR1 e posterior.

  1. No cabeçalho HTML do painel, adicione o seguinte código:
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. Na função onload, altere o valor do cabeçalho para requestHeaders. Se o valor do cabeçalho não existir, adicione-o conforme mostrado abaixo.

Exemplo:

Inicialização do token CSRF

Usar a referência da API REST do Operations Manager

Use a referência da API REST para saber mais sobre as operações disponíveis que você pode executar com o widget personalizado para apresentar dados operacionais no dashboard. Se você não estiver familiarizado com a API REST, dê uma olhada nas informações sobre como começar a usar essa API , caso ainda não a tenha visto.

Estrutura do script

Um script Widget Personalizado possui três seções principais:

  1. Definição da API REST e suas propriedades. Esta seção define quais dados precisam ser recuperados do Operations Manager para visualização, como alertas, estado ou dados de desempenho.
  2. Especifique a lógica de negócios para identificar os resultados a serem apresentados na visualização, como a identificação de uma classe ou grupo, condições, como severidade, estado de integridade, ou uma instância de objeto de desempenho específica.
  3. Visualização de terceiros, que são bibliotecas de software livre hospedadas em cloudflare.com necessárias para renderizar os dados, dependendo do tipo de gráfico selecionado.

Propriedades de widget

Para que o script consulte e retorne dados na visualização, o parâmetro de URL especifica o endereço do console Web do Operations Manager e o tipo de dados. A sintaxe da URL é http://< servername>/operationsmanager/data/<dataitem> e o valor de dataitem é um dos seguintes:

  • alert representa um alerta de monitoramento
  • state representa os dados do estado de integridade do monitoramento
  • performance representa os dados de desempenho do monitoramento
<!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 o escopo dos dados de monitoramento para cada tipo de dados, selecione uma classe para ver todas as instâncias dessa classe, ou para ver apenas um subconjunto de objetos da classe selecionada, também inclua um grupo. Por exemplo, para especificar todos os objetos da classe Computador do Controlador de Domínio do Windows Server, modifique o valor da propriedade classId.

Observação

Isso é aplicável somente aos dados do estado, não a dados de alerta ou de desempenho. Para dados de desempenho, especifique um grupo ou objeto monitorado.

<!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 um grupo que contém um subconjunto de objetos da mesma classe especificada para a propriedade classId, modifique o valor objectIds e especifique o GUID do grupo. O valor deve estar entre aspas.

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

Depois de especificar a classe de destino e, opcionalmente, um grupo para definir ainda mais o escopo dos resultados, você poderá especificar os critérios para limitar o tipo de dados a serem exibidos de acordo com os valores de uma ou mais propriedades.

Exemplos de widget

O widget dá suporte à renderização de dados de monitoramento nos seguintes tipos de gráfico:

  • Gráfico de barras (dados de estado)
  • Gráfico de spline (dados de desempenho)
  • Gráfico de barras (dados de alerta)
  • Gráfico de pizza e gráfico de pizza 3D
  • Rosca e rosca 3D
  • Gráfico de combinação
  • Gráfico de barras empilhadas

Você pode configurar um tipo de gráfico para apresentar o estado, o desempenho e os dados de alerta. Para cada exemplo abaixo, os alertas do grupo Computador Windows são retornados para qualquer gravidade, correspondendo a estados de resolução específicos.

Selecione a guia necessária para exibir o código HTML para o respectivo tipo de gráfico:

O código HTML a seguir demonstra como renderizar um gráfico de barras com dados 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>

Adicionar um widget ao painel

  1. Abra um navegador da Web em qualquer computador e insira http://<web host>/OperationsManager, em que http://<web host>/OperationsManager é o nome do computador que hospeda o console Web.

  2. No painel esquerdo do console Web, selecione + Novo dashboard.

    Captura de tela mostrando a seleção de Novo Painel no console Web.

  3. Na página Criar Novo Painel, forneça um nome e uma descrição para o painel que você deseja criar.

    Captura de tela mostrando especificar o nome e a descrição para novos dashboard.

  4. Você pode salvar o dashboard em um pacote de gerenciamento não selado existente selecionando o pacote de gerenciamento na lista suspensa Pacote de Gerenciamento ou pode salvar o dashboard criando um novo pacote de gerenciamento selecionando Novo ao lado da lista suspensa Pacote de Gerenciamento e forneça um nome, uma descrição e, opcionalmente, um número de versão.

    Captura de tela mostrando Especificar nome e descrição para o novo MP.

  5. Depois de especificar onde salvar o novo dashboard, selecione OK.

  6. Selecione Salvar depois de fornecer um nome e uma descrição para o novo dashboard.

  7. Na dashboard vazia em branco, você verá o nome do dashboard, Adicionar Widget, Editar Painel, Excluir dashboard e Exibir nas opções de tela inteira na parte superior da página.

    Captura de tela mostrando a tela Novo dashboard.

  8. Selecione Widget Personalizado na lista suspensa Selecionar Widget .

  9. No painel Widget personalizado, selecione critérios para o widget adicionando o código HTML usando um dos exemplos anteriores para visualizar dados de monitoramento em uma das visualizações de gráfico com suporte.

    Captura de tela mostrando Configurar o widget Personalizado para dashboard.

  10. Conclua a configuração fornecendo um Nome, Descrição e Intervalo de atualização do widget (o intervalo padrão é cinco minutos) para o widget. Selecione Salvar Widget para salvar o novo dashboard.

Depois que o widget for criado, ele exibirá a saída do código HTML.

Captura de tela mostrando o exemplo concluído do widget de bloco em dashboard.