HDInsight의 Apache Kafka에 대한 로그 분석

Azure Monitor 로그를 사용하여 HDInsight의 Apache Kafka에서 생성된 로그를 분석하는 방법을 알아봅니다.

참고 항목

이 문서는 Log Analytics 대신 Azure Monitor 로그라는 용어를 사용하도록 최근에 업데이트되었습니다. 로그 데이터는 여전히 Log Analytics 작업 영역에 저장되며 동일한 Log Analytics 서비스에 의해 계속 수집 및 분석됩니다. Azure Monitor에서 로그의 역할을 보다 잘 반영하기 위해 용어를 업데이트하고 있습니다. 자세한 내용은 Azure Monitor 용어 변경을 참조하세요.

로그 위치

클러스터의 Apache Kafka 로그는 /var/log/kafka에 있습니다. 관리 디스크를 사용하는지 여부에 관계 없이 Kafka 로그는 클러스터 수명 주기 간에 저장되거나 지속되지 않습니다. 사용 가능한 로그는 다음 표에 나와 있습니다.

로그 설명
kafka.out Kafka 프로세스의 stdout 및 stderr입니다. 이 파일에서 Kafka 시작 및 종료 로그를 찾을 수 있습니다.
server.log 주 Kafka 서버 로그입니다. 모든 Kafka broker 로그는 여기에서 종료됩니다.
controller.log Broker가 컨트롤러 역할을 하는 경우의 컨트롤러 로그입니다.
statechange.log Broker로의 모든 상태 변경 이벤트는 이 파일에 기록됩니다.
kafka-gc.log Kafka 가비지 수집 상태입니다.

Apache Kafka에 대해 Azure Monitor 로그 사용

HDInsight에 대한 Azure Monitor 로그를 사용하도록 설정하는 단계는 모든 HDInsight 클러스터에서 동일합니다. 다음 링크를 사용하여 필요한 서비스를 만들고 구성하는 방법을 이해하세요.

  1. Log Analytics 작업 영역을 만듭니다. 자세한 내용은 Azure Monitor의 로그 문서를 참조하세요.

  2. HDInsight 클러스터에서 Kafka를 만듭니다. 자세한 내용은 HDInsight에서 Apache Kafka 시작 문서를 참조하세요.

  3. Azure Monitor 로그를 사용하도록 Kafka 클러스터를 구성합니다. 자세한 내용은 Azure Monitor 로그를 사용하여 HDInsight 모니터링 문서를 참조하세요.

Important

Azure Monitor 로그에 데이터를 사용할 수 있을 때까지 약 20분 정도 걸릴 수 있습니다.

쿼리 로그

  1. Azure Portal에서 Log Analytics 작업 영역을 선택합니다.

  2. 왼쪽 메뉴의 일반에서 로그를 선택합니다. 여기서 Kafka에서 수집한 데이터를 검색할 수 있습니다. 쿼리 창에 쿼리를 입력한 다음 실행을 선택합니다. 다음은 검색 예제입니다.

  • 디스크 사용량:

    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 사용량:

    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)
    
  • 초당 들어오는 메시지: (your_kafka_cluster_name을 클러스터 이름으로 대체합니다.)

    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)
    
  • 초당 들어오는 바이트: (wn0-kafka를 작업자 노드 호스트 이름으로 대체합니다.)

    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)
    
  • 초당 나가는 바이트: (your_kafka_cluster_name을 클러스터 이름으로 대체합니다.)

    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)
    

    *를 입력하여 기록된 모든 종류를 검색할 수도 있습니다. 현재 다음 로그를 쿼리에 사용할 수 있습니다.

    로그 형식 설명
    log_kafkaserver_CL Kafka broker server.log
    log_kafkacontroller_CL Kafka broker controller.log
    metrics_kafka_CL Kafka JMX 메트릭

    Apache kafka log analytics cpu usage.

다음 단계

Azure Monitor에 대한 자세한 내용은 Azure Monitor 개요HDInsight 클러스터 모니터링을 위한 Azure Monitor 로그 쿼리를 참조하세요.

Apache Kafka 작업에 대한 자세한 내용은 다음 문서를 참조하세요.