Apache Kafka용 스트리밍 연결 사용
Apache Kafka for Apache Kafka를 사용하여 스트리밍 연결 환경을 ServiceNow 인스턴스에 연결합니다.
Apache Kafka 는 여러 시스템에서 데이터를 교환할 수 있는 통합 방법을 제공하는 분산 이벤트 스트리밍 플랫폼입니다. 스트리밍 연결 용 Apache Kafka Kafka 환경을 인스턴스에 ServiceNow 연결하여 인스턴스와 외부 시스템 간에 데이터를 스트리밍할 수 있습니다.
혜택
-
Kafka 이벤트를 대규모로 게시하고 처리합니다. 인스턴스에서 ServiceNow Kafka 환경으로 이벤트를 게시하고 외부 시스템의 Kafka 이벤트를 대량으로 짧은 대기 시간으로 사용합니다.
- Kafka 이벤트를 생성하고 사용하는 플로우를 빌드합니다. 스트리밍 연결 는 워크플로우 스튜디오Kafka 메시지를 게시하고 처리하는 로우코드 방식을 제공합니다.
- Kafka 환경에서 데이터를 임포트하고 기존의 강력한 변환 엔진(RTE) 또는 변환 맵 구성을 사용하여 해당 데이터를 처리합니다.
- Kafka 주제의 데이터를 처리하기 위해 자체 스크립트를 사용하는 소비자를 구성합니다.
- 통계 및 성과 메트릭에 대한 자세한 보고를 통해 소비자의 성과를 모니터링합니다.
- 직접 Kafka를 사용하여 온 프레미스 ServiceNow 인스턴스를 로컬 Kafka 환경과 통합합니다.
용어
스트리밍 연결 에서는 다음 용어를 사용합니다.
- 생산자
-
생산자가 Kafka 환경에 이벤트를 게시합니다. 스트리밍 연결 에는 두 명의 생산자가 있습니다.
- 워크플로우 스튜디오의 Kafka 생산자 단계
- ProducerV2 API
- 소비자
-
소비자는 Kafka 환경에서 이벤트를 읽고 처리합니다. 스트리밍 연결 에 여러 소비자가 있습니다.
- 워크플로우 스튜디오의 Kafka 메시지 트리거
- ETL(변환 로드) 추출 소비자
- 변환 맵 소비자
- 스크립트 소비자
- 주제 및 주제 네임스페이스
-
이벤트는 주제별로 구성되고 저장됩니다. 주제는 동일한 유형의 이벤트를 저장합니다. 주제가 분할됩니다. 이벤트에는 키가 있습니다. 키가 동일한 이벤트는 동일한 파티션에 저장됩니다.
주제는 주제 네임스페이스에 연결됩니다. 네임스페이스를 사용하여 논리적으로 주제를 구성할 수 있습니다. 예를 들어, 주제가 어떤 Kafka 클러스터에서 왔는지에 따라 주제를 그룹화할 수 있습니다. 또한 네임스페이스를 사용하여 도메인으로 구분된 인스턴스에서 주제에 액세스할 수 있는 도메인을 구성할 수도 있습니다. 자세한 내용은 문서를 참조하십시오.
- 주제 별칭
- 주제 별칭은 기본 Hermes 또는 직접 Kafka 주제에 연결할 수 있는 고유한 주제 이름입니다. 주제 별칭을 다른 인스턴스로 이동하고 각 인스턴스의 다른 기본 주제에 연결할 수 있습니다.
- 구독
-
구독은 소비자와 연결된 기록입니다. 메시지를 소비할 Kafka 주제의 이름 및 주제에 있는 파티션 수와 같은 소비자에 대한 구성 정보를 저장합니다. Kafka 스트림이 활성화되면 구독 기록이 생성됩니다.
각 구독 기록에는 주제를 읽은 소비자의 성과를 볼 수 있는 몇 가지 메트릭이 있습니다. 자세한 내용은 Kafka 구독 및 통계 보기 문서를 참조하십시오.
- 파티션 그룹
-
파티션 그룹은 주제 파티션의 세트입니다. 예를 들어 주제에 6개의 파티션이 있는 경우 각 그룹에 2개의 파티션이 있는 3개의 파티션 그룹으로 분할할 수 있습니다.
- Kafka 소비자 작업
-
주제의 새 이벤트가 있는지 Hermes를 정기적으로 확인하는 작업입니다. 이 작업은 사용 가능한 파티션 그룹을 선택하고 구독을 검색합니다. 구독은 주제 이름을 제공하고 작업은 파티션에서 해당 주제에 대한 메시지를 확인합니다.
- Kafka 스트림
-
Kafka 스트림은 소비자에 대한 데이터 스트림을 정의하는 기록입니다. 에서 Kafka 메시지 트리거 워크플로우 스튜디오를 사용하는 경우 Kafka 스트림이 자동으로 생성됩니다. 다른 소비자를 사용하는 경우 수동으로 만들어야 합니다.
Kafka 환경을 인스턴스에 ServiceNow 연결하기 위해 스트림 커넥트 Hermes 메시징 서비스는 . 를 사용하면 Hermes 메시징 서비스 인스턴스에서 대량의 Kafka 이벤트를 생성하고 사용할 수 있습니다. Kafka 환경과 인스턴스 간의 데이터 플로우를 관리합니다. 자세한 내용은 메시징 서비스를 참조하십시오.
다음 다이어그램에서는 의 주요 구성요소 스트리밍 연결중 일부를 보여줍니다.
용 안내 설정 사용 스트리밍 연결
안내 설정은 구성 스트리밍 연결에 도움이 될 수 있는 일련의 작업을 제공합니다. 안내 설정을 열려면 다음으로 이동하십시오. .
안내 설정 인터페이스 사용에 대한 자세한 내용은 안내 설정 사용을 참조하십시오.
스트리밍 연결 및 워크플로우 스튜디오
를 워크플로우 스튜디오사용하여 스트리밍 연결 Kafka 이벤트를 생성하고 사용하는 플로우를 빌드합니다. 스트리밍 연결 에는 Kafka 이벤트를 사용하기 위한 플로우 트리거와 이를 생성하기 위한 작업 단계가 있습니다.
Kafka 메시지 트리거를 사용하여 Kafka 이벤트를 처리하는 플로우를 생성합니다. Kafka의 데이터를 사용하여 테이블에 삽입하거나 스포크를 사용하여 데이터를 타사 환경에 전달하는 플로우를 빌드할 수 있습니다.
트리거는 플로우가 활성화되면 활성화됩니다. 활성화되면 트리거는 지정된 Kafka 주제에 메시지가 있을 때마다 플로우를 시작합니다. Kafka 메시지 트리거를 사용하는 경우 Kafka 스트림 또는 구독 기록을 생성할 필요가 없습니다. 플로우가 활성화되면 시스템이 자동으로 두 가지를 모두 생성합니다. 플로우가 활성 상태인 경우 주제에서 메시지를 읽습니다.
Kafka 생산자 단계를 사용하여 Kafka 환경의 주제에 이벤트를 게시하는 작업을 생성합니다. 예를 들어, 이 단계를 사용하여 인시던 ServiceNow트의 업데이트에 대한 메시지를 만든 다음 Kafka 환경의 주제로 메시지를 푸시할 수 있습니다.
직접 Kafka
를 사용하여 직접 Kafka온 프레미스 ServiceNow 인스턴스를 로컬 Kafka 환경과 통합합니다. 엔터프라이즈 시스템 간의 효율적인 통합을 구축하여 애플리케이션 간에 데이터를 교환할 수 있는 대용량의 강력한 통합을 지원하고, 한 환경이 일시적으로 오프라인 상태인 경우 큐 메커니즘으로 데이터 손실을 줄입니다.
직접 Kafka를 사용하면 사용자 지정 Kafka 연결을 구성하여 온프레미스 인스턴스에서 로컬 Kafka 환경과 통합 스트리밍 연결 할 수 있습니다. 이 연결을 통해 별도의 메시지 복제기 없이 Hermes 메시징 서비스 해당 기능을 직접 사용할 스트리밍 연결 수 있습니다.
스트리밍 연결 경고
통합에 대한 스트리밍 연결 경보 및 경보 알림을 수신합니다. 스트리밍 연결 는 활성 모니터링과 예약된 모니터링을 모두 사용하여 여러 구성요소에서 이벤트를 탐지합니다. 문제가 탐지되면 시스템은 경보를 만들고 로그에 스트리밍 연결 메시지를 기록한 다음 경보 알림을 보냅니다. 자세한 내용은 스트리밍 연결 경고 문서를 참조하십시오.
Avro 형식의 메시지 지원
스키마를 임포트하고 생성하여 Avro 형식으로 메시지를 Apache 보내고 받습니다. Avro 형식을 사용하면 페이로드의 크기를 줄이고 로컬 Kafka 인스턴스와의 통합을 간소화할 수 있습니다.
융합 레지스트리에서 직접 Avro 스키마를 가져오거나 JSON 파일 또는 JSON 형식 문자열을 사용하여 고유한 스키마를 만들 수 있습니다. 스키마는 Avro 형식에 ServiceNow 저장되며 생산자와 소비자가 일반 텍스트 메시지를 Avro 형식으로 변환하고 다시 변환할 수 있도록 합니다. 자세한 내용은 스트리밍 연결의 스키마 관리 문서를 참조하십시오.
ETL, 변환 맵, 스크립트 소비자
기존 RTE 또는 변환 맵 구성을 사용하여 Kafka 환경에서 데이터를 임포트합니다. ETL(변환 로드 추출) 및 변환 맵 소비자는 Kafka 메시지에서 페이로드를 가져오고, 데이터를 변환하고, 테이블에 기록을 삽입하거나 업데이트하는 효율적인 방법을 제공하여 데이터 임포트를 단순화합니다. 예약된 데이터 임포트에서 스트림 커넥트를 사용하는 임포트로 전환하고 동일한 구성으로 데이터를 처리할 수 있습니다.
스크립트 소비자를 사용하여 Kafka 환경에서 데이터를 처리할 수도 있습니다. 스크립트 소비자는 메시지의 데이터가 구조화되지 않았거나 코드를 사용하여 데이터 조회가 필요한 경우와 같이 고급 사용 사례를 위한 것입니다.
당신, ETL(추출 변환 로드) 소비자 구성변환 맵 소비자 구성, 또는 스크립트 소비자 구성, 또한 필요합니다Kafka 스트림 생성.
ProducerV2 API
ProducerV2 API를 사용하여 Kafka 주제에 이벤트를 게시합니다.
스트리밍 연결 메시지 복제
Kafka 환경 간과 ServiceNow 메시지 복제를 사용하여 스트리밍 연결 데이터를 복제할 수 있습니다.
스트리밍 연결 메시지 복제를 사용하면 인스턴스에서 직접 메시지 복제를 구성하고 관리할 수 있습니다 ServiceNow . 또는 MID 서버 클러스터를 사용하여 MID 서버 데이터 복제를 실행하므로 추가 복제 서비스를 구성하거나 호스팅할 필요가 없습니다. 또한 필요한 인증서를 자동으로 생성하여 메시지 복제 설정을 단순화합니다.
자세한 내용은 스트리밍 연결 메시지 복제 문서를 참조하십시오.
스트리밍 연결 로그
생산자와 소비자에 대한 로그 메시지는 로그 [sys_consumer_log] 테이블에 스트리밍 연결 저장됩니다. 각 로그 항목은 로그가 생성된 시기를 보여줍니다. 그 수준, 메시지 및 출처; 및 관련 경보 또는 구독 기록에 대한 링크.
시스템 속성을 추가 glide.ih.kafka.stream_connect.debug하고 true로 설정하여 보다 자세한 로깅을 활성화할 수 있습니다. 로그가 가득 차지 않도록 하기 위해 이 속성은 24시간 후에 자동으로 비활성화됩니다. 24시간 넘게 자세한 로깅이 필요한 경우 속성을 수동으로 다시 사용하도록 설정할 수 있습니다.
처리되지 않은 메시지 및 전달되지 않은 메시지
메시지를 배달할 수 없는 경우 Kafka Undelivered Messages [sys_kafka_undelivered_messages] 테이블에 저장됩니다. 예약된 작업인 Kafka 생산자 재시도는 정기적으로 이 테이블을 읽고 메시지를 다시 전달하려고 시도합니다.
메시지 배치가 시간 초과되어 처리할 수 없는 경우 Kafka 처리되지 않은 메시지 [sys_kafka_unprocessed_messages] 테이블에 저장됩니다. 메시지 배치에 대한 시간 제한은 속성을 com.glide.kafka_consumer.timeout 사용하여 설정할 수 있습니다. 기본값은 60초입니다. 이 테이블은 회전된 테이블이므로 기록을 자동으로 정리합니다.
생산자 압축 형식
- 없음
- 지집
- LZ4
도메인 분리
주제 네임스페이스를 사용하여 스트리밍 연결 도메인으로 구분된 인스턴스의 Kafka 주제에 액세스할 수 있는 도메인을 구성합니다. 주제를 네임스페이스로 ServiceNow 그룹화한 다음, 네임스페이스를 특정 도메인에 연결합니다. 자세한 내용은 도메인 분리 및 스트리밍 연결 문서를 참조하십시오.
아키텍처 다이어그램
다음 다이어그램에서는 의 주요 구성요소 스트리밍 연결와 서드파티 애플리케이션의 ServiceNow 관계, Hermes를 통해 Kafka 환경에 연결하는 방법을 보여줍니다.
플러그인
스트리밍 연결 에는 설치 관리자 [com.glide.hub.stream_connect.installer] 플러그인이 필요합니다 ServiceNow 스트리밍 연결 . 이 플러그인을 사용하면 라이센스가 부여된 구성요소가 에서 메시지 기반 스트리밍 데이터 스트리밍 연결로 작업할 수 있습니다.
사용 사례 예시
한 통신 회사는 수백만 개의 네트워크, 장치, 시설(운영 시스템 및 장비)을 모니터링합니다. 모니터링 시스템은 네트워크가 완벽하게 작동하는지 유지하기 위해 처리하고 대응해야 하는 수백만 개의 경보를 생성합니다.
메시지는 모니터링 소스에서 Kafka 환경으로 내부적으로 푸시됩니다. 여기에서 Hermes Kafka 클러스터로 ServiceNow 복제됩니다. 이렇게 하면 메시지를 읽고 헤더, 키 및 페이로드의 데이터를 구문 분석하여 이벤트 테이블에 새 기록을 효율적으로 입력하는 스크립트 소비자가 트리거됩니다.
관련 TSOM 제품 기능은 이벤트 데이터를 처리하여 문제 해결을 위한 인시던트 및 현장 작업 주문을 빠르고 효율적으로 생성하여 문제 해결 시간을 단축합니다.
- 주요 가정 및 결정 기준
-
- 데이터 볼륨은 증분적이고 빈번합니다.
- 데이터에는 다양한 도구의 다양한 장치에 대한 메시지가 포함됩니다.
- 데이터에 기본 기록의 요소만 포함되어 있는지 아니면 관련 기록의 요소도 포함되어 있는지 명확히 합니다.
- 데이터 임포트가 프로세스 자동화와 연결되어 있는지 확인합니다.
- 안내
-
- 명명 규칙을 사용하여 주제를 정의하여 메시지 처리를 명확하게 지시합니다. 예를 들어 데이터가 Solarwinds 모니터링 도구 소스에서 제공되는 경우 주제 이름이 sn_streamconnect.solarwinds로 지정될 수 있습니다. 주제는 탐색기의 아래에서 찾을 수 있습니다. .
- Kafka에 메시지를 생성하고 Hermes에 복제할 때 키를 정의하고 활용하여 메시지 전달 및 처리 순서를 보장합니다. 예를 들어, 메시지를 순서대로 유지하려면 장치 ID를 키 값으로 사용하여 처리를 위해 메시지를 함께 유지합니다.
- 헤더, 키 및 페이로드 속성을 활용하여 여러 소스에서 들어오는 메시지의 크기를 조정하고 효과적으로 구문 분석할 수 있습니다.
- 트랜잭션 데이터의 수집을 위해 스크립트 소비자 또는 플로우 트리거 소비자를 활용합니다. 예시에 따라 스크립트 소비자에 "Solarwinds 스크립트 소비자"와 같은 유사한 이름으로 지정할 수 있습니다. 스크립트 소비자는 탐색기의 아래에서 찾을 수 있습니다. .
- 스크립트 소비자 스크립트는 메시지 내용을 구문 분석하여 메시지와 관련된 장치를 식별하고 그에 따라 처리합니다.주:위의 코드는 메시지 데이터를 수집하고 구문 분석하여 테이블 기록을 채우는 데 중점을 둔 대표적인 부분 예입니다. 구현을 안내하는 데 도움이 됩니다.
- 명명 규칙을 사용하여 주제를 정의하여 메시지 처리를 명확하게 지시합니다. 예를 들어 데이터가 Solarwinds 모니터링 도구 소스에서 제공되는 경우 주제 이름이 sn_streamconnect.solarwinds로 지정될 수 있습니다. 주제는 탐색기의 아래에서 찾을 수 있습니다. .