DM Log

[Modbus] #2-2 Telgraff 통한 Modbus TCP 데이터 수집 및 InfluxDB 적재 본문

개발공부/Data Collection

[Modbus] #2-2 Telgraff 통한 Modbus TCP 데이터 수집 및 InfluxDB 적재

Dev. Dong 2025. 2. 9. 14:20

Telgraf를 통한 Modbus TCP 데이터 수집 및 InfluxDB 적재


개요

아래의 이전 게시물에서 Python을 통해 Modbus TCP 데이터 전송 용 Test를 진행하였다. Modbus TCP 통신에서 데이터를 수집하고 InfluxDB v1 버전에 적재하는 Telegraf를 설정 할 예정이다.

Telegraf란?

 go 언어로 개발된 데이터 수집 agent로, 데이터 수집, 처리, 메트릭 쓰기를 위해 사용된다.


개발 진행 방향

  1. Telegraf 설치  (v1.33) - https://www.influxdata.com/time-series-platform/telegraf/
  2. Telegraf의 config 파일을 설정하여 Modbus TCP Test 통신에서 전송 중인 동작 상태와 알람 데이터를 1초마다 수집 및 적재
  3. 수집한 데이터 InfluxDB에 적재
    1. DB - Modbus
    2. Measurement -  modbus
    3. Filed key - run_status, alarm_status, host , name, type, slave_id (host, name, type, slave_id의 경우 telegraf에서 자동 설정)
  4.  telegraf.exe --config=".conf"를 통해 실행

설정 파일

[[outputs.influxdb]]
  urls = ["http://127.0.0.1:8086"]
  database = "modbus"
  username = "admin"
  password = "admin"
  retention_policy = ""
  timeout = "5s"
  precision = "s"

[[inputs.modbus]]
  name = "telegraf_plugins"
  controller = "tcp://127.0.0.1:502"
  timeout = "1s"
  slave_id = 1
  coils = [
    { name = "alarm_status", address = [0], data_type = "BOOL" },
    { name = "run_status", address = [1], data_type = "BOOL" },
  ]