整合外部監視解決方案與 Azure Stack Hub
針對外部監視 Azure Stack Hub 基礎結構,您需要監視 Azure Stack Hub 軟體、實體電腦和實體網路交換器。 每個區域都會提供方法來擷取健康情況和警示資訊:
- Azure Stack Hub 軟體提供以 REST 為基礎的 API 來擷取健康情況和警示。 儲存空間直接存取、儲存體健康情況和警示等軟體定義技術的使用,都是軟體監視的一部分。
- 實體電腦可讓健康情況和警示資訊透過基礎板管理控制器 (BMC) 提供。
- 實體網路裝置可讓健康情況和警示資訊透過 SNMP 通訊協定提供。
每個 Azure Stack Hub 解決方案隨附硬體生命週期主機。 此主機會針對實體伺服器及網路裝置執行原始設備製造商 (OEM) 硬體廠商的監視軟體。 如果 ORM 提供者的監視解決方案可以與資料中心內現有的監視解決方案整合,請洽詢您的 OEM 提供者。
重要
您使用的外部監視解決方案必須是無代理程式。 您無法在 Azure Stack Hub 元件內部安裝協力廠商代理程式。
下圖顯示整合 Azure Stack Hub 整合式系統、硬體生命週期主機、外部監視解決方案和外部票證/資料收集系統之間的流量。
注意
不允許外部監視功能直接與實體伺服器進行整合,且存取控制清單 (ACL) 會主動加以封鎖。 系統支援外部監視功能直接與實體網路裝置整合。 請洽詢您的 OEM 提供者,以了解如何啟用此功能。
本文說明如何將 Azure Stack Hub 與外部監視解決方案 (例如 System Center Operations Manager 和 Nagios) 整合。 也包含如何使用 PowerShell 或 REST API 呼叫,以程式設計方式處理警示的資訊。
與 Operations Manager 整合
您可以將 Operations Manager 用於 Azure Stack Hub 的外部監視。 Microsoft Azure Stack Hub 適用的 System Center 管理組件可讓您使用單一 Operations Manager 執行個體來監視多個 Azure Stack Hub 部署。 管理組件會使用健康情況資源提供者和更新資源提供者 REST API 與 Azure Stack Hub 進行通訊。 如果您打算略過硬體生命週期主機上執行的 OEM 監視軟體,您可以安裝廠商管理組件來監視實體伺服器。 您也可以使用 Operations Manager 網路裝置探索來監視網路交換器。
Azure Stack Hub 的管理組件提供下列功能:
- 您可以管理多個 Azure Stack Hub 部署。
- 支援 Microsoft Entra ID 和 Active Directory 同盟服務 (AD FS) 。
- 您可以擷取和關閉警示。
- 有健康情況和容量儀表板可供使用。
- 包含當修補和更新 (P&U) 進行時的自動維護模式偵測。
- 包含針對部署和區域的強制更新工作。
- 您可以將自訂資訊新增至區域。
- 支援通知與報告。
若要下載 System Center 管理組件和相關聯的使用者指南,請參閱下載適用於 Microsoft Azure Stack Hub 的 System Center 管理組件。
如需票證解決方案,您可以將 Operations Manager 與 System Center Service Manager 整合。 整合的產品連接器會啟用雙向通訊,可讓您在解決 Service Manager 中的服務要求之後關閉 Azure Stack Hub 和 Operations Manager 中的警示。
下圖顯示 Azure Stack Hub 與現有的 System Center 部署的整合。 您可以進一步使用 System Center Orchestrator 或 Service Management Automation (SMA) 來將 Service Manager 自動化,以在 Azure Stack Hub 中執行作業。
與 Nagios 整合
您可以為 Microsoft Azure Stack Hub 安裝和設定 Nagios 外掛程式。
Nagios 監視外掛程式是與協力廠商 Cloudbase 解決方案一起開發的,其提供依據為寬鬆免費軟體授權 - MIT (麻省理工學院)。
外掛程式是使用 Python 撰寫,並利用健康情況資源提供者 REST API。 可提供在 Azure Stack Hub 中擷取並關閉警示的基本功能。 類似 System Center 管理組件,它可讓您新增多個 Azure Stack Hub 部署,以及傳送通知。
在 1.2 版中,Azure Stack Hub - Nagios 外掛程式會利用 Microsoft ADAL 程式庫,並支援搭配使用服務主體與秘密或憑證來進行驗證。 此外,設定工作也已透過單一設定檔與新參數來加以簡化。 它現在支援使用 Microsoft Entra ID和 AD FS 作為身分識別系統的 Azure Stack Hub 部署。
重要
AD FS 僅支援互動式登入工作階段。 如果您的自動化案例需要非互動式登入,則必須使用 SPN。
此外掛程式可與 Nagios 4x 和 XI 搭配運作。 若要下載此外掛程式,請參閱監視 Azure Stack Hub 警示。 下載網站也包含安裝和設定詳細資料。
Nagios 的需求
Nagios 的最低版本是 4.x
Microsoft Entra Python 連結庫。 此程式庫可使用 Python PIP 來安裝。
sudo pip install adal pyyaml six
安裝外掛程式
本節描述如何安裝會採用 Nagios 預設安裝的 Azure Stack Hub 外掛程式。
外掛程式套件包含下列檔案:
azurestack_plugin.py
azurestack_handler.sh
samples/etc/azurestack.cfg
samples/etc/azurestack_commands.cfg
samples/etc/azurestack_contacts.cfg
samples/etc/azurestack_hosts.cfg
samples/etc/azurestack_services.cfg
將外掛程式
azurestack_plugin.py
複製到下列目錄:/usr/local/nagios/libexec
。將處理常式
azurestack_handler.sh
複製到下列目錄:/usr/local/nagios/libexec/eventhandlers
。確定外掛程式檔案設定為可執行檔:
sudo cp azurestack_plugin.py <PLUGINS_DIR> sudo chmod +x <PLUGINS_DIR>/azurestack_plugin.py
設定外掛程式
下列參數可設定於 azurestack.cfg 檔案中。 以粗體顯示的參數必須獨立設定,而不受您選擇的驗證模型影響。
如需如何建立 SPN 詳細資訊,請參閱使用應用程式身分識別來存取資源。
參數 | 描述 | 驗證 |
---|---|---|
External_domain_fqdn | 外部網域 FQDN | |
區域: | 區域名稱 | |
tenant_id: | 租用戶識別碼* | |
client_id: | 用戶端識別碼 | 具有祕密的 SPN |
client_secret: | 用戶端密碼 | 具有祕密的 SPN |
client_cert**: | 憑證的路徑 | 具有憑證的 SPN |
client_cert_thumbprint**: | 憑證指紋 | 具有憑證的 SPN |
*使用 AD FS 部署 Azure Stack Hub 時不需要租用戶識別碼。
**用戶端密碼和用戶端憑證互斥。
其他設定檔包含選擇性的組態設定,因為這些設定也可在 Nagios 中加以設定。
注意
請檢查 azurestack_hosts.cfg 和 azurestack_services.cfg 中的位置目的地。
組態 | 描述 |
---|---|
azurestack_commands.cfg | 處理常式設定沒有變更需求 |
azurestack_contacts.cfg | 通知設定 |
azurestack_hosts.cfg | Azure Stack Hub 部署命名 |
azurestack_services.cfg | 服務的設定 |
設定步驟
修改組態檔。
將修改後的設定檔複製到下列資料夾:
/usr/local/nagios/etc/objects
。
更新 Nagios 設定
Nagios 設定必須更新,才能確保系統會載入 Azure Stack Hub - Nagios 外掛程式。
開啟下列檔案:
/usr/local/nagios/etc/nagios.cfg
新增下列項目:
# Load the Azure Stack Hub Plugin Configuration cfg_file=/usr/local/Nagios/etc/objects/azurestack_contacts.cfg cfg_file=/usr/local/Nagios/etc/objects/azurestack_commands.cfg cfg_file=/usr/local/Nagios/etc/objects/azurestack_hosts.cfg cfg_file=/usr/local/Nagios/etc/objects/azurestack_services.cfg
重新載入 Nagios。
sudo service nagios reload
手動關閉作用中警示
使用自訂通知功能即可在 Nagios 內關閉作用中警示。 自訂通知必須是:
/close-alert <ALERT_GUID>
使用終端機與下列命令也可以關閉警示:
/usr/local/nagios/libexec/azurestack_plugin.py --config-file /usr/local/nagios/etc/objects/azurestack.cfg --action Close --alert-id <ALERT_GUID>
疑難排解
外掛程式的疑難排解,可透過手動在終端機中呼叫外掛程式來完成。 使用下列方法:
/usr/local/nagios/libexec/azurestack_plugin.py --config-file /usr/local/nagios/etc/objects/azurestack.cfg --action Monitor
使用 PowerShell 來監視健康情況和警示
如果您不是使用 Operations Manager、Nagios 或以 Nagios 基礎的解決方案,可以使用 PowerShell 來啟用廣泛的監視解決方案,以與 Azure Stack Hub 整合。
若要使用 PowerShell,請確定您已針對 Azure Stack Hub 操作員環境安裝和設定 PowerShell 。 在可以連線 Resource Manager (管理員) 端點的本機電腦上安裝 PowerShell (https://adminmanagement.[region].[External_FQDN])。
以 Azure Stack Hub 操作員身分執行下列命令以連線到 Azure Stack Hub 環境:
Add-AzEnvironment -Name "AzureStackAdmin" -ArmEndpoint https://adminmanagement.[Region].[External_FQDN] ` -AzureKeyVaultDnsSuffix adminvault.[Region].[External_FQDN] ` -AzureKeyVaultServiceEndpointResourceId https://adminvault.[Region].[External_FQDN] Connect-AzAccount -EnvironmentName "AzureStackAdmin"
使用如下列範例的命令來處理警示:
# Retrieve all alerts
$Alerts = Get-AzsAlert
$Alerts
# Filter for active alerts
$Active = $Alerts | Where-Object { $_.State -eq "active" }
$Active
# Close alert
Close-AzsAlert -AlertID "ID"
#Retrieve resource provider health
$RPHealth = Get-AzsRPHealth
$RPHealth
# Retrieve infrastructure role instance health
$FRPID = $RPHealth | Where-Object { $_.DisplayName -eq "Capacity" }
Get-AzsRegistrationHealth -ServiceRegistrationId $FRPID.RegistrationId
深入了解
如需內建的健康情況監視的相關資訊,請參閱在 Azure Stack Hub 中監視健康情況和警示。