Computer Science

Grafana: opensource dashboard program

2020.01.03

이번엔 센서값을 실시간으로 받아 그래프를 그려보라는 지시를 받았다. 오늘도 열일-!!

사실 그 전부터 센서값 조정을 위해 C#으로 실시간 시각화 프로그램을 만들어보려고 했는데, C#언어 자체를 처음 만져보기도 하고 이런 프로그램자체를 처음 만들어보다보니 유튜브를 돌아다니며 배워보고있었다. 그러다 싸장님의 지시를 받았으니 우선 빨리 해내야하고,,, 그러니 어떡해? 오픈소스의 힘을 빌렸다. C#으로는 조금 더 천천히 해볼 예정.. 

현재 회사의 센싱데이터는 MariaDB에 구축해놓은 schema에 저장되고있다. MariaDB로 만들 수 있는 대시보드를 찾다가 발견한 Grafana. 오픈소스라서 우선 무료이고, GUI가 참 쉽게 되어있어서 쿼리 작성을 할 줄 몰라도 쉽게 만들 수 있다는 장점이 있다. 다만 나는 만들어져있는 박스형태의 UI가 더 불편해서 그냥 쿼리로 직접 작성했다.

GRAFANA를 사용하기 위해서는 우선 grafana사이트(https://grafana.com/)에서 <get grafana>버튼 클릭 후, <Download>! 각자 OS에 맞는 것을 다운로드받아서 설치하면 된다.

 

이후 주피터노트북을 사용하는 것과 같은 방식으로, 인터넷 브라우저에 localhost:3000을 입력하면 된다. 디폴트 포트번호는 3000인데, 만약 변경했다면 변경한 포트번호를 입력하면 될테다. 초기 로그인 id와 pw는 admin / admin이다. (local 한정으로만 사용된다. 찾아보니 데이터보안유지를 위해 실시간 데이터 외부공유는 안된다고 한다. just snapshot만 가능)

내가 추가한 기능들은 바로 이것들!!!

1. db 테이블

2. 온도 그래프(all 센서의 실시간 데이터가 올라오도록)

3. 센서별 그래프

4. 센서별 진동 데이터 그래프

5. Alert push service( 특정 threshold값 초과시 화면에 alert가 뜨고, slack이나 이메일로 notification이 가도록)


2020.01.07

다 보여줄 순 없지만, 대충 이러하다. 멋찐 그래프 만들어보고싶었는데, 데이터 자체가 살짝 간결하다.

상단대시보드는 온도값 데이터이다. 한번에 볼수 있게 크게 만들고, 센서별로 또 따로 만들었다.
하단대시보드의 데이터는 내가 테스트한답시고 조큼 과하게 데이터를 만졌더니 그래프가 좀 들쑥날쑥하다. 빨간 줄이 바로 alert notification의 threshold이다. 센서별로 각기 다른 것도 테스트하는 중이기때문. ( 아마 센서를 실제로 기계에 부착하게되면, 기계와 그 환경에 따라 다른 threshold값을 갖게되지않을까 싶다. ) 오른쪽 상단을 보면 56번 센서의 알람이 울리고 있다. 나의 경우에는 회사 슬랙 해당 채널에 알려주도록 설정해두었다.

 

 

슬랙 해당 채널에 alert온 것을 캡쳐해보았다. CHECK ~~ 이 내용은 내가 직접 작성한 것이 올라오는 것이므로, 각자의 니즈대로 작성해주면 되겠다. 하는 방법은 medium에 누군가 너무 잘 설명해준 것이 있다. 이 것을 보고 따라하면 되겠다. 요즘은 정말 구글링으로 모든게 해결되는 좋은 세상.. 구글이 내 선생님이다. ( https://medium.com/@_oleksii_/grafana-alerting-and-slack-notifications-3affe9d5f688

 

하여튼 이렇게 처음으로 grafana dashboard를 사용해보았는데, user를 추가해도 로컬에서만 사용할 수 있다는 것을 참고하라. 찾아보니 데이터 보안문제로 인해 링크를 공유해도 그 공유한 시간까지의 데이터만 확인할 수 있고, 실시간 데이터는 확인할 수 없다고 한다. (***링크 가진 사람은 모두 확인할 수 있으니 보안에 주의할것 ***) 그래서 나의 경우에도 사장님이 내 pc로 원격접속해서 확인하시곤 한다. 다음번에는 cloud에 데이터를 저장해서, cloud데이터를 dashboard에 올리면, 소스코드를 각자 컴퓨터에 업로드만 하면 모두 확인하도록 해보려고한다. 그리고 그 다음에는 c#으로 네트워크가 없는 환경에서도 dashboard를 확인할 수 있도록 프로그램을 만들어보려고한다. 그럼 안뇽.

 

+) 집에 오는데 계속 슬랙 알림이 온다