使用 Linux 診斷擴充功能監視 Linux VM 的效能和診斷資料
重要
傳統 VM 將於 2023 年 3 月 1 日淘汰。
如果您使用來自 ASM 的 IaaS 資源,請在 2023 年 3 月 1 日前完成移轉。 我們鼓勵您及早切換,以利用 Azure Resource Manager 的許多功能增強功能。
如需詳細資訊,請參閱請於 2023 年 3 月 1 日之前將您的 IaaS 資源遷移至 Azure Resource Manager。
本文說明 Linux 診斷擴充功能 2.3 版。
重要
此版本已被取代,且可能會在 2018 年 6 月 30 日之後取消發佈。 3.0 版已取代該版本。 如需詳細資訊,請參閱 Linux 診斷擴充功能3.0 版的文件。
簡介
(附注:Linux 診斷延伸模組是在 GitHub 上開放原始碼,其中第一次發佈擴充功能的最新資訊。您可能想要先檢查 GitHub 頁面 。)
Linux 診斷延伸模組可協助使用者監視在 Microsoft Azure 上執行的 Linux VM。 它可提供下列功能:
- 從 Linux VM 收集系統效能資訊並上傳至使用者的儲存體資料表,包括診斷和 syslog 資訊。
- 讓使用者自訂將要收集並上傳的資料計量。
- 讓使用者將指定的記錄檔上傳至指定的儲存體資料表。
在目前版本 2.3 版中,資料包括:
- 所有 Linux Rsyslog 記錄,包括系統、安全性及應用程式記錄。
- 在 System Center 跨平台解決方案網站上指定的所有系統資料。
- 使用者指定的記錄檔。
此延伸模組可搭配傳統和 Resource Manager 部署模型使用。
擴充功能的目前版本和已被取代的舊版本
擴充功能的最新版本是 2.3,所有舊版本 (2.0、2.1 及 2.2) 都將在今年 (2017 年) 底被取代及取消發佈。 如果您已經安裝停用自動升級次要版本的 Linux 診斷擴充功能,強烈建議您解除安裝該擴充功能,再重新安裝啟用自動升級次要版本的擴充功能。 在傳統 (ASM) VM 上,如果是透過 Azure XPLAT CLI 或 Powershell 安裝擴充功能,您可以藉由指定 '2.*' 為版本來達到此目的。 在 ARM VM 上,您可以藉由在 VM 部署範本中加入 '"autoUpgradeMinorVersion": true' 來達到此目的。 此外,擴充功能的任何新安裝應將自動升級次要版本選項開啟。
啟用延伸模組
使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 指令碼,可以啟用此擴充功能。
若要直接從 Azure 入口網站檢視和設定系統和效能資料,請遵循 Azure 部落格上的這些步驟進行。
本文著重於如何使用 Azure CLI 命令來啟用及設定延伸模組。 這可讓您直接從儲存體資料表讀取和檢視資料。
請注意,此處描述的設定方法無法用於 Azure 入口網站。 若要直接從 Azure 入口網站檢視和設定系統及效能資料,就必須透過 Azure 入口網站啟用此延伸模組。
必要條件
Azure Linux Agent 2.0.6 版或更新版本。
請注意,大部分的 Azure VM Linux 資源庫映像包含版本 2.0.6 或更新版本。 您可以執行 WAAgent -version 來確認 VM 上安裝的版本。 如果 VM 執行的版本早于 2.0.6,您可以依照GitHub 上的進行更新。
Azure CLI。 遵循本指引來安裝 CLI,以在電腦上設定 Azure CLI 環境。 安裝 Azure CLI 之後,您可以在命令列介面 (Bash、終端機或命令提示字元) 使用 azure 命令來存取 Azure CLI 命令。 例如:
- 執行 azure vm extension set --help 取得詳細的說明資訊。
- 執行 azure login 登入 Azure。
- 執行 azure vm list 列出您在 Azure 上的所有虛擬機器。
儲存資料的儲存體帳戶。 您需要先前建立的儲存體帳戶名稱和存取金鑰,才能將資料上傳至您的儲存體。
使用 Azure CLI 命令啟動 Linux 診斷延伸模組
案例 1. 以預設的資料集啟動延伸模組
2.3 版或更新版本,預設將收集的資料包括︰
- 所有 Rsyslog 資訊 (包括系統、安全性及應用程式記錄)。
- 一組核心基礎系統資料。 請注意,System Center 跨平台解決方案網站上會說明完整資料集。 如果您想要啟用額外的資料,請繼續進行案例 2 和 3 的步驟。
步驟 1: 使用下列內容建立名為 PrivateConfig.json 的檔案:
{
"storageAccountName" : "the storage account to receive data",
"storageAccountKey" : "the key of the account"
}
步驟 2: 執行 azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions 2.* --private-config-path PrivateConfig.json。
案例 2. 自訂效能監視器計量
本節描述如何自訂效能和診斷資料的資料表。
步驟 1: 使用案例 1 描述的內容建立名為 PrivateConfig.json 的檔案。 同時也建立名為 PublicConfig.json 的檔案。 指定您想要收集的特定資料。
如需所有受支援的提供者和變數,請參考 System Center 跨平台解決方案網站。 您可以有多個查詢,並藉由將更多查詢附加至指令碼,將它們儲存成多個資料表。
根據預設,一律會收集 Rsyslog 資料。
{
"perfCfg":
[
{
"query" : "SELECT PercentAvailableMemory, AvailableMemory, UsedMemory ,PercentUsedSwap FROM SCX_MemoryStatisticalInformation",
"table" : "LinuxMemory"
}
]
}
步驟 2: 執行 azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json。
案例 3. 上傳您自己的記錄檔
本節說明如何收集特定記錄檔並上傳至儲存體帳戶。 您必須指定記錄檔的路徑,以及要儲存記錄檔的資料表名稱。 您可以將多個檔案/資料表項目加入至指令碼,以建立多個記錄檔。
步驟 1: 使用案例 1 描述的內容建立名為 PrivateConfig.json 的檔案。 然後使用下列內容建立另一個名為 PublicConfig.json 的檔案:
{
"fileCfg" :
[
{
"file" : "/var/log/mysql.err",
"table" : "mysqlerr"
}
]
}
步驟 2: 執行 azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json
。
請注意,若使用這項設定,在 2.3 版以前的擴充功能版本上,所有寫入 /var/log/mysql.err
的記錄可能也會複製到 /var/log/syslog
(或 /var/log/messages
,視 Linux 散發版本而定)。 如果您想要避免此重複的記錄,可以在您的 rsyslog 設定中排除 local6
設備記錄的記錄功能。 這依 Linux 散發版本而定,但在 Ubuntu 14.04 系統上,要修改的檔案是 /etc/rsyslog.d/50-default.conf
,您可以將 *.*;auth,authpriv.none -/var/log/syslog
這一行取代為 *.*;auth,authpriv,local6.none -/var/log/syslog
。 在最新的 Hotfix 版本 2.3 (2.3.9007) 中已修正此問題,因此如果您有擴充功能版本 2.3,應該就不會發生此問題。 如果在重新啟動 VM 之後仍然發生此問題,請與我們連絡,並協助我們針對無法自動安裝最新 Hotfix 版本的原因進行疑難排解。
案例 4. 停止擴充收集任何記錄
本節說明如何阻止延伸模組收集記錄。 請注意,即使使用這項重新設定,監視代理程式處理序仍會啟動並執行。 如果您想要完全停止監視代理程式處理序,您可以停用延伸模組來達到此目的。 停用擴充功能的命令是 azure vm extension set --disable <vm_name> LinuxDiagnostic Microsoft.OSTCExtensions '2.*'
。
步驟 1: 使用案例 1 描述的內容建立名為 PrivateConfig.json 的檔案。 使用下列內容建立另一個名為 PublicConfig.json 的檔案:
{
"perfCfg" : [],
"enableSyslog" : "false"
}
步驟 2: 執行 azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json。
檢閱資料
效能和診斷資料會儲存在 Azure 儲存體資料表中。 檢閱如何從 Ruby 使用 Azure 表格儲存體,以了解如何使用 Azure CLI 指令碼存取儲存體資料表中的資料。
此外,您可以使用下列 UI 工具來存取資料:
- Visual Studio 伺服器總管。 移至您的儲存體帳戶。 VM 執行約 5 分鐘後,您應該會看到四個預設資料表:“LinuxCpu”, ”LinuxDisk”, ”LinuxMemory” 和 ”Linuxsyslog”。 按兩下資料表名稱以檢視資料。
- Azure 儲存體總管。
如果您已啟用 fileCfg 或 perfCfg (如案例 2 和 3 所述),您可以使用 Visual Studio 伺服器總管和 Azure 儲存體總管來檢視非預設的資料。
已知問題
- 您只能透過指令碼存取 Rsyslog 資訊和客戶指定記錄檔。