- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Supported OS
Kafka 브로커 메트릭을 확인하여 Kafka 클러스터 상태와 성능을 실시간으로 전방위 모니터링하세요. 이 통합을 통해, Kafka 배포에서 메트릭과 로그를 수집하여 텔레메트리를 시각화하고 Kafka 스택 성능에 대한 알림을 받을 수 있습니다.
참고:
에이전트의 Kafka 점검에는 Datadog 에이전트 패키지가 포함되어 있으므로 Kafka 노드에 추가로 설치할 필요가 없습니다.
점검은 JMXFetch를 사용해 JMX에서 메트릭을 수집합니다. 에이전트에서 JMXFetch를 실행하려면 각 kafka 노드에 JVM이 필요합니다. 이를 위해 Kafka가 사용하는 것과 동일한 JVM을 사용할 수 있습니다.
참고: Kafka 점검은 Apache Kafka(Amazon MSK) 관리형 스트리밍과 함께 사용할 수 없습니다. 대신 Amazon MSK 통합을 사용하세요.
호스트에서 실행 중인 에이전트에 이 점검을 구성하는 방법:
에이전트 설정 디렉터리 루트에 있는 conf.d/
폴더에서 kafka.d/conf.yaml
파일을 편집합니다. Kafka 빈 이름은 실행 중인 실제 Kafka 버전에 따라 달라집니다. 에이전트와 함께 제공되는 예시 설정 파일이 가장 최신 설정이므로 이 파일을 기본으로 사용합니다. 참고: 예시의 에이전트 버전은 설치한 것보다 더 최신 에이전트 버전일 수 있습니다.
에이전트 버전 > 6.0에서 사용 가능
Kafka는 기본적으로 log4j
로거를 사용합니다. 파일에 로깅을 활성화하고 형식을 커스터마이즈하려면 log4j.properties
파일을 편집하세요.
# Set root logger level to INFO and its only appender to R
log4j.rootLogger=INFO, R
log4j.appender.R.File=/var/log/kafka/server.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
기본적으로 Datadog 통합 파이프라인은 다음과 같은 변환 패턴을 지원합니다.
%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
%d [%t] %-5p %c - %m%n
%r [%t] %p %c %x - %m%n
[%d] %p %m (%c)%n
다른 형식을 사용하는 경우 통합 파이프라인을 복제하여 편집합니다.
로그 수집은 Datadog 에이전트에서 기본적으로 비활성화되어 있습니다. datadog.yaml
파일에서 활성화합니다.
logs_enabled: true
kafka.d/conf.yaml
파일에 다음 설정 블록을 추가합니다. 환경에 따라 path
및 service
파라미터 값을 변경합니다. 사용 가능한 모든 설정 옵션은 kafka.d/conf.yaml 샘플을 참조하세요.
logs:
- type: file
path: /var/log/kafka/server.log
source: kafka
service: myapp
#To handle multi line that starts with yyyy-mm-dd use the following pattern
#log_processing_rules:
# - type: multi_line
# name: log_start_with_date
# pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
컨테이너화된 환경의 경우 JMX를 사용한 자동탐지 가이드를 참조하세요.
에이전트 버전 > 6.0에서 사용 가능
Datadog 에이전트에서 로그 수집은 기본값으로 비활성화되어 있습니다. 이를 활성화하려면 쿠버네티스(Kubernetes) 로그 수집을 참조하세요.
파라미터 | 값 |
---|---|
<LOG_CONFIG> | {"source": "kafka", "service": "<SERVICE_NAME>"} |
에이전트 상태 하위 명령어를 실행하고 JMXFetch 섹션에서 kafka
를 찾습니다.
========
JMXFetch
========
Initialized checks
==================
kafka
instance_name : kafka-localhost-9999
message :
metric_count : 46
service_check_count : 0
status : OK
kafka.consumer.bytes_consumed (gauge) | The average number of bytes consumed per second for a specific topic. Shown as byte |
kafka.consumer.bytes_in (gauge) | Consumer bytes in rate. Shown as byte |
kafka.consumer.delayed_requests (gauge) | Number of delayed consumer requests. Shown as request |
kafka.consumer.expires_per_second (gauge) | Rate of delayed consumer request expiration. Shown as eviction |
kafka.consumer.fetch_rate (gauge) | The minimum rate at which the consumer sends fetch requests to a broker. Shown as request |
kafka.consumer.fetch_size_avg (gauge) | The average number of bytes fetched per request for a specific topic. Shown as byte |
kafka.consumer.fetch_size_max (gauge) | The maximum number of bytes fetched per request for a specific topic. Shown as byte |
kafka.consumer.kafka_commits (gauge) | Rate of offset commits to Kafka. Shown as write |
kafka.consumer.max_lag (gauge) | Maximum consumer lag. Shown as offset |
kafka.consumer.messages_in (gauge) | Rate of consumer message consumption. Shown as message |
kafka.consumer.records_consumed (gauge) | The average number of records consumed per second for a specific topic. Shown as record |
kafka.consumer.records_per_request_avg (gauge) | The average number of records in each request for a specific topic. Shown as record |
kafka.consumer.zookeeper_commits (gauge) | Rate of offset commits to ZooKeeper. Shown as write |
kafka.expires_sec (gauge) | Rate of delayed producer request expiration. Shown as eviction |
kafka.follower.expires_per_second (gauge) | Rate of request expiration on followers. Shown as eviction |
kafka.log.flush_rate.rate (gauge) | Log flush rate. Shown as flush |
kafka.messages_in.rate (gauge) | Incoming message rate. Shown as message |
kafka.net.bytes_in.rate (gauge) | Incoming byte rate. Shown as byte |
kafka.net.bytes_out (gauge) | Outgoing byte total. Shown as byte |
kafka.net.bytes_out.rate (gauge) | Outgoing byte rate. Shown as byte |
kafka.net.bytes_rejected.rate (gauge) | Rejected byte rate. Shown as byte |
kafka.net.processor.avg.idle.pct.rate (gauge) | Average fraction of time the network processor threads are idle. Shown as fraction |
kafka.producer.available_buffer_bytes (gauge) | The total amount of buffer memory that is not being used (either unallocated or in the free list) Shown as byte |
kafka.producer.batch_size_avg (gauge) | The average number of bytes sent per partition per-request. Shown as byte |
kafka.producer.batch_size_max (gauge) | The max number of bytes sent per partition per-request. Shown as byte |
kafka.producer.buffer_bytes_total (gauge) | The maximum amount of buffer memory the client can use (whether or not it is currently used). Shown as byte |
kafka.producer.bufferpool_wait_ratio (gauge) | The fraction of time an appender waits for space allocation. |
kafka.producer.bufferpool_wait_time (gauge) | The fraction of time an appender waits for space allocation. |
kafka.producer.bufferpool_wait_time_ns_total (gauge) | The total time in nanoseconds an appender waits for space allocation. Shown as nanosecond |
kafka.producer.bytes_out (gauge) | Producer bytes out rate. Shown as byte |
kafka.producer.compression_rate (gauge) | The average compression rate of record batches for a topic Shown as fraction |
kafka.producer.compression_rate_avg (rate) | The average compression rate of record batches. Shown as fraction |
kafka.producer.delayed_requests (gauge) | Number of producer requests delayed. Shown as request |
kafka.producer.expires_per_seconds (gauge) | Rate of producer request expiration. Shown as eviction |
kafka.producer.io_wait (gauge) | Producer I/O wait time. Shown as nanosecond |
kafka.producer.message_rate (gauge) | Producer message rate. Shown as message |
kafka.producer.metadata_age (gauge) | The age in seconds of the current producer metadata being used. Shown as second |
kafka.producer.record_error_rate (gauge) | The average per-second number of errored record sends for a topic Shown as error |
kafka.producer.record_queue_time_avg (gauge) | The average time in ms record batches spent in the record accumulator. Shown as millisecond |
kafka.producer.record_queue_time_max (gauge) | The maximum time in ms record batches spent in the record accumulator. Shown as millisecond |
kafka.producer.record_retry_rate (gauge) | The average per-second number of retried record sends for a topic Shown as record |
kafka.producer.record_send_rate (gauge) | The average number of records sent per second for a topic Shown as record |
kafka.producer.record_size_avg (gauge) | The average record size. Shown as byte |
kafka.producer.record_size_max (gauge) | The maximum record size. Shown as byte |
kafka.producer.records_per_request (gauge) | The average number of records sent per second. Shown as record |
kafka.producer.request_latency_avg (gauge) | Producer average request latency. Shown as millisecond |
kafka.producer.request_latency_max (gauge) | The maximum request latency in ms. Shown as millisecond |
kafka.producer.request_rate (gauge) | Number of producer requests per second. Shown as request |
kafka.producer.requests_in_flight (gauge) | The current number of in-flight requests awaiting a response. Shown as request |
kafka.producer.response_rate (gauge) | Number of producer responses per second. Shown as response |
kafka.producer.throttle_time_avg (gauge) | The average time in ms a request was throttled by a broker. Shown as millisecond |
kafka.producer.throttle_time_max (gauge) | The maximum time in ms a request was throttled by a broker. Shown as millisecond |
kafka.producer.waiting_threads (gauge) | The number of user threads blocked waiting for buffer memory to enqueue their records. Shown as thread |
kafka.replication.active_controller_count (gauge) | Number of active controllers in the cluster. Shown as node |
kafka.replication.isr_expands.rate (gauge) | Rate of replicas joining the ISR pool. Shown as node |
kafka.replication.isr_shrinks.rate (gauge) | Rate of replicas leaving the ISR pool. Shown as node |
kafka.replication.leader_count (gauge) | Number of leaders on this broker. Shown as node |
kafka.replication.leader_elections.rate (gauge) | Leader election rate. Shown as event |
kafka.replication.max_lag (gauge) | Maximum lag in messages between the follower and leader replicas. Shown as offset |
kafka.replication.offline_partitions_count (gauge) | Number of partitions that don't have an active leader. |
kafka.replication.partition_count (gauge) | Number of partitions across all topics in the cluster. |
kafka.replication.unclean_leader_elections.rate (gauge) | Unclean leader election rate. Shown as event |
kafka.replication.under_min_isr_partition_count (gauge) | Number of under min ISR partitions. |
kafka.replication.under_replicated_partitions (gauge) | Number of under replicated partitions. |
kafka.request.channel.queue.size (gauge) | Number of queued requests. Shown as request |
kafka.request.fetch.failed.rate (gauge) | Client fetch request failures rate. Shown as request |
kafka.request.fetch_consumer.rate (gauge) | Fetch consumer requests rate. Shown as request |
kafka.request.fetch_consumer.time.99percentile (gauge) | Total time in ms to serve the specified request. Shown as millisecond |
kafka.request.fetch_consumer.time.avg (gauge) | Total time in ms to serve the specified request. Shown as millisecond |
kafka.request.fetch_follower.rate (gauge) | Fetch follower requests rate. Shown as request |
kafka.request.fetch_follower.time.99percentile (gauge) | Total time in ms to serve the specified request. Shown as millisecond |
kafka.request.fetch_follower.time.avg (gauge) | Total time in ms to serve the specified request. Shown as millisecond |
kafka.request.fetch_request_purgatory.size (gauge) | Number of requests waiting in the producer purgatory. Shown as request |
kafka.request.handler.avg.idle.pct.rate (gauge) | Average fraction of time the request handler threads are idle. Shown as fraction |
kafka.request.metadata.time.99percentile (gauge) | Time for metadata requests for 99th percentile. Shown as millisecond |
kafka.request.metadata.time.avg (gauge) | Average time for metadata request. Shown as millisecond |
kafka.request.offsets.time.99percentile (gauge) | Time for offset requests for 99th percentile. Shown as millisecond |
kafka.request.offsets.time.avg (gauge) | Average time for an offset request. Shown as millisecond |
kafka.request.produce.failed.rate (gauge) | Failed produce requests rate. Shown as request |
kafka.request.produce.rate (gauge) | Produce requests rate. Shown as request |
kafka.request.produce.time.99percentile (gauge) | Time for produce requests for 99th percentile. Shown as millisecond |
kafka.request.produce.time.avg (gauge) | Average time for a produce request. Shown as millisecond |
kafka.request.producer_request_purgatory.size (gauge) | Number of requests waiting in the producer purgatory Shown as request |
kafka.request.update_metadata.time.99percentile (gauge) | Time for update metadata requests for 99th percentile. Shown as millisecond |
kafka.request.update_metadata.time.avg (gauge) | Average time for a request to update metadata. Shown as millisecond |
kafka.server.socket.connection_count (gauge) | Number of currently open connections to the broker. Shown as connection |
kafka.session.fetch.count (gauge) | Number of fetch sessions. |
kafka.session.fetch.eviction (gauge) | Eviction rate of fetch session. Shown as event |
kafka.session.zookeeper.disconnect.rate (gauge) | Zookeeper client disconnect rate. Shown as event |
kafka.session.zookeeper.expire.rate (gauge) | Zookeeper client session expiration rate. Shown as event |
kafka.session.zookeeper.readonly.rate (gauge) | Zookeeper client readonly rate. Shown as event |
kafka.session.zookeeper.sync.rate (gauge) | Zookeeper client sync rate. Shown as event |
kafka.topic.messages_in.rate (gauge) | Incoming message rate by topic Shown as message |
kafka.topic.net.bytes_in.rate (gauge) | Incoming byte rate by topic. Shown as byte |
kafka.topic.net.bytes_out.rate (gauge) | Outgoing byte rate by topic. Shown as byte |
kafka.topic.net.bytes_rejected.rate (gauge) | Rejected byte rate by topic. Shown as byte |
Kafka 점검은 이벤트를 포함하지 않습니다.
kafka.can_connect
Returns CRITICAL
if the Agent is unable to connect to and collect metrics from the monitored Kafka instance, WARNING
if no metrics are collected, and OK
otherwise.
Statuses: ok, critical, warning
이 에이전트 통합은 Kafka 소비자로부터 메시지 오프셋 메트릭을 수집합니다. 이 점검은 Kafka 브로커로부터 하이워터 오프셋을, Kafka(또는 기존 고객의 경우 Zookeeper)에 저장된 소비자 오프셋을 전달한 다음 소비자 지연을 계산합니다(브로커 오프셋 및 소비자 오프셋 간 차이).
참고:
에이전트의 Kafka 소비자 점검은 Datadog 에이전트 패키지에 포함되어 있습니다. Kafka 노드에 별도의 설치가 필요하지 않습니다.
Kafka 소비자를 실행하는 호스트에서 실행되는 에이전트 점검을 설정하려면
에이전트 설정 디렉토리 루트의 conf.d/
폴더에 있는 kafka_consumer.d/conf.yaml
파일을 편집합니다. 사용 가능한 모든 설정 옵션은 kafka_consumer.d/conf.yaml 샘플을 참조하세요.
이 점검은 추가 로그를 수집하지 않습니다. Kafka 브로커에서 로그를 수집하려면 Kafka 로그 수집 지침을 참조하세요.
컨테이너화된 환경의 경우 자동탐지 통합 템플릿에 아래 파라미터를 적용하는 방법이 안내되어 있습니다.
파라미터 | 값 |
---|---|
<INTEGRATION_NAME> | kafka_consumer |
<INIT_CONFIG> | 비어 있음 또는 {} |
<INSTANCE_CONFIG> | {"kafka_connect_str": <KAFKA_CONNECT_STR>} 예: {"kafka_connect_str": "server:9092"} |
이 점검은 추가 로그를 수집하지 않습니다. Kafka 브로커에서 로그를 수집하려면 Kafka 로그 수집 지침을 참조하세요.
에이전트 상태 하위 명령을 실행하고 점검 섹션에서 kafka_consumer
를 찾습니다.
kafka.broker_offset (gauge) | Current message offset on broker. Shown as offset |
kafka.consumer_lag (gauge) | Lag in messages between consumer and broker. Shown as offset |
kafka.consumer_offset (gauge) | Current message offset on consumer. Shown as offset |
kafka.estimated_consumer_lag (gauge) | Lag in seconds between consumer and broker. This metric is provided through Data Streams Monitoring. Additional charges may apply. Shown as second |
소비자_지연:
Datadog 에이전트는 consumer_lag
메트릭 값이 0 이하로 내려가면 topic
, partition
및 consumer_group
과 함께 태깅하여 이벤트를 내보냅니다.
Kafka 소비자 점검에는 서비스 점검이 포함되어 있지 않습니다.
Kerberos GSSAPI 인증
Kafka 클러스터 의 케베로스(Kerberos) 설정에 따라 다음을 설정해야 할 수도 있습니다.
tls_cert
및/또는 tls_ca_cert
옵션으로 설정해야 합니다.tls_private_key
옵션으로 설정해야 합니다. 해당되는 경우, 개인 키 비밀번호는 tls_private_key_password
로 설정해야 합니다.KRB5_CLIENT_KTNAME
환경 변수가 기본 경로(예: KRB5_CLIENT_KTNAME=/etc/krb5.keytab
)와 다른 경우 클라이언트의 케베로스 키 탭 위치를 가리키는 환경 변수를 의미합니다.KRB5CCNAME
환경 변수가 기본 경로(예: KRB5CCNAME=/tmp/krb5cc_xxx
)와 다른 경우 Kafka 클라이언트 의 Kerberos 자격 증명 티켓 캐시를 가리키는 환경 변수를 의미합니다.systemd
환경을 생각해 볼 수 있습니다.리눅스 시스템 예시
/path/to/environment/file
KRB5_CLIENT_KTNAME=/etc/krb5.keytab
KRB5CCNAME=/tmp/krb5cc_xxx
Datadog 에이전트 서비스 설정 재정의 파일을 생성합니다. sudo systemctl edit datadog-agent.service
재정의 파일에 다음을 설정합니다.
[Service]
EnvironmentFile=/path/to/environment/file
sudo systemctl daemon-reload
sudo systemctl restart datadog-agent.service
sudo service datadog-agent restart