Elasticsearch 풍력 발전기 모니터링과 데이터 분석

 

모니터링과 데이터 분석의 필요성

개발한 시스템이 정상적으로 작동하는지 확인하기 위해 지속적인 모니터링을 할 뿐만 아니라 장비의 로그를 분석하여 잠재적인 위험요소에 대비합니다. 엑셀로 방대한 로그 데이터를 분석하는 것이 점점 한계가 오기시작했고, 상용 프로그램을 사용하자니 가격이 만만치 않았기에(우리는 스스타트업이니까) TunaLabs에서는 개발중인 풍력 발전기에 모니터링 및 데이터 분석 시스템으로 오픈소스 ELK(ELG) 스택를 도입했습니다.

*ELK(ELG) = Elasticsearch + Logstash + Kibana (Grafana)

제가 맡은 영역은 Elasticsearch를 이용한 데이터 분석 시스템 구축뿐만 아니라 펌웨어 개발도 같이 병행했기 때문에, 제품 개발단계에서 디버깅에 도움되는 로그 데이터를 남기는 프로그램을 민첩하고 유연하게 작성 할 수 있었습니다.

[ 풍력발전기 모니터링과 데이터 분석 시스템의 조감도 ]

 

TunaLabs에서는 협력업체와 개발중인 풍력 발전기 성능 분석을 위해

  • 로터 회전속도(RPM)
  • 날개 각도(블레이드 Pitch)
  • PID 제어값
  • 외부 및 컨트롤 박스 내부 온도/습도
  • 풍속(m/s)
  • 마그네틱 릴레이 상태
  • 라인 전압(AC Voltage)/전류(AC Current)
  • 생산 전력
  • 제어 이벤트
  • 시스템 상태 등

의 전반적인 데이터를 마이컴이나 장비로부터 데이터를 수집합니다.

수집된 데이터는 적절한 절차에 따라 Elasticsearch에 Indexing되며 Indexing된 데이터는 Kibana이나 Grafana와 같은 데이터 시각화 툴로 유저가 상황을 모니터링하고 데이터를 분석합니다. 시스템이 자체적으로 분석한 데이터에 이상 징조가 발견되면 유저에게 알려줍니다.

또한 유저가 상황을 파악할 수 있도록 일정시간 간격으로 데이터 리포트를 작성해줍니다.

 

 

시스템 다이어그램

수집된 데이터는 Nginx Proxy Pass를 통과하여 Logstash로 Elasticsearch에 데이터를 Indexing 하도록 했고 Grafana 대시보드에서 데이터를 모니터링하고 분석할 수 있도록 구현 했습니다. Redis는 갑작스럽게 데이터가 많이 들어왔을때 버퍼 역할을 해줍니다.

알림 시스템은 원래 Grafana 대시보드에서 지원해주는데 하필 Elasticsearch 성능이슈 때문에 지원 안해줘서 직접 스크립트를 짜서 알림 시스템을 구현했습니다.

 

 

 

데모 (2017. 01)

Wind Turbine Dashboard from tuna on Vimeo – 2017. 01.

Grafana 대시보드 입니다. 풍력발전기 생산전력 VS 풍속, 제어 상태 등의 지표를 확인 할 수 있습니다.

또한 시스.. 읍! 읍!

 

 

활용

Elasticsearch: 문서 검색에나 쓰세요

TUNA: 빠큐

Elasticsearch:

 

그래서 만들어진게

 

 

기본적인 모니터링과 각종 데이터, 이벤트를 분석하는 대시보드가 되겠습니다.

 

 

 

 

 

알림 시스템은

LINE Notify를 이용한 알림 시스템

 

 

 

One thought

  1. 흥미로운 실험들을 하고 계시네요. 저는 상온 플라즈마를 이용한 발전기를 구상중입니다. 가끔 놀러와도 될까요?

Leave a Reply

Your email address will not be published. Required fields are marked *