강력한 시계열 모니터링 시스템 구축: RTI Connext DDS, Telegraf, InfluxDB 통합
DDS, Telegraf, InfluxDB를 결합하는 이유?
산업용 IoT에서 디바이스 텔레메트리에 대한 실시간 가시성은 필수입니다. RTI Connext DDS는 저지연 확장 가능한 데이터 배포를 제공하고, InfluxDB는 시계열 메트릭 저장과 쿼리에 탁월합니다. InfluxData의 경량 메트릭 수집기 Telegraf는 DDS 데이터를 수집해 InfluxDB(또는 다른 대상)로 전달하여 둘을 연결합니다. 이 아키텍처는 모든 IIoT 배포에 적응 가능한 유연하고 고성능 모니터링 파이프라인을 제공합니다.
Telegraf Connext DDS 입력 플러그인 소개
최근까지 Telegraf에는 네이티브 DDS 입력 플러그인이 없어 Connext DDS에서 직접 데이터를 소비하는 능력이 제한적이었습니다. dds_consumer 플러그인이 이 공백을 메웁니다. 백그라운드 서비스로 실행되며 WaitSets를 통해 DDS 메시지를 수신하고, 파싱된 메트릭을 Telegraf 내부 버퍼로 밀어넣어 다운스트림 처리를 위해 전달합니다.
주요 기능
- 서비스 스타일 작동: 폴링 없이 들어오는 DDS 샘플 자동 전달
- JSON 데이터 포맷 지원, DDS 데모에서 가장 일반적인 직렬화
- 태그, 측정 이름, 필드 매핑 구성 가능
- Telegraf 내장 프로세서 및 애그리게이터와 호환으로 고급 메트릭 처리 가능
플러그인 개발 개요
Telegraf 플러그인 프레임워크는 인터페이스 세트를 정의합니다. 입력 플러그인은 Sample과 SampleSet 메서드를 구현하고, 서비스 플러그인은 백그라운드 스레드 관리를 위해 Start와 Stop 함수를 추가합니다. dds_consumer 플러그인은 이를 활용해 DDS 도착에 반응하는 리스너를 생성합니다.
시작하기: 구성 기초
Telegraf 구성 파일은 TOML로 작성됩니다. 플러그인은 DDS 엔티티(참여자, 퍼블리셔, 구독자, 리더 등)를 설명하는 추가 XML 파일을 필요로 합니다. 아래는 RTI Shapes 데모가 발행하는 DDS Square 토픽을 읽고 로컬 파일에 메트릭을 쓰는 최소 예제입니다.
[[inputs.dds_consumer]] ## DDS XML 설명 경로 config_path = "example_configs/ShapeExample.xml" ## DDS 참여자 구성 이름 participant_config = "MyParticipantLibrary::Zero" ## DDS DataReader 구성 이름 reader_config = "MySubscriber::MySquareReader" ## DDS 페이로드에서 추출할 태그 키 tag_keys = ["color"] ## 기본 측정 이름 재정의 name_override = "shapes" ## 예상 데이터 포맷 data_format = "json"
이 입력을 포함하고 파일 출력을 가진 전체 Telegraf 구성을 생성하려면:
$ telegraf --input-filter dds_consumer --output-filter file config > dds_to_file.conf $ telegraf -config dds_to_file.conf
Shapes 데모에서 Square 샘플을 발행하면 /tmp/metrics.out에 메트릭이 나타납니다.
InfluxDB 출력으로 전환
파일 출력을 InfluxDB로 교체하려면 구성을 재생성:
$ telegraf --input-filter dds_consumer --output-filter influxdb config > dds_to_influx.conf $ telegraf -config dds_to_influx.conf
메트릭 파이프라인 강화
Telegraf 생태계에는 가치를 더하는 여러 내장 플러그인이 포함됩니다:
애그리게이터
시간 경과에 따른 평균, 최솟값, 최댓값, 표준편차 등 통계 계산:
[[aggregators.basicstats]] period = "10s" drop_original = false
프로세서
저장 전 필드 이름 변경 또는 변환:
[[processors.rename]] [[processors.rename.replace]] field = "x" dest = "y_trans" [[processors.rename.replace]] field = "y" dest = "x_trans"
이 도구들로 원시 샘플, 집계 요약, 커스텀 필드 이름 등 모니터링 니즈에 맞게 데이터 모델을 조정할 수 있습니다.
리소스 및 커뮤니티 지원
이 플러그인은 RTI Labs의 일부로, RTI 기술에 조기 접근할 수 있는 무료 프로그램입니다. 소스 코드, 문서, 예제 구성은 GitHub에서 확인:
질문, 피드백, 기능 요청은 RTI 커뮤니티 포럼 방문하거나 GitHub에 이슈 등록.
결론
Telegraf Connext DDS 플러그인은 DDS 텔레메트리를 InfluxDB로 수집하는 강력하고 낮은 오버헤드의 파이프라인을 개방합니다. Telegraf의 확장 가능한 아키텍처와 RTI의 DDS 미들웨어를 결합하여 모든 IIoT 시나리오에 확장 가능하고 신뢰할 수 있는 시계열 모니터링 솔루션을 구축할 수 있습니다.