共用方式為


在 Web 控制台中使用自訂小工具建立儀錶板

在 System Center Operations Manager 中,Web 控制台會提供管理群組的監視介面,該管理群組可在任何電腦上使用任何可連線到 Web 控制台伺服器的瀏覽器開啟。 下列步驟說明如何在新的 HTML5 Web 控制台中使用以 REST 為基礎的新 API,將自定義小工具新增至儀錶板。 它會執行指定的 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 令牌初始化

使用 Operations Manager REST API 參考

使用 REST API 參考來瞭解您可以使用自訂小工具執行的可用作業,以在儀錶板中呈現作業數據。 如果您是 REST API 的新手,如果您尚未看到,請查看開始使用此 API 的相關信息

腳本結構

自訂小工具文稿有三個主要區段:

  1. 定義 REST API 及其屬性。 本節會定義需要從 Operations Manager 擷取哪些數據以進行視覺效果,例如警示、狀態或效能數據。
  2. 指定商業規則來識別視覺效果中要呈現的結果,例如識別類別或群組、嚴重性、健康狀態或特定效能物件實例等條件。
  3. 第三方視覺效果,這是裝載於 cloudflare.com 上,視選取的圖表類型而定,轉譯數據所需的開放原始碼連結庫。

Widget 屬性

為了讓腳本查詢及傳回視覺效果中的數據, URL 參數會指定 Operations Manager Web 控制台的位址和數據類型。 URL 語法 http:// <servername>/operationsmanager/data/<dataitem,而 dataitem> 的值如下:

  • 警示 代表監視警示
  • state 代表監視健全狀況狀態數據
  • 效能 代表監視效能數據
<!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": { }),

若要指定包含針對 propertyId 指定之相同類別之物件子集的群組,請修改 value 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 }),

指定目標類別並選擇性地指定群組來進一步界定結果範圍之後,您就可以指定準則,根據一或多個屬性的值來限制要顯示的數據類型。

小工具範例

小工具支援在下列圖表類型中轉譯監視數據:

  • 條形圖(狀態資料)
  • 曲線圖 (效能資料)
  • 條形圖(警示資料)
  • 餅圖和 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,其中 Web主機 是裝載Web控制台的電腦名稱。

  2. 從 Web 控制台的左窗格中,選取 [+ 新增儀錶板]。

    顯示選取 Web 控制台中 [新增儀錶板] 的螢幕快照。

  3. 在 [ 建立新儀錶板] 頁面上,提供您想要建立之儀錶板的名稱和描述。

    顯示指定新儀錶板名稱和描述的螢幕快照。

  4. 您可以從 [管理元件] 下拉式清單中選取管理元件,或選取 [管理元件] 下拉式清單旁的 [新增] 來儲存儀錶板,或選取 [管理元件] 下拉式清單旁的 [新增] 來儲存儀錶板,並提供名稱、描述,以及選擇性地提供版本號碼。

    顯示指定新 MP 名稱與描述的螢幕快照。

  5. 指定儲存新儀錶板的位置之後,請選取 [ 確定]。

  6. 提供新儀錶板的名稱和描述之後,選取 [儲存 ]。

  7. 在空白的空白儀錶板上,您會在頁面頂端的全螢幕選項中看到儀錶板名稱[新增小工具]、[編輯儀錶板]、[刪除儀錶板] 和 [檢視]。

    顯示 [新增儀錶板] 畫布的螢幕快照。

  8. 從 [選取小工具] 下拉式清單中選取 [自定義小工具]。

  9. 在 [自定義小工具] 窗格中,選取小工具的準則,以使用先前的其中一個範例來新增 HTML 程式代碼,以可視化方式檢視其中一個支持的圖表視覺效果中的監視數據。

    顯示設定儀錶板自定義小工具的螢幕快照。

  10. 提供 小工具的名稱描述Widget 重新整理間隔 ,以完成設定(預設間隔為 5 分鐘)。 選取 [ 儲存小工具 ] 以儲存新的儀錶板。

建立小工具之後,會顯示 HTML 程式代碼的輸出。

顯示儀錶板中磚小工具已完成範例的螢幕快照。