您可以在目標機器中執行自訂指令碼並收集自訂資料,然後將這些資料當作度量來使用。
必要條件
- 您使用自訂指令碼執行的所有指令碼都必須輸出單一整數值。如果輸出不是單一整數值,使用者介面則會顯示錯誤。
- 自訂指令碼使用 Telegraf 的 exec 外掛程式在目標機器的作業系統上執行指令碼。在 Linux 作業系統中,系統會建立一個具有特定權限且名為 arcuser 的特殊使用者,以便安裝 Telegraf 代理程式。因此,exec 外掛程式會使用該 arcuser 使用者來執行指令碼。確保 arcuser 可以執行使用自訂指令碼的指令碼 (arcuser 必須有執行該指令碼的權限)。例如,由雲端 Proxy 自動建立的 arcuser 不具有執行儲存在 /root 目錄下的指令碼的權限。
- 在Windows作業系統中,系統會使用系統使用者來安裝 Telegraf 代理程式。因此,exec 外掛程式會使用該系統使用者來執行指令碼。確保系統使用者具有權限並且可以執行自訂指令碼。
- 指令碼必須放置在 /opt/vmware 資料夾中。
- 如果使用者使用 powershell -File 前置詞,則必須設定環境變數 PATH,才能在 Windows 作業系統上執行 PowerShell 指令碼。例如,環境變數 PATH 中的 "%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\"。
如何執行自訂指令碼
- 從管理 Telegraf 代理程式索引標籤中,按 進行篩選。
- 展開已安裝代理程式的目標機器對應的下拉式箭頭。將顯示自訂監控區段。
- 按一下自訂指令碼選項旁邊的垂直省略符號,然後按一下新增。
- 從管理自訂服務對話方塊中,可以新增並設定要監控的 Windows 服務。
執行個體設定
選項 | 說明 |
---|---|
狀態 | 啟用自訂指令碼執行。 |
顯示名稱 | 為指令碼新增適合的名稱。* 是無效字元,不得在名稱中使用。 |
檔案路徑 | 輸入目標機器上指令碼檔案的路徑。 範例:
對於 Linux 機器:
/opt/vmware/scripts/customscript.py對於Windows機器: c:\scripts\customscript.ps1 |
前置詞 | 必要時請輸入前置詞。 範例: 對於 Linux 機器:python2.7、/bin/bash 或 perl 等 對於 Windows 機器:powershell -File |
引數 | 列出指令碼中的引數。 |
逾時 | 在虛擬機器上輸入指令碼執行逾時。 |
儲存指令碼後,該指令碼將顯示在自訂指令碼下。可以透過按一下已新增的自訂指令碼旁邊的垂直省略符號並選取編輯或刪除選項來編輯或刪除指令碼。新增並儲存指令碼後,按一下自訂指令碼旁邊的下拉式箭頭可檢視指令碼清單及其狀態。
備註:
- 自訂指令碼必須以 ERROR|<Error_message> 格式擲回所有錯誤,錯誤傳播才能運作。如果指令碼未以指定格式擲回錯誤,則 VMware Aria Operations 會在使用者介面中顯示錯誤訊息:Unable to parse the error message. Please check the endpoint。這是由設計決定的,直到雲端 Proxy 傳播了確切的錯誤訊息為止。
- Bash 指令碼必須以
shebang (#!/bin/bash)
開頭。
[所有度量] 索引標籤
成功收集資料後,可以在所有度量索引標籤中將指令碼視為目標機器的度量。指令碼度量是在名為自訂指令碼的物件下建立,這是每個目標機器都有的單一物件。目標機器指令碼中的所有度量均放置在自訂指令碼物件下,該物件包含您已建立的所有自訂指令碼。您可以檢視特定度量的輸出。指令碼資料夾下的度量名稱是使用者在建立指令碼組態時指定的顯示名稱。例如,如果您將顯示名稱設定為 Python 指令碼,則系統會建立名為 Python 指令碼的度量 (如果已成功收集資料)。