著作權: 年份: 2019、2020、2021 前次更新: "2023-04-13"
Monitoring and Instrumenting Microsoft® Azure with Azure 代理程式
「 Azure 代理程式」會從 Azure API 收集資料,以監視 Azure所管理的服務。
附註: 若要遠端監視 Kubernetes 或 Red Hat OpenShift 叢集中的 Azure ,請不要在叢集的每一個節點上安裝 Instana Azure 代理程式。 在專用主機上安裝 Azure 代理程式。
受監視服務
Instrumented 服務
可以檢測下列服務:
安裝
附註: 本文件涵蓋安裝 Azure 代理程式,可讓您從 Azure API 收集資料,以監視 Azure所管理的服務。
如果您想要監視在 Azure Kubernetes Service上執行的 Azure 虛擬機器或 Kubernetes 叢集,請參閱 安裝 Instana 主機代理程式 文件。
附註: 視雲端環境中受監視實體的數目而定,您可能需要增加主機代理程式的可用記憶體數量上限。 透過將環境變數 AGENT_MAX_MEM 設定為大於預設值 512MB,可以增加代理程式記憶體。 例如,若要將代理程式記憶體設為 1GB,您可以設定 AGENT_MAX_MEM=1024mb。
Azure 代理程式必須安裝在 Azure 環境內或外部的主機上。 每一個 Azure 代理程式都可以監視一個訂閱的遠端服務,因此您需要多個 Azure 代理程式來監視多個 Azure 訂閱。
在 Azure 入口網站中,使用資源的讀取權 建立服務主體帳戶 。
在代理程式的 configuration.yaml 檔案中啟用 Azure 感應器。 最小感應器配置如下所示:
com.instana.plugin.azure: enabled: true subscription: "[Your-Subscription-Id]" tenant: "[Your-Tenant-Id]" principals: - id: "[Your-Service-Principal-Account-Id]" secret: "[Your-Service-Principal-Secret]"
附註: 請確定「服務主體密碼」已編碼 Base64 。 當您使用 Azure 入口網站來建立密鑰時,該密鑰已編碼,無需重新編碼即可輕鬆將其直接複製到配置檔。
主機代理程式需要重新啟動才能套用新的配置,在此之後代理程式可以自動探索指定訂閱上支援的遠端服務。
配置
過濾及標記
Azure 代理程式支援過濾 Azure 服務。 服務及其實例的過濾是以標籤和資源群組為基礎。
如需如何將標籤套用至 Azure 資源的相關資訊,請參閱 使用標籤來組織 Azure 資源及管理階層 文件。 如需在 Azure中定義資源群組的相關資訊,請參閱 何謂 Azure Resource Manager?。
透過修改 Azure 代理程式的代理程式配置檔 /opt/instana/agent/etc/instana/configuration.yaml 來套用過濾,如下所示:
com.instana.plugin.azure:
# Comma separated list of tags in key:value format
include_tags:
# Comma separated list of tags in key:value format
exclude_tags:
# Comma separated list of resource groups
include_resource_groups:
# Comma separated list of resource groups
exclude_resource_groups:
也可以在特定服務層次套用過濾; 如需相關資訊,請參閱特定服務的文件 (從 受監視服務 一節鏈結)。
多個服務主體
Azure Monitoring API 隨附每個服務主體的 12000 要求限制,這會限制 Azure 代理程式可以監視的服務數目。 若要克服此限制,您可以建立多個服務主體。 如需如何建立服務原則的相關資訊,請參閱 如何: 使用 Azure PowerShell 來建立具有憑證的服務主體 文件。
建立服務主體之後,請更新 Azure 代理程式主機上的 /opt/instana/agent/etc/instana/configuration.yaml 檔案,如下所示:
com.instana.plugin.azure:
enabled: true
subscription: "[Your-Subscription-Id]"
tenant: "[Your-Tenant-Id]"
principals:
- id: "[Your-Service-Principal-Account-Id-1]"
secret: "[Your-Base64-encoded-Service-Principal-Secret-1]"
- id: "[Your-Service-Principal-Account-Id-2]"
secret: "[Your-Base64-encoded-Service-Principal-Secret-2]"
附註: 這些主體配置的變更將由 Azure 代理程式熱重新載入,這表示它們將會生效,而無需重新啟動 Azure 代理程式。
根據 API 管理服務過濾 API
有時,每個 API Management Service 可能會有太多 API ,無法從中收集資料,也無法從中有效地發揮作用。 若要僅聚焦於那些重要 API ,有一個額外的配置選項,可透過定義如下的正規表示式來併入或完全過濾每個名稱的 API:
com.instana.plugin.azure.apimanagement:
monitorApiList:
- serviceName: 'robotShopApiGateway'
#inclusiveApiRegex: '^(API name 1|API name 2)$'
exclusiveApiRegex: '^(API name 1|API name 2)$'
如這個範例所示,您可以將複式正規表示式與 or 和 and搭配使用。 如果同時定義 inclusiveApiRegex 和 exclusiveApiRegex ,則會設定 exclusiveApiRegex 的優先順序。