Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie die Ereignisprotokollierung für Azure Cloud HSM konfiguriert haben, verfügen Sie bereits über eine funktionierende Diagnoseeinstellung auf Ihrem Cloud HSM-Cluster, die HsmServiceOperations Protokolle an Speicher und Log Analytics weiterleiten. Um Event Hubs als Ziel hinzuzufügen, fügen Sie dieser Diagnoseeinstellung ein drittes Ziel hinzu, oder erstellen Sie eine neue, die auf Event Hubs ausgerichtet ist.
Azure Monitor Diagnoseeinstellungen unterstützen mehrere Ziele gleichzeitig. Da Ihre Log Analytics-Pipeline bereits beweist, dass die Protokollemissionen von Cloud HSM funktionieren, wird Event Hubs zu einem weiteren Ziel, das dieselbe HsmServiceOperations Kategorie empfängt.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen Sie einen Event Hub-Namespace und einen Event Hub für Cloud HSM-Protokolle.
- Konfigurieren Sie Autorisierungsregeln mit den geringsten Rechten.
- Aktualisieren Sie Diagnoseeinstellungen, um Protokolle an Event Hubs zu streamen.
- Stellen Sie sicher, dass Event Hubs Cloud HSM-Vorgangsereignisse empfängt.
Voraussetzungen
- Eine bereitgestellte und aktivierte Azure Cloud HSM-Ressource. Weitere Informationen finden Sie im Azure Cloud HSM-Onboardinghandbuch.
- Diagnoseeinstellungen, die Vorgangsereignisprotokolle an Speicher und Log Analytics senden. Weitere Informationen finden Sie unter Konfiguration und Abfrage von Ereignisprotokollen für Azure Cloud HSM.
-
Contributor- oderMonitoring Contributor-Rolle in der Ressourcengruppe für Cloud HSM.
Überprüfen, ob die Protokollressourcengruppe vorhanden ist
Event Hubs sollten in derselben Ressourcengruppe bereitgestellt werden, die Ihr Speicherkonto und Ihren Log Analytics-Arbeitsbereich zur Betriebsereignisprotokollierung enthält. Wenn Sie die Betriebsereignisprotokollierung nicht eingerichtet haben, folgen Sie zuerst den Anweisungen in Konfigurieren und Abfragen der Protokollierung von Betriebsvorgangsereignissen für Azure Cloud HSM.
Überprüfen Sie, ob Ihre zielorientierte Ressourcengruppe vorhanden ist:
az group show --name "<resource-group>" --query "{name:name, location:location}" --output table
Erstellen eines Event Hubs-Namespaces
Der Namespace ist der Container, der einen oder mehrere Event Hubs enthält. Verwenden Sie die Standardebene , die für die Integration von Diagnoseeinstellungen erforderlich ist.
az eventhubs namespace create \
--name "<eventhub-namespace>" \
--resource-group "<resource-group>" \
--location "<location>" \
--sku Standard \
--capacity 1 \
--enable-auto-inflate false
Schlüsseloptionen:
- Standard-SKU: Die Basisebene unterstützt keine Diagnoseeinstellungen als Ziel.
- Kapazität 1: Eine Durchsatzeinheit (1-MB/s-Eingang, 2-MB/s-Ausgang) reicht für HSM-Überwachungsprotokolle aus.
- Autoinflate deaktiviert: Das HSM-Log-Volumen ist niedrig, daher ist Autoinflate nicht erforderlich.
Erstellen eines Event Hubs im Namespace
Um die Cloud HSM-Protokolle zu empfangen, erstellen Sie einen Event Hub im Namespace.
az eventhubs eventhub create \
--name "cloudhsm-logs" \
--namespace-name "<eventhub-namespace>" \
--resource-group "<resource-group>" \
--partition-count 2 \
--retention-time-in-hours 168 \
--cleanup-policy Delete
Schlüsseloptionen:
- Partitionsanzahl 2: Zwei Partitionen sind für den HSM-Überwachungsprotokolldurchsatz ausreichend.
- Aufbewahrungszeit von 168 Stunden: Nachrichten sieben Tage lang aufbewahren (das Maximum für die Standardebene).
- Bereinigungsrichtlinie Löschen: Löschen von Nachrichten nach Ablauf des Aufbewahrungszeitraums.
Erstellen einer Consumergruppe
Erstellen Sie eine dedizierte Verbrauchergruppe für die nachgeschaltete Verarbeitung. Reservieren Sie die Standardgruppe $Default für andere Verwendungen.
az eventhubs eventhub consumer-group create \
--name "azure-cloud-hsm" \
--namespace-name "<eventhub-namespace>" \
--eventhub-name "cloudhsm-logs" \
--resource-group "<resource-group>"
Erstellen einer Autorisierungsregel
Diagnoseeinstellungen benötigen "Senden" -Berechtigung zum Senden von Protokollen an den Event Hub. Erstellen Sie eine Zugriffsrichtlinie mit nur den erforderlichen Berechtigungen.
az eventhubs namespace authorization-rule create \
--name "DiagnosticSettingsSendRule" \
--namespace-name "<eventhub-namespace>" \
--resource-group "<resource-group>" \
--rights Send
Hinweis
Diese Regel gewährt nur Send Berechtigungen, nicht Listenoder Manage. Befolgen Sie das Prinzip der geringsten Rechte. Ihre nachgeschalteten Verbraucher (z. B. Azure Functions oder Stream Analytics) sollten eine separate Regel mit Listen-Berechtigung verwenden.
Rufen Sie die Ressourcen-ID der Autorisierungsregel ab
Rufen Sie die Ressourcen-ID der Autorisierungsregel zur Verwendung in der Diagnoseeinstellung ab.
authRuleId=$(az eventhubs namespace authorization-rule show \
--name "DiagnosticSettingsSendRule" \
--namespace-name "<eventhub-namespace>" \
--resource-group "<resource-group>" \
--query id --output tsv)
echo "Auth Rule ID: $authRuleId"
Speichern Sie diesen Wert für die Verwendung im nächsten Schritt.
Aktualisieren der Diagnoseeinstellung zum Hinzufügen von Event Hubs
Sie haben zwei Optionen zum Hinzufügen von Event Hubs als Ziel:
Option A: Aktualisieren der vorhandenen Diagnoseeinstellung (empfohlen)
Mit diesem Ansatz wird Ihre vorhandene Diagnoseeinstellung aktualisiert, um Event Hubs hinzuzufügen, während Speicher und Log Analytics beibehalten werden.
# Set your resource group variables
hsmResourceGroup="<resource-group>"
logsResourceGroup="<resource-group>"
# Find the HSM cluster name (auto-generated during deployment)
hsmClusterName=$(az resource list \
--resource-group $hsmResourceGroup \
--resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
--query "[0].name" --output tsv)
echo "HSM Cluster: $hsmClusterName"
# Get the HSM cluster resource ID
hsmResourceId=$(az resource show \
--resource-group $hsmResourceGroup \
--resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
--name $hsmClusterName \
--query id --output tsv)
# Get your existing storage account ID
storageAccountId=$(az storage account list \
--resource-group $logsResourceGroup \
--query "[0].id" --output tsv)
# Get your existing Log Analytics workspace ID
workspaceId=$(az monitor log-analytics workspace list \
--resource-group $logsResourceGroup \
--query "[0].id" --output tsv)
# Get the Event Hub auth rule ID
authRuleId=$(az eventhubs namespace authorization-rule show \
--name "DiagnosticSettingsSendRule" \
--namespace-name "<eventhub-namespace>" \
--resource-group $logsResourceGroup \
--query id --output tsv)
# Update the diagnostic setting with all three destinations
az monitor diagnostic-settings create \
--name "<diagnostic-setting-name>" \
--resource $hsmResourceId \
--storage-account $storageAccountId \
--workspace $workspaceId \
--event-hub "cloudhsm-logs" \
--event-hub-rule $authRuleId \
--logs '[{"category":"HsmServiceOperations","enabled":true}]'
Von Bedeutung
Sowohl CLI- als auch PowerShell-Befehle ersetzen die gesamte Diagnoseeinstellung, wenn der Name einem vorhandenen entspricht. Sie müssen das Speicherkonto und den Arbeitsbereich erneut einschließen, oder diese Zielorte werden entfernt.
Option B: Erstellen einer separaten Diagnoseeinstellung nur für Event Hubs
Wenn Sie ihre vorhandene Einstellung lieber unverändert beibehalten und eine zweite hinzufügen möchten,
# Find the HSM cluster name
hsmClusterName=$(az resource list \
--resource-group "<resource-group>" \
--resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
--query "[0].name" --output tsv)
hsmResourceId=$(az resource show \
--resource-group "<resource-group>" \
--resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
--name $hsmClusterName \
--query id --output tsv)
authRuleId=$(az eventhubs namespace authorization-rule show \
--name "DiagnosticSettingsSendRule" \
--namespace-name "<eventhub-namespace>" \
--resource-group "<resource-group>" \
--query id --output tsv)
az monitor diagnostic-settings create \
--name "chsm-eventhub-diagnostic-setting" \
--resource $hsmResourceId \
--event-hub "cloudhsm-logs" \
--event-hub-rule $authRuleId \
--logs '[{"category":"HsmServiceOperations","enabled":true}]'
Hinweis
Azure unterstützt bis zu fünf Diagnoseeinstellungen pro Ressource. Eine zweite Einstellung ist sinnvoll und ermöglicht eine klare Trennung der Bedenken.
Überprüfen, ob Event Hubs Nachrichten empfängt
Überprüfen Sie nach der Konfiguration der Diagnoseeinstellung, ob Event Hubs Cloud HSM-Protokolle empfängt.
Überprüfen der Diagnoseeinstellung im Portal
- Wechseln Sie im Azure-Portal zu Ihrem Cloud HSM-Cluster.
- Wählen Sie unter Überwachung die Option Diagnoseeinstellungen aus.
- Vergewissern Sie sich, dass Event Hubs als Ziel aufgeführt ist.
Überprüfen von Event Hubs-Metriken
Führen Sie den folgenden Befehl aus, um eingehende Nachrichten über die letzte Stunde zu überprüfen:
# Get your subscription ID
subId=$(az account show --query id --output tsv)
# Check incoming messages (last 1 hour)
az monitor metrics list \
--resource "/subscriptions/$subId/resourceGroups/<resource-group>/providers/Microsoft.EventHub/namespaces/<eventhub-namespace>" \
--metric "SuccessfulRequests" \
--interval PT1H \
--output table
Anzeigen von Nachrichten (optional)
Wenn Sie einige Nachrichten lesen möchten, um Inhalte zu bestätigen, erstellen Sie eine Listenregel :
# Create a Listen rule for your consumer
az eventhubs namespace authorization-rule create \
--name "ConsumerListenRule" \
--namespace-name "<eventhub-namespace>" \
--resource-group "<resource-group>" \
--rights Listen
# Get the connection string
az eventhubs namespace authorization-rule keys list \
--name "ConsumerListenRule" \
--namespace-name "<eventhub-namespace>" \
--resource-group "<resource-group>" \
--query primaryConnectionString --output tsv
Sie können diese Verbindungszeichenfolge mit Azure Event Hubs Explorer, der Visual Studio Code Event Hubs-Erweiterung oder einem Python Skript verwenden, um Nachrichten anzuzeigen.