整合外部監視解決方案與 Azure Stack Hub
針對外部監視 Azure Stack Hub 基礎結構,您需要監視 Azure Stack Hub 軟體、實體電腦和實體網路交換器。 每個區域都會提供方法來擷取健康情況和警示資訊:
- Azure Stack Hub 軟體提供 REST 型 API 來擷取健康情況和警示。 儲存空間直接存取、儲存體健康情況和警示等軟體定義技術的使用情況,都是軟體監視的一部分。
- 實體電腦可讓健康情況和警示資訊透過基礎板管理控制器 (BMC) 提供。
- 實體網路裝置可讓健康情況和警示資訊透過 SNMP 通訊協定提供。
每個 Azure Stack Hub 解決方案隨附硬體生命週期主控件。 此主控件會針對實體伺服器及網路裝置執行原始設備製造商 (OEM) 硬體廠商的監視軟體。 如果 ORM 提供者的監視解決方案可以與資料中心內現有的監視解決方案整合。
重要
您使用的外部監視解決方案必須是無代理程式。 您無法在 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)。
- 您可以擷取和關閉警示。
- 有健康情況和容量儀表板可供使用。
- 包含修補和更新進行時自動維護模式偵測。
- 包含針對部署和區域的強制更新工作。
- 您可以將自訂資訊新增至區域。
- 支援通知與報告。
若要下載 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 整合
您可以設定及設定適用於 Azure Stack Hub Microsoft Nagios 外掛程式。
Nagios 監視外掛程式是與合作夥伴 Cloudbase Solutions 一起開發,該解決方案以寬鬆的免費軟體授權提供 - 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: | 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(系統管理員) 端點 (https://adminmanagement.[region].[ 的本機電腦上安裝 PowerShell。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 中監視健康情況和警示。