ELASTICSEARCH 실시간 데이터 모니터링과 분석

엘라스틱서치 쓰십셔, 두번 쓰십세, 세번 쓰십셔, 계속 쓰십셔

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

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

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

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

풍력발전기 모니터링과 데이터 분석 시스템 오버뷰

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

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

시스템 다이어그램

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

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

알림 시스템은 Line Notify를 사용하여 구현했습니다.

1 comment

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

Leave a comment

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.