개발공부/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로, 데이터 수집, 처리, 메트릭 쓰기를 위해 사용된다.
개발 진행 방향
- Telegraf 설치 (v1.33) - https://www.influxdata.com/time-series-platform/telegraf/
- Telegraf의 config 파일을 설정하여 Modbus TCP Test 통신에서 전송 중인 동작 상태와 알람 데이터를 1초마다 수집 및 적재
- 수집한 데이터 InfluxDB에 적재
- DB - Modbus
- Measurement - modbus
- Filed key - run_status, alarm_status, host , name, type, slave_id (host, name, type, slave_id의 경우 telegraf에서 자동 설정)
- 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" },
]