--- title: "Logstash" slug: "datastream-logstash-example-vpc" updated: 2026-09-17T09:07:29Z published: 2026-09-17T09:07:29Z canonical: "guide.ncloud-docs.com/datastream-logstash-example-vpc" --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Logstash VPC 환경에서 이용 가능합니다. TCP 접속 엔드포인트를 사용하여 메시지(데이터)를 토픽과 연동하는 방법과 예제 코드를 설명합니다. 주의 보안을 위해 데이터 전송 시 메인 계정의 인증 정보를 사용할 수 없으므로 반드시 서브 계정의 인증 정보를 사용해 주십시오. ## 사전 준비(인증 정보 확인 및 SASL 설정) Kafka 클라이언트 애플리케이션을 사용하여 Data Stream 서비스에 접속하려면 Kafka 클라이언트 종류에 맞게 SASL 설정을 추가해야 합니다. Sub Account 인증 정보 확인 및 SASL 설정 방법은 다음과 같습니다. 1. Data Stream 서비스에 접속할 사용자의 Sub Account 인증 정보(Access key와 Secret key)를 확인해 주십시오. - Sub Account 인증 정보는 SASL 인증 설정 시 사용자명(username)과 비밀번호(password)로 사용됩니다. - 서브 계정의 Access Key 발급 및 확인: 서브 계정 생성 참조 2. Logstash의 경우, Logstash에서 지원하는 kafka plugin을 통해 Data Stream과 연동할 수 있습니다. `sasl.jaas.config` 파일에 다음 예시와 같이 설정해 주십시오. ``` # username: Sub Account Access Key 입력 # password: Sub Account Secret Key 입력 security_protocol => "SASL_SSL" sasl_mechanism => "PLAIN" sasl_jaas_config => "org.apache.kafka.common.security.plain.PlainLoginModule required username='{ncp_iam_sub_access_key}' password='{ncp_iam_sub_secret_key}';" ``` ## 데이터 송신 예제 Data Stream 서비스는 Kafka Client를 지원합니다. Kafka Client 라이브러리를 활용하여 토픽에 데이터를 송신할 수 있습니다. ### Logstash producer Logstash 예제 코드를 사용하여 데이터를 송신하는 방법은 다음과 같습니다. ``` input { ... } output { kafka { bootstrap_servers => "{TOPIC_접속_엔드포인트}" topic_id => "{TOPIC_NAME}" security_protocol => "SASL_SSL" sasl_mechanism => "PLAIN" sasl_jaas_config => "org.apache.kafka.common.security.plain.PlainLoginModule required username='{ncp_iam_sub_access_key}' password='{ncp_iam_sub_secret_key}';" } } ``` ## 데이터 수신 예제 Data Stream 서비스는 Kafka Client를 지원합니다. Kafka Client 라이브러리를 활용하여 토픽에 데이터를 수신할 수 있습니다. ### Logstash consumer Logstash 예제 코드를 사용하여 데이터를 수신하는 방법은 다음과 같습니다. ``` input { kafka { codec => plain bootstrap_servers => "{TOPIC_접속_엔드포인트}" topics => ["{TOPIC_NAME}"] group_id => "logstash-kafka-consumer" security_protocol => "SASL_SSL" sasl_mechanism => "PLAIN" sasl_jaas_config => "org.apache.kafka.common.security.plain.PlainLoginModule required username='{ncp_iam_sub_access_key}' password='{ncp_iam_sub_secret_key}';" } } output { ... } ``` ### Logstash consumer with Schema Registry 스키마 레지스트리를 연동하는 경우, Logstash 예제 코드를 사용하여 데이터를 수신하는 방법은 다음과 같습니다. - `schema_registry_url`: 스키마 레지스트리 접속 정보 입력 - `schema_registry_key`: Sub Account Access Key 입력 - `schema_registry_secret`: Sub Account Secret Key 입력 ``` input { kafka { bootstrap_servers => "{TOPIC_접속_엔드포인트}" topics => ["{TOPIC_NAME}"] group_id => "simple-schema-consumer" auto_offset_reset => "earliest" security_protocol => "SASL_SSL" sasl_mechanism => "PLAIN" sasl_jaas_config => "org.apache.kafka.common.security.plain.PlainLoginModule required username='{ncp_iam_sub_access_key}' password='{ncp_iam_sub_secret_key}';" schema_registry_url => "{SCHEMA_REGISTRY_URL}" schema_registry_key => "{ncp_iam_sub_access_key}" schema_registry_secret => "{ncp_iam_sub_secret_key}" key_deserializer_class => "org.apache.kafka.common.serialization.StringDeserializer" value_deserializer_class => "io.confluent.kafka.serializers.KafkaAvroDeserializer" } } filter { mutate { add_field => { "saved_at" => "%{@timestamp}" } } } output { file { path => "/tmp/schema-data-%{+YYYY.MM.dd}.json" codec => json_lines } } ```