Analysieren von Protokollen für Apache Kafka in HDInsight

Erfahren Sie, wie Sie mithilfe von Azure Monitor-Protokollen in Apache Kafka generierte Protokolle in HDInsight analysieren.

Hinweis

Dieser Artikel wurde kürzlich aktualisiert, um den Begriff Azure Monitor-Protokolle anstelle von Log Analytics aufzunehmen. Protokolldaten werden immer noch in einem Log Analytics-Arbeitsbereich gespeichert und weiterhin mit dem gleichen Log Analytics-Dienst erfasst und analysiert. Die Terminologie hat sich geändert, um der Rolle von Protokollen in Azure Monitor besser Rechnung zu tragen. Weitere Informationen finden Sie unter Terminologieänderungen bei Azure Monitor.

Protokollspeicherort

Apache Kafka-Protokolle im Cluster befinden sich unter /var/log/kafka. Kafka-Protokolle werden unabhängig davon, ob verwaltete Datenträger verwendet werden, nicht über Clusterlebenszyklen hinweg gespeichert oder beibehalten. Die verfügbaren Protokolle sind in der nachfolgenden Tabelle aufgeführt.

Log BESCHREIBUNG
kafka.out „stdout“ und „stderr“ des Kafka-Prozesses. In dieser Datei finden Sie die Protokolle zum Starten und Herunterfahren von Kafka.
server.log Das Hauptprotokoll des Kafka-Servers. Alle Kafka-Brokerprotokolle werden hierin aufgenommen.
controller.log Controllerprotokolle, wenn der Broker als Controller fungiert.
statechange.log Alle Statusänderungsereignisse für Broker werden in dieser Datei protokolliert.
kafka-gc.log Statistiken zur Kafka-Garbage Collection.

Azure Monitor-Protokolle für Apache Kafka aktivieren

Die Schritte zum Aktivieren von Azure Monitor-Protokollen für HDInsight sind für alle HDInsight-Cluster identisch. Verwenden Sie die folgenden Links, um zu verstehen, wie die erforderlichen Dienste erstellt und konfiguriert werden:

  1. Erstellen Sie einen Log Analytics-Arbeitsbereich. Weitere Informationen finden Sie im Dokument Protokolle in Azure Monitor.

  2. Erstellen Sie ein Kafka-Cluster im HDInsight-Cluster. Weitere Informationen finden Sie unter Einstieg in Apache Kafka in HDInsight.

  3. Konfigurieren Sie den Kafka-Cluster für die Verwendung von Azure Monitor-Protokollen. Weitere Informationen finden Sie im Dokument Verwenden von Azure Monitor-Protokollen zum Überwachen von HDInsight.

Wichtig

Es dauert ca. 20 Minuten, bis die Daten für Azure Monitor-Protokolle zur Verfügung stehen.

Abfrageprotokolle

  1. Wählen Sie im Azure-Portal Ihren Log Analytics-Arbeitsbereich aus.

  2. Wählen Sie im linken Menü unter Allgemein die Option Protokolle aus. In dieser Ansicht können Sie die von Kafka gesammelten Daten suchen. Geben Sie eine Abfrage im Abfragefenster ein, und wählen Sie dann Ausführen aus. Nachfolgend sehen Sie einige Beispielsuchen:

  • Datenträgerauslastung:

    Perf
    | where ObjectName == "Logical Disk" and CounterName == "Free Megabytes" and InstanceName == "_Total" and ((Computer startswith_cs "hn" and Computer contains_cs "-") or (Computer startswith_cs "wn" and Computer contains_cs "-")) 
    | summarize AggregatedValue = avg(CounterValue) by Computer, bin(TimeGenerated, 1h)
    
  • CPU-Auslastung:

    Perf 
    | where CounterName == "% Processor Time" and InstanceName == "_Total" and ((Computer startswith_cs "hn" and Computer contains_cs "-") or (Computer startswith_cs "wn" and Computer contains_cs "-")) 
    | summarize AggregatedValue = avg(CounterValue) by Computer, bin(TimeGenerated, 1h)
    
  • Eingehende Nachrichten pro Sekunde: (Ersetzen Sie your_kafka_cluster_name durch den Namen des Clusters.)

    metrics_kafka_CL 
    | where ClusterName_s == "your_kafka_cluster_name" and InstanceName_s == "kafka-BrokerTopicMetrics-MessagesInPerSec-Count" 
    | summarize AggregatedValue = avg(kafka_BrokerTopicMetrics_MessagesInPerSec_Count_value_d) by HostName_s, bin(TimeGenerated, 1h)
    
  • Eingehende Bytes pro Sekunde: (Ersetzen Sie wn0-kafka durch den Hostnamen eines Workerknotens.)

    metrics_kafka_CL 
    | where HostName_s == "wn0-kafka" and InstanceName_s == "kafka-BrokerTopicMetrics-BytesInPerSec-Count" 
    | summarize AggregatedValue = avg(kafka_BrokerTopicMetrics_BytesInPerSec_Count_value_d) by bin(TimeGenerated, 1h)
    
  • Ausgehende Bytes pro Sekunde: (Ersetzen Sie your_kafka_cluster_name durch den Namen des Clusters.)

    metrics_kafka_CL 
    | where ClusterName_s == "your_kafka_cluster_name" and InstanceName_s == "kafka-BrokerTopicMetrics-BytesOutPerSec-Count" 
    | summarize AggregatedValue = avg(kafka_BrokerTopicMetrics_BytesOutPerSec_Count_value_d) by bin(TimeGenerated, 1h)
    

    Sie können auch * eingeben, um alle protokollierte Typen zu suchen. Derzeit sind folgende Protokolle für Abfragen verfügbar:

    Protokolltyp BESCHREIBUNG
    log_kafkaserver_CL server.log des Kafka-Brokers
    log_kafkacontroller_CL controller.log des Kafka-Brokers
    metrics_kafka_CL Kafka-JMX-Metriken

    Apache kafka log analytics cpu usage.

Nächste Schritte

Weitere Informationen zu Azure Monitor finden Sie unter Azure Monitor – Übersicht und Abfragen von Azure Monitor-Protokollen zum Überwachen von HDInsight-Clustern.

Weitere Informationen zum Arbeiten mit Apache Kafka finden Sie in den folgenden Dokumenten: