웹 콘솔에서 사용자 지정 위젯을 사용하여 dashboard 만들기

중요

이 버전의 Operations Manager는 지원이 종료되었습니다. Operations Manager 2022로 업그레이드하는 것이 좋습니다.

System Center Operations Manager에서 웹 콘솔은 웹 콘솔 서버에 연결되어 있는 브라우저를 사용하여 모든 컴퓨터에서 열 수 있는 관리 그룹용 모니터링 인터페이스를 제공합니다. 다음 단계에서는 새 HTML5 웹 콘솔의 대시보드에 사용자 지정 위젯을 추가하는 방법을 설명합니다. 여기서는 REST에 기반하는 새 API를 사용합니다. 지정된 HTML 코드를 실행하고 다양한 시각화에서 원하는 출력을 시각화합니다.

참고

Operations Manager 2019 UR1 이상은 CSRF(교차 사이트 요청 위조) 토큰을 지원하여 CSRF 공격을 방지합니다. Operations Manager 2019 UR1 이상을 사용하는 경우 CSRF 토큰을 초기화해야 합니다. CSRF 토큰을 초기화하지 않으면 HTML 스크립트가 작동하지 않습니다.

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 토큰 초기화

Operations Manager REST API 참조 사용

REST API 참조를 사용하여 사용자 지정 위젯을 사용하여 dashboard 운영 데이터를 표시할 수 있는 사용 가능한 작업에 대해 알아봅니다. REST API를 익숙하지 않은 경우 아직 본 적이 없는 경우 이 API 시작 에 대한 정보를 살펴보세요.

스크립트 구조

사용자 지정 위젯 스크립트에는 세 가지 주요 섹션이 있습니다.

  1. REST API 및 해당 속성 정의 이 섹션에서는 Operations Manager에서 시각화를 위해 검색해야 하는 데이터(예: 경고, 상태 또는 성능 데이터)를 정의합니다.
  2. 비즈니스 논리를 지정하여 시각화에 제공할 결과(예: 클래스 또는 그룹 식별) 또는 조건(예: 심각도, 상태 또는 특정 성능 개체 인스턴스)을 식별합니다.
  3. 타사 시각화- 선택한 차트 유형에 따라 데이터를 렌더링하는 데 필요한 cloudflare.com 호스트되는 오픈 소스 라이브러리입니다.

위젯 속성

스크립트가 시각화에서 데이터를 쿼리하고 반환하기 위해 URL 매개 변수는 Operations Manager 웹 콘솔의 주소 및 데이터 형식을 지정합니다. URL 구문은 http://< servername>/operationsmanager/data/<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 컴퓨터 클래스의 모든 개체를 지정하려면 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 속성에 지정된 동일한 클래스 개체의 하위 집합을 포함하는 그룹을 지정하려면 objectIds 값을 수정하고 그룹의 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 }),

대상 클래스와 필요에 따라 결과를 추가로 scope 그룹을 지정한 후에는 하나 이상의 속성 값에 따라 표시할 데이터 형식을 제한하는 조건을 지정할 수 있습니다.

위젯 예제

위젯은 다음 차트 유형에서 모니터링 데이터 렌더링을 지원합니다.

  • 가로 막대형 차트(상태 데이터)
  • 스플라인 차트(성능 데이터)
  • 가로 막대형 차트(경고 데이터)
  • 원형 차트 및 3D 원형 차트
  • 도넛형 및 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를 입력합니다. 여기서 http://<web host>/OperationsManager는 웹 콘솔을 호스트하는 컴퓨터의 이름입니다.

  2. 웹 콘솔의 왼쪽 창에서 + 새 dashboard 선택합니다.

    웹 콘솔에서 새 대시보드 선택을 보여 주는 스크린샷

  3. 새 대시보드 만들기 페이지에서 만들려는 대시보드의 이름과 설명을 제공합니다.

    새 dashboard 대한 이름 및 설명을 지정하는 스크린샷

  4. 관리 팩 드롭다운 목록에서 관리 팩을 선택하여 기존 봉인되지 않은 관리 팩에 dashboard 저장하거나 관리 팩 드롭다운 목록 옆에 있는 새로 만들기를 선택하여 새 관리 을 만들어 dashboard 저장하고 이름, 설명 및 선택적으로 버전 번호를 제공할 수 있습니다.

    새 MP의 이름 및 설명 지정을 보여 주는 스크린샷

  5. 새 dashboard 저장할 위치를 지정한 후 확인을 선택합니다.

  6. 새 dashboard 대한 이름과 설명을 제공한 후 저장을 선택합니다.

  7. 빈 빈 dashboard 페이지 맨 위에 dashboard 이름, 위젯 추가, 대시보드 편집, dashboard 삭제보기 옵션이 표시됩니다.

    새 dashboard 캔버스를 보여 주는 스크린샷

  8. 위젯 선택 드롭다운 목록에서 사용자 지정 위젯을 선택합니다.

  9. 사용자 지정 위젯 창에서 이전 예제 중 하나를 사용하여 HTML 코드를 추가하는 위젯에 대한 조건을 선택하여 지원되는 차트 시각화 중 하나에서 모니터링 데이터를 시각화합니다.

    dashboard 대한 사용자 지정 위젯 구성을 보여 주는 스크린샷

  10. 위젯의 이름, 설명위젯 새로 고침 간격(기본 간격 5분)을 지정하여 구성을 완료합니다. 위젯 저장을 선택하여 새 dashboard 저장합니다.

위젯을 만든 후에는 HTML 코드의 출력이 표시됩니다.

dashboard 타일 위젯의 완료된 예제를 보여 주는 스크린샷